Chương 2<br />
<br />
CÁC TACTIC<br />
2.1 Định nghĩa thuật ngữ<br />
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng<br />
2.3 Các tactics giải quyết tính dễ sử dụng (Usability)<br />
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)<br />
2.5 Các tactic giải quyết hiệu suất<br />
2.6 Các tactic giải quyết an ninh<br />
2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược<br />
2.8 Kết chương<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 1<br />
<br />
2.1 Định nghĩa thuật ngữ<br />
Tactic<br />
ta ₫ạt ₫ược các tiêu chí chất lượng thông qua các quyết ₫ịnh thiết<br />
kế.<br />
Vậy các quyết ₫ịnh thiết kế nào cần thiết cho việc ₫ạt ₫ược 1 chất<br />
lượng cụ thể ?<br />
Tactic là 1 quyết ₫ịnh thiết kế mà ảnh hưởng ₫ến việc kiểm soát<br />
sự ₫áp ứng 1 thuộc tính chất lượng.<br />
Chiến lược kiến trúc là tập các tactics ₫ược chọn.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 2<br />
<br />
2.1 Định nghĩa thuật ngữ<br />
<br />
<br />
<br />
<br />
gói các tactics<br />
các tactic có thể tinh chế các tactic khác<br />
sự dư thừa ₫ược tinh chế từ dư thừa dữ liệu và dư thừa code<br />
thí dụ<br />
1 tactic giải quyết tính sẳn sàng ₫ể dùng sẽ dẫn ₫ến sự dư<br />
thừa.<br />
Ẩn chứa : ta cũng cần sự ₫ồng bộ giữa các nhân bản ₫ể ₫ảm<br />
bảo copy dư thừa có thể ₫ược dùng nếu bản gốc bị hỏng.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 3<br />
<br />
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng<br />
<br />
<br />
<br />
<br />
<br />
Độ lệch của lỗi (Failure)<br />
₫ộ lệch giữa thực tế chạy so với hành vi chức năng kỳ vọng<br />
có thể ₫ược quan sát bởi người dùng hệ thống phần mềm<br />
Độ lệch của lỗi và nguyên nhân gây lỗi (fault) : fault : sự kiện có<br />
thể gây ra ₫ộ lệch của lỗi<br />
Các tactics giải quyết tính sẳn sàng ₫ể dùng :<br />
giữ fault ₫ừng ₫ể nó thành ₫ộ lệch của lỗi<br />
thực hiện các sửa chữa có thể.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 4<br />
<br />
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng<br />
Tính sẵn sàng ₫ể dùng (Availability)<br />
<br />
Fault<br />
<br />
Phát hiện<br />
<br />
Sửa chữa &<br />
chuẩn bị phục hồi<br />
<br />
RecoveryReintroduction<br />
<br />
Phòng ngừa<br />
<br />
Fault bị che<br />
Đã sửa chữa<br />
<br />
Ping/Echo<br />
HeartBeat<br />
Exception<br />
<br />
Voting<br />
Thừa chủ ₫ộng<br />
Thừa thụ ₫ộng<br />
Dùng secour<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
bóng ma<br />
₫ồng bộ hóa<br />
trạng thái<br />
checkpoint/<br />
Rollback<br />
<br />
Không phục vụ<br />
Giao tác<br />
Giám sát process<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 5<br />
<br />
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng<br />
Phát hiện fault : Ping/Echo<br />
thành phần 1 tạo 1 ping cho thành phần 2<br />
thành phần 1 chờ 1 echo từ thành phần 2<br />
trả lời trong khoảng thời gian qui ₫ịnh<br />
Có thể dùng cho kiến trúc gồm 1 nhóm các thành phần : chúng có<br />
trách nhiệm hỗ tương trên 1 tác vụ<br />
Có thể dùng cho kiến trúc client/server : kiểm thử server và ₫ường<br />
liên lạc<br />
sự phân cấp các phần tử phát hiện fault sẽ cải tiến việc dùng băng<br />
thông.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 6<br />
<br />
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng<br />
Phát hiện fault : Heartbeat (nhịp tim)<br />
Theo ₫ịnh kỳ, thành phần 1 phát thông báo heartbeat.<br />
thành phần 2 lắng nghe thông báo<br />
nếu không có heartbeat<br />
thành phần 1 ₫ược giả ₫ịnh là hỏng<br />
cảnh bảo cho thành phần 3 ₫ể sửa fault<br />
thông báo heartbeat cũng có thể chứa dữ liệu.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 7<br />
<br />
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng<br />
Phát hiện fault : Exceptions<br />
các loại fault : omission, crash, timing, response<br />
khi nhận biết 1 loại fault, 1 exception ₫ược tạo ra : kết quả là fault<br />
₫ược nhận biết<br />
Trình xử lý exception<br />
thi hành trong cùng process mà tạo ra exception<br />
thường thực hiện 1 chuyển dịch ngữ nghĩa của fault ra 1 dạng<br />
dễ xử lý.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 8<br />
<br />
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng<br />
Phục hồi sau fault : Voting<br />
các process chạy trên các processor dư thừa nhận thông tin vào<br />
như nhau và tính toán ₫ể tạo kết quả (kỳ vọng như nhau)<br />
kết quả ₫ược gởi tới voter.<br />
Nếu voter phát hiện hành vi lệch lạc của 1 processor nào ₫ó -><br />
voter coi nó bị hỏng.<br />
Phương pháp ₫ược dùng ₫ể sửa chữa<br />
hoạt ₫ộng lỗi của giải thuật<br />
₫ộ hư hỏng của processor<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 9<br />
<br />
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng<br />
Phục hồi sau khi hỏng : sự dư thừa chủ ₫ộng (active redundancy)<br />
tất cả các thành phần dư thừa ₫ều ₫áp ứng với sự kiện 1 cách<br />
₫ồng thời -> chúng có cùng trạng thái.<br />
chỉ dùng 1 ₫áp ứng từ 1 thành phần nào ₫ó.<br />
downtime : thời gian chuyển sang thành phần ₫ược cập nhật khác<br />
(ms)<br />
₫ược dùng trong cấu hình client/server (hệ thống database) : ₫áp<br />
ứng nhanh là quan trọng<br />
Sự ₫ồng bộ hóa : tất cả thông báo tới 1 thành phần ₫ều phải ₫ược<br />
gởi tới tất cả thành phần dư thừa còn lại.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 2 : Các tactic<br />
Slide 10<br />
<br />