Xem mẫu

  1. Chương 2 CÁC TACTIC 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 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 1 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  2. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 3 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ể. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  3. 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 Sửa chữa & Recovery- Phòng ngừa Fault chuẩn bị phục hồi Reintroduction Fault bị che Đã sửa chữa Ping/Echo Voting bóng ma Không phục vụ HeartBeat Thừa chủ ₫ộng ₫ồng bộ hóa Giao tác Exception Thừa thụ ₫ộng trạng thái Giám sát process Dùng secour checkpoint/ Rollback Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 5 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  4. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 7 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ý. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  5. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 9 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  6. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 : 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 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  7. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 13 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  8. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 15 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  9. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 17 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 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  10. 2.3 Các tactics giải quyết tính dễ sử dụng (Usability) tính dễ sử dụng Cung cấp phản hồi và hỗ trợ Các tactic tại thời ₫iểm thiết kế phù hợp cho yêu cầu của user Các tactic tại thời ₫iểm chạy user chủ ₫ộng hệ thống Tách giao tiếp user chủ ₫ộng user Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 19 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í. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  11. 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Tính thay ₫ổi ₫ược Đã thay ₫ổi, Các thay Khoanh vùng các Ngừa các hiệu ứng dây Trì hoản thời ₫iểm kiểm thử, ₫ổi tới thay ₫ổi chuyền liên kết phân phối trong thời gian Ẩn thông tin ₫ăng ký tại td chạy và kinh phí Nhất quán ngữ nghĩa xác ₫ịnh Duy trì giao tiếp tồn tại file cấu hình dự ₫oán các thay ₫ổi hạn chế ₫ường liên lạc Đa xạ tổng quát hóa module dùng ptử trung gian Thay thế thành phần dịch vu chung trừu tượng Đính vào các gt ₫ã có Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 21 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  12. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 23 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  13. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 25 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  14. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 27 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  15. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 29 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  16. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 31 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  17. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 33 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 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 34 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  18. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 35 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 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  19. 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Hạn chế các ₫ường liên lạc ‰ hạn chế số module dùng chung data với A (A cần thay ₫ổi) ƒ hạn chế số module mà dùng dữ liệu do A cung cấp ƒ hạn chế số module mà cung cấp dữ liệu cho A dùng. -> giảm ₫ược hiệu ứng lan truyền ‰ - sản xuất/tiêu dùng dữ liệu sẽ tạo ra sự phụ thuộc. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 37 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Dùng phần tử trung gian ‰ B phụ thuộc A theo các cách khác hơn ngữ nghĩa : ƒ có thể tạo ra phần tử trung gian ₫ể quản lý sự phụ thuộc ƒ data (cú pháp), dịch vụ (cú pháp), vị trí của A, sự tồn tại của A Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 38 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  20. 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Trì hoản thời gian liên kết ‰ sự quyết ₫ịnh liên kết A vào hệ thống thực thi ở những thời ₫iểm khác nhau. ‰ Liên kết tại thời ₫iểm chạy : ƒ hệ thống ₫ã chuẩn bị ₫ể làm việc liên kết này. ƒ tất cả bước kiểm thử và phân tán ₫ã hoàn thành rồi ƒ hỗ trợ người dùng ₫ầu cuối/admin làm các thiết lập hay cung cấp input mà ảnh hưởng ₫ến hành vi. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 39 2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability) Các tactic mà ảnh hưởng tại thởi ₫iểm load/chạy ‰ ₫ăng ký tại thời gian chạy : hoạt ₫ộng plug-and-play, nỗ lực hơn ₫ể quản lý việc ₫ăng ký ‰ file cấu hình : thiết lập các thông số tại thời ₫iểm bắt ₫ầu ‰ ₫a xạ : liên kết muộn các lời gởi thông ₫iệp ‰ Thay thế thành phần : liên kết tại thời ₫iểm load ‰ sự ₫ính vào các giao thức ₫ã ₫ịnh nghĩa : liên kết tại thời ₫iểm chạy các process ₫ộc lập. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 40 CuuDuongThanCong.com https://fb.com/tailieudientucntt
nguon tai.lieu . vn