Bài giảng Kiến trúc phần mềm - 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

 

pdf 32 trang phuongnguyen 7200
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc phần mềm - Chương 2: Các tactic", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc phần mềm - Chương 2: Các tactic

Bài giảng Kiến trúc phần mềm - 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 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/tai ...  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
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 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
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 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.
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 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
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 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
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 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ớ
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 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
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 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
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 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
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 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.
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 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
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 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
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 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
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 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.
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 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.
CuuDuongThanCong.com https://fb.com/tailieudientucntt

File đính kèm:

  • pdfbai_giang_kien_truc_phan_mem_chuong_2_cac_tactic.pdf