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
32 trang |
Chia sẻ: thanhle95 | Lượt xem: 465 | Lượt tải: 0
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