Kiến trúc phần mềm - Chương 2: Các tactic
Chương này ₫ã giới thiệu các tactics ₫ể giải quyết các yêu cầu
phi chức năng chính yếu của phần mềm như tính sẵn sàng ₫ể sử
dụng, tính dễ sử dụng, tính thay ₫ổi ₫ược, tính hiệu quả, tính có
thể kiểm thử, an ninh.
32 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 961 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Kiến trúc phần mềm - Chương 2: Các tactic, để 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.
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ể.
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.
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ý.
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.
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
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.
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.
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
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í.
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.
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.
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.
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.
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.
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.
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
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
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)
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 38
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
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)
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 40
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
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 41
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ý.
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 42
2.5 Các tactic giải quyết hiệu suất
Hiệu suất
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
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
Các sự
kiện tới Đã ₫áp ứng
trong thời gian
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 43
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 44
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
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
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 46
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
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
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 48
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
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 49
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 50
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
Môn : Kiến trúc phần mềm
Chương 2 : Các tactic
Slide 51
2.6 Các tactic giải quyết an ninh
An ninh
Ngăn chặn tấn công
Xác nhận user
Cho phép user
Duy trì data mật
Duy trì tính toàn vẹn
Hạn chế bùng nỗ
Hạn chế truy xuất
Phát hiện tấn công
Phát hiện sự xâm nhập
Phục hồi sau tấn công
Nhận dạng
Tấn công
Hệ thống phát
hiện, ngăn
chặn
hay phục hồi
sau tấn công
Phục hồi
xem Availability
Audit trail
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 52
2.6 Các tactic giải quyết an ninh
Ngăn chặn tấn công
Xác nhận người dùng : dùng account, password, password chỉ
dùng 1 lần, xác nhận số, id sinh trắc học.
cho phép ngời dùng : dùng các mẫu kiểm soát việc truy xuất
(ACL)
duy trì ₫ộ mật dữ liệu : mã hóa dữ liệu và ₫ường liên lạc
duy trì tính toàn vẹn : checksum, hash ₫ưa ₫ến help
hạn chế sự bùng nổ : số dịch vụ hạn chế trên mỗi host
hạn chế việc truy xuất : bức tường lửa, DMZ
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 53
2.6 Các tactic giải quyết an ninh
Phát hiện tấn công
hệ thống phát hiện sự xâm phạm
so sánh mẫu lưu lượng trên mạng với database
misuse -> mẫu ₫ược so sánh với các mẫu tấn công ₫ã biết
trong quá khứ.
bất thường -> mẫu ₫ược so với chính baseline quá khứ của nó
thanh lọc : protocol, cờ TCP, kích thước payload, ₫ịa chỉ, chỉ
số port.
phải có : cảm biến ₫ể phát hiện tấn công, người quản lý việc
liên hợp các cảm biến, database chứa sự kiện ₫ể phân tích,
tool ₫ể phân tích và lập báo cáo offline, console kiểm soát ₫ể
hiệu chỉnh các hoạt ₫ộng phát hiện xâm phạm
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 54
2.6 Các tactic giải quyết an ninh
Các phần tử phát hiện sự xâm phạm
cảm biến ₫ể phát hiện xâm phạm
người quản lý việc liên hợp các cảm biến
database chứa sự kiện ₫ể phân tích sau
tool ₫ể phân tích và lập báo cáo offline
console kiểm soát ₫ể hiệu chỉnh các hoạt ₫ộng phát hiện xâm
phạm.
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 55
2.6 Các tactic giải quyết an ninh
Phục hồi sau khi bị tấn công
các tactic ₫ể phục hồi trạng thái
phục hồi về trạng thái nhất quán từ trạng thái không nhất quán
: tactic giải quyết tính sẵn sàng ₫ể dùng
copy dư thừa dữ liệu quản trị hệ thống : password, ACL, dịch
vụ "domain name", dữ liệu cá nhân người dùng
các tacitc ₫ể nhận dạng kẻ tấn công
cho các mục ₫ích ngăn chặn và trừng phạt
duy trì "audit trail"
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 56
2.6 Các tactic giải quyết an ninh
Audi trail
bản copy mỗi giao tác tác ₫ộng tới dữ liệu trong hệ thống + thông
tin nhận dạng
có thể dùng ₫ể
theo dõi các hoạt ₫ộng của 1 kẻ tấn công
hỗ trợ sự không thể từ chối : cung cấp sự hiển nhiên về 1
request cụ thể ₫ã ₫ược thực hiện.
hỗ trợ việc phục hồi hệ thống
các mục tiêu tấn công thông thường : nên ₫ược duy trì trong thứ tự
tin cậy
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 57
2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược
mục tiêu : cho phép kiểm thử dễ dàng hơn khi 1 vài tăng cường về
phần mềm ₫ã hoàn thành.
việc tăng cường tính có thể kiểm thử ₫ược không phải quá lớn lao
nhưng rất có giá trị : 40% chi phí phát triển phần mềm
kiểm thử hệ thống ₫ang chạy (không phải ₫ang thiết kế)
công cụ kiểm thử :
SW mà cung cấp input cho SW cần kiểm thử và thu bắt kết
quả
mục tiêu là tìm fault.
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 58
2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược
tính có thể kiểm thử ₫ược
Quản lý I/O
Record/Playback
Tách interface/hiện thực
Các thủ tục/interface truy
xuất ₫ặc biệt
Giám sát bên trong
Các phần tử monitor
₫ược xây dựng sẵn
Hoàn thành sự
tăng cường nào
₫ó
Phát hiện
các fault
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 59
2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược
Các tactic I/O : record/playback
liên quan ₫ến
việc thu bắt thông tin ₫i ngang qua interface
dùng nó như input cho tool kiểm thử
thông tin ngang qua interface ở hoạt ₫ộng bình thường
xuất từ 1 thành phần, input tới thành phần khác
₫ược lưu trong kho
+ cho phép ₫ầu vào kiểm thử cho 1 thành phần
+ cho kết quả xuất kiểm thử ₫ể so sánh sau ₫ó.
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 60
2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược
Các tactic I/O : tách interface với hiện thực
cho phép việc thay thế hiện thực cho nhiều mục ₫ích kiểm thử
khác nhau
làm stub của hiện thực ₫ể hệ thống ₫ược kiểm thử mà không
cần có thành phần thật.
thay thế 1 thành phần ₫ặc biệt ₫ể thành phần ₫ược thay thế
hoạt ₫ộng như tool kiểm thử cho phần còn lại của hệ thống.
tactic cũng ₫ưa ₫ến tính có thể hiệu chỉnh ₫ượ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 61
2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược
Các tactic I/O : ₫ặc biệt hóa ₫ường truy xuất/interfcae
có các interface kiểm thử ₫ặc biệt : thu bắt/₫ặc tả các giá trị khác
nhau cho các thành phần
thông qua tool kiểm thử
1 cách ₫ộc lập từ việc thi hành bình thường
các ₫ường truy xuất ₫ặc biệt/interface : nên ₫ược giữa tách biệt từ
chức năng ₫òi hỏi
phân cấp các interface kiểm thử
các testcase có thể ₫ược áp dụng vào bất kỳ mức kiến trúc nào
chức năng kiểm thử phải "in place" ₫ể quan sát các ₫áp ứ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 62
2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược
Tactic giám sát bên trong
các phần tử giám sát xây dựng sẵn
thành phần có thể duy trì trạng thái, tải hiệu suất, khả năng, an
ninh,... có thể ₫ược truy xuất thông qua interface (interface
vĩnh cữu hay tạm ₫ược tạo ra cho kiểm thử).
ghi sự kiện khi trạng thái cần giám sát ₫ược kích hoạt
+ chí phí/nổ lực kiểm thử thêm nữa
+ ₫ộ có thể thấy ₫ược gia 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 63
2.8 Kết chương
Chương này ₫ã giới thiệu các tactics ₫ể giải quyết các yêu cầu
phi chức năng chính yếu của phần mềm như tính sẵn sàng ₫ể sử
dụng, tính dễ sử dụng, tính thay ₫ổi ₫ược, tính hiệu quả, tính có
thể kiểm thử, an ninh.
Các file đính kèm theo tài liệu này:
- kientrucphanmem_chuong2_0998.pdf