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
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ữ
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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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ữ
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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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
Tính sẵn sàng ₫ể dùng (Availability)
Phát hiện
Fault
Sửa chữa &
chuẩn bị phục hồi
RecoveryReintroduction
Phòng ngừa
Fault bị che
Đã sửa chữa
Ping/Echo
HeartBeat
Exception
Voting
Thừa chủ ₫ộng
Thừa thụ ₫ộng
Dùng secour
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
bóng ma
₫ồng bộ hóa
trạng thái
checkpoint/
Rollback
Không phục vụ
Giao tác
Giám sát process
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
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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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 : 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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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ụ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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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 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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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
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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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 : 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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 16
/>
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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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)
tính dễ sử dụng
yêu cầu của user
Các tactic tại thời ₫iểm chạy
Các tactic tại thời ₫iểm thiết kế
Cung cấp phản
hồi và hỗ trợ
phù hợp cho
user
Tách giao tiếp user
chủ ₫ộng hệ thống
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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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)
Tính thay ₫ổi ₫ược
Các thay
₫ổi tới
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
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
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
Đã thay ₫ổi,
kiểm thử,
phân phối
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ó
trong thời gian
và kinh phí
xác ₫ịnh
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)
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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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 : 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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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 : 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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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)
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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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)
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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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 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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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)
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.
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 33
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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)
Ẩ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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
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)
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
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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 38
/>
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
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 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
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 40
/>
2.5 Các tactic giải quyết hiệu suất
Mục tiêu : tạo ₫áp ứng với sự kiện tới hệ thống trong khoảng thời
gian ràng buộc.
event : ₫ơn hay dòng (stream) : thông báo ₫ến, hết giờ, sự thay
₫ổi trạng thái có ý nghĩa,...
Độ trễ : khoảng thời gian từ lúc sự kiện xảy ra tới lúc có ₫áp ứng
với nó.
sự kiện ₫ến : hệ thống xử lý nó hay giam việc xử lý.
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 41
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
2.5 Các tactic giải quyết hiệu suất
Hiệu suất
Các sự
kiện tới
Xin tài nguyên
Tăng hiệu quả tính
Giảm chí phí tính
Quản lý tốc ₫ộ event
Kiểm soát ần số lấy mẫu
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
Quản lý tài nguyên
Tạo sự ₫ồng thời
Quản lý các copy
Tăng tài nguyên có sẵn
Trọng tài tài nguyên
Chính sách lập lịch
Đã ₫áp ứng
trong thời gian
xác ₫ịnh
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 42
/>
2.5 Các tactic giải quyết hiệu suất
Tactic xin tài nguyên
Nguồn gốc của việc xin gài nguyên : dòng sự kiện tới
Các tính chất xin :
thời gian giữa các sự kiện trong dòng tài nguyên (request vào
dòng thường xuyên ra sao)
mỗi request dùng ₫ược bao nhiêu % của từng tài nguyên
Tactic giảm ₫ộ trễ
giảm tài nguyên cần dùng
giảm số sự kiện ₫ược xử lý
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 43
2.5 Các tactic giải quyết hiệu suất
Giảm số tài nguyên cần dùng
gia tăng sự kiệu quả tính toán
việc xử lý liên quan ₫ến giải thuật -> cải tiến giải thuật
có thể trao ₫ổi tài nguyên với process khác
giảm chi phí tính toán
nếu không có request nào cần tài nguyên -> cần giảm thiểu
nhu cầu tính toán của nó.
loại bỏ các phần tử trung gian
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 44
/>
2.5 Các tactic giải quyết hiệu suất
Giảm số sự kiện ₫ược xử lý
quản lý tốc ₫ộ xảy ra sự kiện : giảm tần số lấy mẫu cho việc giám
sát các biến môi trường
kiểm soát tần số lấy mẫu : nếu không cần kiểm soát sự xuất hiện
của các sự kiện ₫ược tạo ra từ ngoài thì các request ₫ợi có thể
₫ược lấy mẫu ở tần số thấp hơn (có thể mất request)
hạn chế thời gian thi hành : giới hạn cận trên thời gian thi hành
₫ược dùng cho mỗi sự kiện
hạn chế kích thước hàng ₫ợi : kiểm soát số max các sự kiện ₫ến
hàng ₫ợ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 45
2.5 Các tactic giải quyết hiệu suất
Quản lý tài nguyên
tạo ra sự ₫ồng thời : xử lý các request ₫ồng thời
các dòng sự kiện khác nhau ₫ược xử lý trên các thread khác
nhau (tạo thêm thread khi cần)
cân bằng tải
duy trì nhiều copy của 1 dữ liệu và sự tính toán : cache và ₫ồng bộ
hóa
gia tăng tài nguyên sẳn sàng dùng : nếu các processor và mạng
nhanh hơn, thì sẽ có thêm processor và bộ nhớ
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 46
/>
2.5 Các tactic giải quyết hiệu suất
Trọng tài phân xử tài nguyên
Tranh chấp tài nguyên -> cần lập lịch dùng tài nguyên
mục tiêu kiến trúc :
hiểu các tính chất của mỗi việc dùng tài nguyên và chọn lựa
lịch thích hợp
hiểu tiêu chí có thể mâu thuẩn trong việc lập lịch và hiệu ứng
của tactic ₫ược chọn
chính sách lập lịch
gán quyền ưu tiên
dispatching
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 47
2.5 Các tactic giải quyết hiệu suất
Lập lịch
cho cái gì ? mạng, buffer, processor
tiêu chí cạnh tranh nhau trong lập lịch
dùng tài nguyên tối ưu
₫ộ quan trọng của request
tối thiểu số tài nguyên ₫ược dùng
tối thiểu ₫ộ trễ
tối ₫a hiệu năng
phòng ngừa tình trạng bảo hòa ₫ể ₫ảm bảo sự công bằng
dispatching có thể xảy ra chỉ khi tài nguyên ₫ược gán ₫ang sẵn
sàng
pre-empty có thể xảy ra
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 48
/>
2.5 Các tactic giải quyết hiệu suất
Các chính sách lập lịch
FIFO : Ok nếu tất cả request có cùng ₫ộ quan trọng và dùng cùng
1 khoảng thời gian thi hành.
dựa vào quyền ưu tiên cố ₫ịnh. Quyền ưu tiên dựa vào :
₫ộ quan trọng ngữ nghĩa (₫ặc thù của lĩnh vực)
₫ều ₫ều tốc ₫ộ (stream tuần hòan, period 1 ngắn hơn)
₫ều ₫ều deadline (deadline thời gian thực, deadline 1 ngắn
nhất
dựa vào quyền ưu tiên ₫ộng
round dobin
deadline ngắn nhất ₫ược chọn ₫ầu tiên.
lập lịch tĩ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 49
2.6 Các tactic giải quyết an ninh
Mục tiêu : ngăn chặn tấn công, phát hiện tấn công, phục hồi sau
tấn công
Mổ xẻ sự phòng chống cho nhà cửa
khóa cửa
cảm biến ₫ối tượng di ₫ộng
bảo hiểm
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2015
CuuDuongThanCong.com
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 50
/>