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
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
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.
File đính kèm:
- bai_giang_kien_truc_phan_mem_chuong_2_cac_tactic.pdf
Nội dung text: 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ữ 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 4
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 8
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 12
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 16
- 2.3 Các tactics giải quyết tính dễ sử dụng (Usability) tính dễ sử dụng Cung cấp phản hồi và hỗ trợ phù hợp cho Các tactic tại thời ₫iểm chạy Các tactic tại thời ₫iểm thiết kế yêu cầu của user user chủ ₫ộng hệ thống Tách giao tiếp user chủ ₫ộng user Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 20
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 24
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 28
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 32
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 36
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 40
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 44
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 48
- 2.6 Các tactic giải quyết an ninh An ninh Hệ thống phát hiện, ngăn 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 Tấn công chặn hay phục hồi Xác nhận user Phát hiện sự xâm nhập Nhận dạng sau tấn công Cho phép user Duy trì data mật Duy trì tính toàn vẹn Hạn chế bùng nỗ Phục hồi Audit trail Hạn chế truy xuất xem Availability Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 51 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 52
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 55 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 56
- 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 59 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 60
- 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 2 : Các tactic © 2015 Slide 63