Bài giảng Kiến trúc phần mềm - Chương 3: Các mẫu kiến trúc phổ dụng - Nguyễn Trung Hiệp
3.1 Kiến trúc trong các hệ thống phần mềm
kiến trúc là cấu trúc các phần tử, không chỉ là cái gì mà là tại sao
kiến trúc tốt :
kết quả của 1 tập các nguyên tắc và kỹ thuật nhất quán được
áp dụng nhất quán thông qua tất cả các bước của dự án phần
mềm
không nản lòng khi đối diện với các thay đổi không thể tránh
được.
nguồn hướng dẫn xuyên suốt thời gian sống của phần mềm
bao gồm 1 ít tính chất và luật khóa để tổ hợp chúng sao cho sự
toàn vẹn kiến trúc được giữ nguyên.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kiến trúc phần mềm - Chương 3: Các mẫu kiến trúc phổ dụng - Nguyễn Trung Hiệp", để 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 3: Các mẫu kiến trúc phổ dụng - Nguyễn Trung Hiệp
oller) Tình huống nên dùng : Hệ thống có nhiềucách₫ể view và tương tác vớidữ liệu, hoặctachưabiếttrướccácyêucầutương lai về sự tương tác và biểudiễndữ liệucủachương trình. Ưu ₫iểm : cho phép dữ liệu thay ₫ổi ₫ộclậpvớicáchthứcthể hiện nó và ngượclại. Khuyết ₫iểm : có thể cầnnhiều code hơn và code có thể phức tạphơn khi mô hình dữ liệuvàsự tương tác chỉởmức ₫ộ ₫ơn giản. 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 27 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc MVC (Model-View-Controller) Thí dụ : Hệ thống web dùng kiếntrúcMVC : 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 28 3.2 Các mẫu kiếntrúc phổ dụng Kiến trúc MVP (Model-View-Presenter) Đặctả : Hệ thống gồm 3 thành phầnluậnlýtương tác lẫn nhau : Model quảnlýdữ liệuvàcáctácvụ liên quan ₫ếndữ liệu này. View ₫ịnh nghĩavàquảnlýcáchthứcdữ liệu ₫ược trình bày cho user. Controller quảnlýcáctương tác vớiuser nhưấn phím, click chuột và gởi thông tin tương tác này tới View và/hoặcModel. 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 29 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc MVP (Model-View-Presenter) 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 30 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc MVP (Model-View-Presenter) Tình huống nên dùng : Hệ thống có nhiềucách₫ể view và tương tác vớidữ liệu, hoặctachưabiếttrướccácyêucầutương lai về sự tương tác và biểudiễndữ liệucủachương trình. Ưu ₫iểm : cho phép dữ liệu thay ₫ổi ₫ộclậpvớicáchthứcthể hiện nó và ngượclại. Khuyết ₫iểm : có thể cầnnhiều code hơn và code có thể phức tạphơn khi mô hình dữ liệuvàsự tương tác chỉởmức ₫ộ ₫ơn giản. 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 31 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc MVP (Model-View-Presenter) Thí dụ : Hệ thống web dùng kiếntrúcMVC : 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 32 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc kho (Repository Architecture) Đặctả : Tấtcả dữ liệucủahệ thống ₫ượcquản lý trong 1 kho chứatập trung, mọi thành phầnchứcnăng củahệ thống ₫ềucó thể truy xuấtkhochứa này. Các thành phần không tương tác trực tiếpvới nhau, chỉ thông qua kho chứatập trung. Component 1 Component 2 Component 3 Component n Kho dữ liệu (repository) 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 33 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc kho (Repository Architecture) Tình huống nên dùng : khi hệ thống tạovàchứa1 lượng rấtlớn thông tin trong thời gian dài, hay trong các hệ thống dựavàodữ liệu, ở₫óviệcchứa thông tin vào kho sẽ kích hoạt 1 tool hay 1 chứcnăng hoạt ₫ộng. Ưu ₫iểm : các thành phần ₫ộclập nhau, không ai biếtgìvề ai khác. Khuyết ₫iểm : kho là ₫iểmyếunhất, nếucólỗisẽảnh hưởng toàn bộ các thành phầnchứcnăng. Có vấn ₫ề về truy xuất ₫ồng thời kho, phân tán kho trên nhiềumáycũng khó khăn. 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 34 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc kho (Repository Architecture) Thí dụ : Môi trường IDE gồmnhiều thành phần dùng chung kho thông tin, mỗi tool tạo thông tin và ₫ể trong kho ₫ể các tool khác 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 35 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúchướng ₫ối tượng (Objects based Architecture) Đặctả : Hệ thống phần mềm gồm 1 tập các ₫ối tượng ₫ộc lập ₫ược ghép nối lỏng lẻo. Object 2 Object 1 gởi thông ₫iệp Object n Object 3 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 36 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc hướng ₫ối tượng (Objects based Architecture) Đối tượng : là nguyên tử cấu thành phần mềm, nó có 1 số tính chất sau : Reusable Replaceable Extensible, Heritable Encapsulated Independent Persistent Aggregation... 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 37 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc hướng ₫ối tượng (Objects based Architecture) Các nguyên tắc chính yếu của kiến trúc hướng ₫ối tượng : Abstraction Composition Inheritance Encapsulation Polymorphism Decoupling 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 38 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc hướng ₫ối tượng (Objects based Architecture) Ưu ₫iểm của kiến trúc hướng ₫ối tượng : Understandable Reusable Testable Extensible Highly Cohesive 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 39 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc hướng ₫ối tượng (Objects based Architecture) Tình huống nên dùng : bất kỳ hệ thống phần mềm phức tạp nào. Khuyết ₫iểm : là mẫu kiến trúc có ₫ộ tổng quát cao nên khi hiện thực ta phải tốn nhiều chi phí ₫ể vận dụng nó. 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 40 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc các thành phần (Components based Architecture) Đặctả : Hệ thống phần mềm gồm 1 tập các thành phần ₫ộc lập ₫ược ghép nối lỏng lẻo. Component 2 Component 1 Component n Component 3 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 41 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc các thành phần (Components based Architecture) Thành phần : là nguyên tử cấu thành phần mềm, nó có 1 số tính chất sau : Reusable Replaceable Not context specific Extensible Encapsulated Independent 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 42 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc các thành phần (Components based Architecture) Ưu ₫iểm của kiến trúc các thành phần : Ease of deployment Reduced cost Ease of development Reusable Mitigation of technical complexity 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 43 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc các thành phần (Components based Architecture) Tình huống nên dùng : bất kỳ hệ thống phần mềm phức tạp nào. Khuyết ₫iểm : là mẫu kiến trúc có ₫ộ tổng quát cao nên khi hiện thực ta phải tốn nhiều chi phí ₫ể vận dụng nó. 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 44 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúchướng dịch vụ (Service-Oriented Architecture) Đặctả : Cho phép tạo phần mềm bằng cách sử dụng các dịch vụ sẵn có. App Module Service 1 Service 2 Service 3 Service n Internet 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 45 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc hướng dịch vụ (Service-Oriented Architecture) Service : phần tử cung cấp 1 số chức năng ₫a dụng nào ₫óvà thường ₫ã có sẵn. Các nguyên tắc chính yếu của kiến trúc hướng dịch vụ là : Services are autonomous Services are distributable Services are loosely coupled Services share schema and contract, not class Compatibility is based on policy 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 46 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc hướng dịch vụ (SOA - Service-Oriented Architecture) Ưu ₫iểm của kiến trúc hướng dịch vụ : Domain alignment Abstraction Discoverability Interoperability Rationalization 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 47 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc hướng dịch vụ (SOA - Service-Oriented Architecture) Tình huống nên dùng : bất kỳ hệ thống phần mềm phức tạp nào mà muốn chạy trên nền Internet. Khuyết ₫iểm : ₫ộ hiệu quả phụ thuộc vào cơ sở hạ tầng mạng và máy chạy service. 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 48 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc Chương trình chính và thủ tục (Main Program/Subroutine Architecture) Đặc tả : Hệ thống phần mềm gồm 1 chương trình chính và 1 tập các thủ tục chức năng cần thiết. dùng cách phân rã theo dạng cây phân cấp : dựa trên mối quan hệ ₫ịnh nghĩa-sử dụng. chỉ có 1 thread kiểm soát duy nhất : ₫ược hỗ trợ trực tiếp bởi các ngôn ngữ lập trình. ẩn chứa cấu trúc hệ thống con : các thủ tục có mối quan hệ mật thiết thường ₫ược gộp thành module. lý do của sự phân cấp : ₫ộ ₫úng ₫ắn của 1 thủ tục phụ thuộc vào sự ₫úng ₫ắn của các thủ tục mà nó gọ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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 49 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc Chương trình chính và thủ tục (Main Program/ Subroutine Architecture) Main Program Sub 1 Sub 2 Sub 3 Sub n-1 Sub n 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 50 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc các process liên lạc nhau (Communication process Architecture) Đặctả : Hệ thống phần mềm gồm 1 tập các process ₫ộc lập liên lạc lẫn nhau khi cần. Process 2 Process 1 Process n Process 3 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 51 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc các process liên lạc nhau (Communication process Architecture) Process : là nguyên tử cấu thành phần mềm, nó là 1 phần mềm chạy ₫ộc lập, mỗi process thực hiện 1 chức năng xác ₫ịnh. Connector : phương tiện tương tác (truyền thông báo) giữa các process : ₫iểm tới ₫iểm ₫ồng bộ hay bất ₫ồng bộ RPC và các giao thức khác có thể ₫ược ₫ặt trên cấp các process nà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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 52 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúcdựa trên sự kiện (Event-based Architecture) Đặctả : Hệ thống phần mềm gồm 1 tập các thành phần ₫ộc lập ₫ược ghép nối lỏng lẻo dựa trên việc tạo/xử lý sự kiện. Component 1 Component 2 tạo sự kiện xử lý sự kiện Component 3 Component n 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 53 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc dựa trên sự kiện (Event-based Architecture) Emitter : là phần tử tạo và phát tán 1 hay nhiều sự kiện. Handler : là phần tử muốn xử lý sự kiện, nó ₫ăng ký thủ tục xử lý sự kiện vào danh sách xử lý của sự kiện tương ứng. Khi sự kiện xảy ra, nó ₫ược kích hoạt chạy (bởi module quản lý sự kiện). Lưu ý thứ tự chạy các thủ tục xử lý sự kiện cho 1 sự kiện xác ₫ịnh là không xác ₫ịnh. Event chanel : là phương tiện truyền dẫn sự kiện từ emitter tới handler. Lưu ý là phần tử nào trong hệ thống ₫ều có thể là event emitter lẫn event handler. Có thể có các dạng tương tác khác giữa các phần tử như gọi thủ tục, truy xuất 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 54 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc dựa trên sự kiện (Event-based Architecture) Tình huống nên dùng : trong các hệ thống : tương tác bẩm sinh như giao diện người dùng, mạng máy tính. trả kết quả về từ việc thi hành bất ₫ồng bộ (thread). gia tăng khả năng việc dùng lại từng thành phần. cải tiến hệ thống dễ dàng : thay ₫ổi thành phần này bằng thành phần khác. Khuyết ₫iểm : ? 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 55 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúcbảng ₫en (Blackboard Architecture) Đặctả : Hệ thống phần mềm gồm 3 loại thành phần tương tác nhau như sau : Controller KB 1 KB 1 KB 1 KB 1 Blackboard 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 56 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc bảng ₫en (Blackboard Architecture) blackboard : là vùng nhớ toàn cục có cấu trúc của phần mềm, nó chứa các ₫ối tượng của bài toán cần giải quyết, còn ₫ược gọi là các nút, chúng ₫ược tổ chức dạng phân cấp. Knowledge sources : là những module chức năng chuyên dụng có cách biểu diễn riêng biệt. Mỗi KS ₫ược ₫ặc trưng bởi 1 tập các ₫iều kiện kích hoạt xác ₫ịnh và ₫oạn code xử lý dữ liệu từ blackboard rồi ₫óng góp kết quả vào quá trình giải quyết bài toán. Control : là phần tử ₫iều khiển chung, nó cấu hình, chọn lựa và thi hành các KS. Việc xác ₫ịnh KS nào là dựa vào trạng thái của quá trình giải quyết bài toán (₫ược miêu tả trong blackboard). 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 57 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc bảng ₫en (Blackboard Architecture) Tình huống nên dùng : trong các hệ chuyên gia giải quyết vấn ₫ề mà không có cách giải quyết tất ₫ịnh và có thể tin tưởng ₫ược. Khuyết ₫iểm : ? 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 58 3.3 Kết chương Chương này ₫ã giới thiệu 1 số mẫu kiến trúc phần mềm phổ 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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 59
File đính kèm:
- bai_giang_kien_truc_phan_mem_chuong_3_cac_mau_kien_truc_pho.pdf