Bài giảng Kiến trúc phần mềm - Chương 2: Các tactic - Nguyễn Trung Hiệp

2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phát hiện fault : Ping/Echo ‰ thành phần 1 tạo 1 ping cho thành phần 2 ‰ thành phần 1 chờ 1 echo từ thành phần 2 ‰ trả lời trong khoảng thời gian qui ₫ịnh ‰ Có thể dùng cho kiến trúc gồm 1 nhóm các thành phần : chúng có trách nhiệm hỗ tương trên 1 tác vụ ‰ Có thể dùng cho kiến trúc client/server : kiểm thử server và ₫ường liên lạc ‰ 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 thông

pdf32 trang | Chia sẻ: thanhle95 | Lượt xem: 465 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Kiến trúc phần mềm - Chương 2: Các tactic - Nguyễn Trung Hiệp, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 1 2.1 Định nghĩa thuật ngữ 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng 2.3 Các tactics giải quyết tính dễ sử dụng (Usability) 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) 2.5 Các tactic giải quyết hiệu suất 2.6 Các tactic giải quyết an ninh 2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược 2.8 Kết chương Chương 2 CÁC TACTIC Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 2 2.1 Định nghĩa thuật ngữ Tactic ‰ ta ₫ạt ₫ược các tiêu chí chất lượng thông qua các quyết ₫ịnh thiết kế. ‰ Vậy các quyết ₫ịnh thiết kế nào cần thiết cho việc ₫ạt ₫ược 1 chất lượng cụ thể ? ‰ Tactic là 1 quyết ₫ịnh thiết kế mà ảnh hưởng ₫ến việc kiểm soát sự ₫áp ứng 1 thuộc tính chất lượng. ‰ Chiến lược kiến trúc là tập các tactics ₫ược chọn. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 3 2.1 Định nghĩa thuật ngữ ‰ gói các tactics ƒ các tactic có thể tinh chế các tactic khác ƒ sự dư thừa ₫ược tinh chế từ dư thừa dữ liệu và dư thừa code ‰ thí dụ ƒ 1 tactic giải quyết tính sẳn sàng ₫ể dùng sẽ dẫn ₫ến sự dư thừa. ƒ Ẩn chứa : ta cũng cần sự ₫ồng bộ giữa các nhân bản ₫ể ₫ảm bảo copy dư thừa có thể ₫ược dùng nếu bản gốc bị hỏng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 4 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng ‰ Độ lệch của lỗi (Failure) ƒ ₫ộ lệch giữa thực tế chạy so với hành vi chức năng kỳ vọng ƒ có thể ₫ược quan sát bởi người dùng hệ thống phần mềm ‰ Độ lệch của lỗi và nguyên nhân gây lỗi (fault) : fault : sự kiện có thể gây ra ₫ộ lệch của lỗi ‰ Các tactics giải quyết tính sẳn sàng ₫ể dùng : ƒ giữ fault ₫ừng ₫ể nó thành ₫ộ lệch của lỗi ƒ thực hiện các sửa chữa có thể. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 5 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Tính sẵn sàng ₫ể dùng (Availability) Phát hiện Ping/Echo HeartBeat Exception Sửa chữa & chuẩn bị phục hồi Voting Thừa chủ ₫ộng Thừa thụ ₫ộng Dùng secour Recovery- Reintroduction bóng ma ₫ồng bộ hóa trạng thái checkpoint/ Rollback Phòng ngừa Không phục vụ Giao tác Giám sát process Fault Fault bị che Đã sửa chữa Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 6 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phát hiện fault : Ping/Echo ‰ thành phần 1 tạo 1 ping cho thành phần 2 ‰ thành phần 1 chờ 1 echo từ thành phần 2 ‰ trả lời trong khoảng thời gian qui ₫ịnh ‰ Có thể dùng cho kiến trúc gồm 1 nhóm các thành phần : chúng có trách nhiệm hỗ tương trên 1 tác vụ ‰ Có thể dùng cho kiến trúc client/server : kiểm thử server và ₫ường liên lạc ‰ 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 thông. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 7 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phát hiện fault : Heartbeat (nhịp tim) ‰ Theo ₫ịnh kỳ, thành phần 1 phát thông báo heartbeat. ‰ thành phần 2 lắng nghe thông báo ‰ nếu không có heartbeat ƒ thành phần 1 ₫ược giả ₫ịnh là hỏng ƒ cảnh bảo cho thành phần 3 ₫ể sửa fault ‰ thông báo heartbeat cũng có thể chứa dữ liệu. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 8 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phát hiện fault : Exceptions ‰ các loại fault : omission, crash, timing, response ‰ khi nhận biết 1 loại fault, 1 exception ₫ược tạo ra : kết quả là fault ₫ược nhận biết ‰ Trình xử lý exception ƒ thi hành trong cùng process mà tạo ra exception ƒ thường thực hiện 1 chuyển dịch ngữ nghĩa của fault ra 1 dạng dễ xử lý. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 9 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phục hồi sau fault : Voting ‰ các process chạy trên các processor dư thừa nhận thông tin vào như nhau và tính toán ₫ể tạo kết quả (kỳ vọng như nhau) ‰ kết quả ₫ược gởi tới voter. ‰ Nếu voter phát hiện hành vi lệch lạc của 1 processor nào ₫ó -> voter coi nó bị hỏng. ‰ Phương pháp ₫ược dùng ₫ể sửa chữa ƒ hoạt ₫ộng lỗi của giải thuật ƒ ₫ộ hư hỏng của processor Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 10 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phục hồi sau khi hỏng : sự dư thừa chủ ₫ộng (active redundancy) ‰ tất cả các thành phần dư thừa ₫ều ₫áp ứng với sự kiện 1 cách ₫ồng thời -> chúng có cùng trạng thái. ‰ chỉ dùng 1 ₫áp ứng từ 1 thành phần nào ₫ó. ‰ downtime : thời gian chuyển sang thành phần ₫ược cập nhật khác (ms) ‰ ₫ược dùng trong cấu hình client/server (hệ thống database) : ₫áp ứng nhanh là quan trọng ‰ Sự ₫ồng bộ hóa : tất cả thông báo tới 1 thành phần ₫ều phải ₫ược gởi tới tất cả thành phần dư thừa còn lại. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 11 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phục hồi sau khi hỏng : sự dư thừa thụ ₫ộng (passive redundancy) ‰ thành phần chính có nhiệm vụ : ‰ ₫áp ứng với sự kiện. ‰ thông tin cho các thành phần còn lại (standby state) các updates mà chúng phải làm. ‰ Khi Fault xảy ra : hệ thống kiểm tra xem backup có ₫ủ mới (fresh) không trước khi phục hồi dịch vụ. ‰ thường ₫ược dùng trong các hệ thống ₫iều khiển ‰ chuyển ₫ổi ₫ịnh kỳ thành phần chính sẽ gia tăng tính sẵn sàng ₫ể dùng. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 12 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phục hồi sau khi hỏng : phần tử dự phòng (spare) ‰ Platform tính toán dự phòng ở trạng thái standby ₫ược cấu hình ₫ể thay thế nhiều thành phần hỏng hóc khác nhau : ƒ phải reboot ₫ể dùng lại cấu hình (mới) của phần mềm ƒ khi failure xảy ra, ta khởi tạo lại trạng thái cho nó. ‰ ₫ịnh kỳ ghi checkpoint về trạng thái hệ thống và các tháy ₫ổi trạng thái lên thiết bị vĩnh cửu (disk). ‰ downtime : tính theo phút CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 13 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Tái tạo fault : hoạt ₫ộng bóng ma ‰ thành phần hỏng hóc trước ₫ây có thể ₫ược chạy trong chế ₫ộ shadow. ƒ trong 1 khỏang thời gian ƒ ₫ể ₫ảm bảo nó tối thiểu hành vi của các thành phần ₫ang vận hành. ƒ trước khi phục hồi nó ₫ể vận hành tiếp. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 14 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Tái tạo fault : ₫ồng bộ hóa lại trạng thái ‰ dư thừa chủ ₫ộng hay thụ ₫ộng : thành phần ₫ược phục hồi cập nhật trạng thái của mình trước khi trở lại làm việc. ‰ Cập nhật phụ thuộc vào : ƒ downtime ƒ kích thước cập nhật ƒ số thông báo ₫ược ₫òi hỏi ₫ể cập nhật : tốt nhất là 1, nhiều sẽ dẫn tới ₫ộ phực tạp của phần mềm. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 15 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Tái tạo fault : checkpoint/rollback ‰ checkpoint ‰ ghi trạng thái còn ₫úng (nhất quán). ‰ ₫ược thực hiện ₫ịnh kỳ hay khi ₫áp ứng với sự kiện ₫ặc biệt ‰ hữu dụng khi hệ thống hỏng không thường xuyên với trạng thái không nhất quán có thể phát hiện ₫ược. Hệ thống ₫ược phục hồi bằng : ƒ checkpoint của trạng thái nhất quán ngay trước. ƒ nhật ký các transactions xảy ra từ khi chúng bắt ₫ầu hoạt ₫ộng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 16 2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng Phòng ngừa fault ‰ Bỏ không phục vụ ƒ ₫ể cấm các failure tiên ₫oán trước, ta xóa bỏ thành phần liên quan ƒ thí dụ boot lại thành phần ₫ể cấm sự thiếu hụt bộ nhớ ƒ làm tự ₫ộng hay thủ công ‰ Transaction : các bước tuần tự ₫ược bó lại nhau sao cho toàn bộ bó có thể ₫ược undo 1 lần. ‰ giám sát process : nếu process hỏng bị phát hiện thì process giám sát sẽ xóa process không làm việc và tạo mới 1 instance khác thay thế : phải ₫ược khởi tạo với trạng thái phù hợp như trong tactic dùng phần tự dự phòng. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 17 2.3 Các tactics giải quyết tính dễ sử dụng (Usability) ‰ tính có thể dùng liên quan ₫ến : ƒ hệ thống hỗ trợ cho user những thứ gì ƒ người dùng thực hiện tác vụ mong muốn dễ dàng như thế nào. ‰ các tactic ƒ thời gian chạy : hỗ trợ user trong suốt thời gian thi hành của hệ thống ƒ tại thời ₫iểm thiết kế : hỗ trợ nhà phát triển interface + bản chất lặp của việc thiết kế interface + liên quan tới các tactic giải quyết tính có thể hiệu chỉnh Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 18 2.3 Các tactics giải quyết tính dễ sử dụng (Usability) các tactic tại thời ₫iểm chạy ‰ Các phản hồi của user về hệ thống ₫ang làm gì ‰ cung cấp cho user khả năng thực hiện các lệnh liên quan ₫ến tính dễ dùng : ƒ Cancel ƒ Undo ƒ Tích hợp ƒ hiển thị nhiều góc nhìn CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 19 2.3 Các tactics giải quyết tính dễ sử dụng (Usability) tính dễ sử dụng Các tactic tại thời ₫iểm chạy chủ ₫ộng hệ thống Các tactic tại thời ₫iểm thiết kế Tách giao tiếp user yêu cầu của user Cung cấp phản hồi và hỗ trợ phù hợp cho user chủ ₫ộng user Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 20 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) ‰ mục tiêu: kiểm soát thời gian và chi phí của sự thay ₫ổi nào ₫ó trong việc hiện thực, kiểm thử, hiệu chỉnh và phân phối. ‰ tập các tactic ƒ Khoanh vùng các thay ₫ổi : giảm số module bị ảnh hưởng bởi 1 thay ₫ổi ƒ phòng ngừa các hiệu ứng dây chuyền : hạn chế việc thay ₫ổi tới các module bị khoanh vùng. ƒ trì hoản thời ₫iểm kết nối các module lại : kiểm soát thời gian phân phối và chi phí. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 21 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Tính thay ₫ổi ₫ược Khoanh vùng các thay ₫ổi Nhất quán ngữ nghĩa dự ₫oán các thay ₫ổi tổng quát hóa module dịch vu chung trừu tượng Ngừa các hiệu ứng dây chuyền Ẩn thông tin Duy trì giao tiếp tồn tại hạn chế ₫ường liên lạc dùng ptử trung gian Trì hoản thời ₫iểm liên kết ₫ăng ký tại td chạy file cấu hình Đa xạ Thay thế thành phần Đính vào các gt ₫ã có Các thay ₫ổi tới Đã thay ₫ổi, kiểm thử, phân phối trong thời gian và kinh phí xác ₫ịnh Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 22 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Khoanh vùng các thay ₫ổi : duy trì tính nhất quán ngữ nghĩa ‰ Tính nhất quán ngữ nghĩa : mối quan hệ giữa các trách nhiệm trong 1 module. ‰ Mục tiêu : ₫ảm bảo tất cả trách nhiệm này làm việc cùng nhau cho dù có hay không sự dựa dẫm quá nhiều vào những module khác. ‰ Cách ₫ạt mục tiêu : thiết kế các module với các trách nhiệm trong sự nhất quán ngữ nghĩa. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 23 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Khoanh vùng các thay ₫ổi : dịch vụ chung trừu tượng ‰ Tactic con của tính nhất quán ngữ nghĩa ‰ cung cấp các dịch vụ chung thông qua các module ₫ặc biệt ‰ Tính dùng lại và tính thay ₫ổi ₫ược ƒ Sự thay ₫ổi tới các dịch vụ chung ₫ược làm chỉ 1 lần thay vì trong từng module dùng chúng. ƒ Các thay ₫ổi trơng các module dùng dịch vụ chung không ảnh hưởng ₫ến các user khác. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 24 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Khoanh vùng các thay ₫ổi : tiên ₫oán các thay ₫ổi ₫ược chờ ₫ợi ‰ việc chú ý tập các thay ₫ổi mường tượng cung cấp cách thức ₫ánh giá việc gán các trách nhiệm. ‰ Các câu hỏi : ƒ ₫ối với 1 thay ₫ổi : sự phân rã mà ta ₫ề nghị có hạn chế tập các module cần thay ₫ổi ? ƒ Về cơ bản, các thay ₫ổi khác nhau có ảnh hưởng trên cùng các module ? ‰ Mục tiêu : tối thiểu hóa ảnh hưởng của các thay ₫ổi. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 25 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Khoanh vùng các thay ₫ổi : tổng quát hóa module chức năng ‰ tổng quát hóa 1 module bằng cách làm cho nó thực hiện 1 lớp rộng các chức năng dựa vào kiểu thông tin nhập. ‰ Thông tin nhập : ₫ịnh nghĩa ngôn ngữ cho module ƒ làm các thông số nhập là hằng ƒ hiện thực module như 1 trình thông dịch và làm các thông số nhập như là các chương trình trong ngôn ngữ thông dịch ₫ó. ‰ module tổng quát hơn ‰ Thích nhất là làm các thay ₫ổi theo yêu cầu bằng cách hiệu chỉnh ngôn ngữ nhập. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 26 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Phòng ngữa các hiệu ứng lan truyền ‰ Khoanh vùng các thay ₫ổi / hạn chế các thay ₫ổi trên các module bị khoanh vùng. ƒ Có 1 số module bị tác ₫ộng trực tiếp : ₫ó là các module có các trách nhiệm cần ₫ược ₫iều chỉnh ₫ể thực hiện ₫ược sự thay ₫ổi. ƒ Có 1 số module bị tác ₫ộng gián tiếp bởi sự thay ₫ổi : ₫ó là các module có các trách nhiệm vẫn không ₫ổi nhưng sự hiện thực cần ₫ược thay ₫ổi ₫ể phù hợp với các module bị tác ₫ộng trực tiếp. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 27 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Các hiệu ứng lan truyền ‰ Hiệu ứng lan truyền từ 1 thay ₫ổi : ƒ sự cần thiết thay ₫ổi các module không bị tác ₫ộng trực tiếp bởi nó. ƒ ₫iều này xảy ra vì các module ₫ược ₫ề cập phụ thuộc ít nhiều vào các module liên quan trực tiếp ₫ến sự thay ₫ổi. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 28 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Các kiểu phụ thuộc ‰ Ta giả sử : ‰ module A thay ₫ổi ₫ể thực hiện sự thay ₫ổi nào ₫ó. ‰ module B bị thay ₫ổi chỉ vì module A thay ₫ổi. ‰ Có nhiều kiểu phụ thuộc : cú pháp, ngữ nghĩa, tuần tự, identity of interface, location of A, quality of service, existence of A, resource behavior of A. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 29 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Sự phụ thuộc cú pháp ‰ của data : ƒ B dùng dữ liệu ₫ược tạo bởi A ƒ kiểu và ₫ịnh dạng dữ liệu trong cả 2 module A và B cần ₫ược nhất quán nhau. ‰ của dịch vụ : ƒ B cầu cứu dịch vụ của A ƒ chữ ký các dịch vụ ₫ược cung cấp bởi A cần nhất quán với kỳ vọng của B. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 30 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Sự phụ thuộc ngữ nghĩa ‰ của data : ƒ B dùng dữ liệu ₫ược tạo bởi A ƒ ngữ nghĩa dữ liệu ₫ược tạo ra bởi module A và ₫ược dùng bởi B cần ₫ược nhất quán với kỳ vọng của B. ‰ của dịch vụ : ƒ B cầu cứu dịch vụ của A ƒ ngữ nghĩa các dịch vụ ₫ược cung cấp bởi A cần nhất quán với kỳ vọng của B. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 31 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Sự phụ thuộc tuần tự ‰ của data : ƒ B dùng dữ liệu ₫ược tạo bởi A ƒ B phải nhận dữ liệu ₫ược tạo ra bởi A theo trình tự cố ₫ịnh biết trước. ‰ của ₫iều khiển : ƒ A phải ₫ược thi hành trước trong khoảng thời gian ràng buộc xác ₫ịnh. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 32 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Sự ₫ồng nhất về interface của A ‰ A phải có nhiều interface sử dụng ‰ B dùng 1 trong chúng ‰ Để B ₫ược dịch và thi hành ₫úng, sự ₫ồng nhất của interface phải nhất quán với các kỳ vọng của B. CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 33 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Các sự phụ thuộc khác ‰ vị trí chạy của A : phải nhất quán với kỳ vọng của B ‰ chất lượng dịch vụ/data ₫ược cung cấp bởi A : các tính chất liên quan ₫ến chất lượng phải nhất quán với kỳ vọng của B. ‰ sự tồn tại của A : Để B thi hành ₫ược, A phải tồn tại ₫ể sẳn sàng phục vụ. ‰ Hành vi tài nguyên của A : phải nhất quán với các kỳ vọng của B. Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 34 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Các tactic ₫ể phòng ngừa hiệu ứng lan truyền ‰ Ẩn thông tin ‰ duy trì các interface tồn tại ‰ hạn chế các ₫ường liên lạc ‰ dùng phần tử trung gian CuuDuongThanCong.com https://fb.com/tailieudientucntt Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 35 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Ẩn thông tin ‰ Phân rã các trách nhiệm ra những phần nhỏ hơn và chọn thông tin nào ₫ể ẩn và thông tin nào ₫ể public. ‰ thông tin public có thể dùng ₫ược thông qua interface xác ₫ịnh ‰ Mục tiêu : ngăn các thay ₫ổi trong 1 module và ngừa các thay ₫ổi lan truyền từ module này sang module khác. ƒ kỹ thuật cũ nhất từ việc cấm các thay ₫ổi lan truyền ƒ liên quan mạnh tới tiên ₫oán các thay ₫ổi chờ ₫ợi (ta dùng các thay ₫ổi này làm cơ sở cho việc phân rã). Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương 2 : Các tactic Slide 36 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Duy trùy các interface luôn tồn tại ‰ Cú pháp của B phụ thuộc vào interface của A : duy trì interface của A sẽ làm B không thay ₫ổi. ‰ Sự ổn ₫ịnh interface : tách interface với sự hiện thực nó ‰ Cách hiện thực tactic ƒ thêm interface ƒ thêm adapter ƒ cung cấp stub cho A CuuDuongThan
Tài liệu liên quan