Tải bản đầy đủ (.pdf) (32 trang)

Bài giảng Kiến trúc phần mềm - Chương 2: Các Tactic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (221.53 KB, 32 trang )

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

/>

×