Bài giảng Kiến trúc phần mềm - Chương 2: Các tactics cung cấp cho người học các kiến thức: Định nghĩa thuật ngữ, các tactics giải quyết tính sẵn sàng để dùng, các tactics giải quyết tính dễ sử dụng (Usability), các tactic về tính thay đổi được (Modifiability), các tactic giải quyết hiệu suất,... Mời các bạn cùng tham khảo.
Trang 1Khoa Khoa học & Kỹ thuật Máy tính
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
Trang 2Khoa Khoa học & Kỹ thuật Máy tính
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
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ể
Trang 3Khoa Khoa học & Kỹ thuật Máy tính
Reintroduction
Recovery-bóng ma
₫ồng bộ hóa trạng tháicheckpoint/
Rollback
Phòng ngừa
Không phục vụGiao tácGiám sát process
Đã sửa chữa
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
Trang 4Khoa Khoa học & Kỹ thuật Máy tính
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
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ý
Trang 5Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 6Khoa Khoa học & Kỹ thuật Máy tính
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ườ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
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
Trang 7Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 8Khoa Khoa học & Kỹ thuật Máy tính
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
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng
Trang 9Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 10Khoa Khoa học & Kỹ thuật Máy tính
Các tactic tại thời ₫iểm thiết kế
Tách giao tiếp useryêu cầu của user
Cung cấp phản hồi và hỗ trợphù hợp cho user
chủ ₫ộng user
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
Trang 11Khoa Khoa học & Kỹ thuật Máy tính
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 tinDuy trì giao tiếp tồn tạihạn chế ₫ường liên lạcdùng ptử trung gian
Trì hoản thời ₫iểm liên kết
₫ăng ký tại td chạyfile 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
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
Trang 12Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 13Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 14Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 15Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 16Khoa Khoa học & Kỹ thuật Máy tính
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
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)
Trang 17Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 18Khoa Khoa học & Kỹ thuật Máy tính
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ã)
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ó
Trang 19Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 20Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 21Khoa Khoa học & Kỹ thuật Máy tính
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ý
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
Trang 22Khoa Khoa học & Kỹ thuật Máy tính
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
giảm tài nguyên cần dùng
giảm số sự kiện ₫ược xử lý
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
Trang 23Khoa Khoa học & Kỹ thuật Máy tính
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
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)
Trang 24Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 25Khoa Khoa học & Kỹ thuật Máy tính
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
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
Trang 26Khoa Khoa học & Kỹ thuật Máy tính
hay phục hồi sau tấn công
Phục hồi xem Availability Audit trail
2.6 Các tactic giải quyết an ninh
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