Bài giảng Kiến trúc phần mềm - Chương 3: Các mẫu kiến trúc phổ thông

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.

pdf 30 trang xuanthi 28/12/2022 2060
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 3: Các mẫu kiến trúc phổ thông", để 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:

  • pdfbai_giang_kien_truc_phan_mem_chuong_3_cac_mau_kien_truc_pho.pdf

Nội dung text: Bài giảng Kiến trúc phần mềm - Chương 3: Các mẫu kiến trúc phổ thông

  1. 3.1 Kiến trúc trong các hệ thống phần mềm Các phần tử của ₫ặc tả kiến trúc ‰ Định nghĩa kiến trúc cho 1 hệ thống chọn : ƒ các thành phần : ₫ịnh nghĩa ₫ịa ₫iểm tính toán, thí dụ filter, database, object, ADT ƒ các mối nối (Connector) : làm trung gian cho tương tác giữa các thành phần. gọi thủ tục, pipe, phát tán sự kiện. ƒ các thuộc tính : xác ₫ịnh thông tin cho việc phân tích và xây dựng : chữ ký, ₫iều kiện pre/post, ₫ặc tả RT. 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 3 3.1 Kiến trúc trong các hệ thống phần mềm Mẫu/Kiểu kiến trúc (Architecture Pattern/Style) ‰ Kiểu kiến trúc ₫ịnh nghĩa 1 họ các kiến trúc ₫ược giới hạn bởi : ƒ từ vựng thành phần/mối nối. ƒ các luật topology. ƒ các ràng buộc ngữ nghĩ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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 4
  2. 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúclô tuần tự (Batch Sequential) ‰ Đặctả : Chương trình gồm n phần mềm ₫ộc lập và ₫ược chạy theo cơ chế tuần tự : phần mềm i chạy trước, khi xong rồi thì truyền kết quả cho phần mềm thứ i+1 Mỗi phần mềm i trong lô ₫ược gọi là filter, nó xử lý dữ liệu ₫ầu vào theo ₫ịnh dạng xác ₫ịnh rồi tạo kết quả ₫ầu ra theo ₫ịnh dạng xác ₫ịnh. Filter Filter Filter Filter data 1 data 2 data 3 data 4 data 5 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 7 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc lô tuần tự (Batch Sequential) ‰ Tình huống nên dùng : trong các ứng dụng xử lý dữ liệumàdữ liệunhậpcần ₫ượcxử lý bởinhiều công ₫oạn khác nhau và có tính ₫ộc lập cao trướckhitạorakếtquả cuối cùng. ‰ Ưu ₫iểm : dễ dàng thay ₫ổi/bảo trì/dùng lại từng filter củahệ thống, phù hợpvớinhiềuhoạt ₫ộng nghiệpvụ, dễ dàng nâng cấp bằng cách thêm filter mới. ‰ Khuyết ₫iểm : 2 filter kề nhau cần tuân thủ ₫ịnh dạng dữ liệu chung. 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 8
  3. 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúc₫ường ống và lọc (Pipe and filter Architecture) ‰ Tình huống nên dùng : trong các ứng dụng xử lý dữ liệu mà dữ liệu nhập cần ₫ược xử lý bởi nhiều công ₫oạn khác nhau và có tính ₫ộc lập cao trước khi tạo ra kết quả cuối cùng. ‰ Ưu ₫iểm : dễ dàng thay ₫ổi/bảo trì/dùng lại từng filter của hệ thống, phù hợp với nhiều hoạt ₫ộng nghiệp vụ, dễ dàng nâng cấp bằng cách thêm filter mới, hiệu quả cao hơn kiến trúc lô tuần tự. ‰ Khuyết ₫iểm : 2 filter kề nhau cần tuân thủ ₫ịnh dạng dữ liệu chung. 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 11 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúc₫ường ống và lọc (Pipe and filter Architecture) ‰ Thí dụ : Chương trình dịch ngôn ngữ Phân tích Phân tích Tạo code Scanner Parser cú pháp ngữ nghĩa mục tiêu source code chuỗi token cây cú pháp cây cú pháp cây ngữ nghĩa object code thô hoàn chỉ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 3 : Các mẫu kiến trúc phổ dụng © 2015 Slide 12
  4. 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc nhiềucấp (Layered architecture) ‰ Thí dụ : Kiến trúc mạng OSI và kiến trúc mạng 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 15 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc client-server (client-server Architecture) ‰ Đặctả : Hệ thống gồm2 loạiphầntử chứcnăng : server cung cấp 1 số dịch vụ, client là phầntử sử dụng dịch vụ bằng cách truy xuất ₫ến server tương ứng. Client dùng Server 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 16
  5. 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúc3 ₫ối tác (3-tiers Architecture) ‰ Đặctả : Sự cải tiến của kiến trúc client-server. Hệ thống gồm3 loạiphầntử chứcnăng : client, server, và server của server. Client dùng Server dùng Server cho cho client server 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 19 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúc3 ₫ối tác (3-tiers Architecture) ‰ Tình huống nên dùng : khi database dùng chung từ nhiềuvị trí khác nhau hay khi tảihệ thống thay ₫ổi ₫ộng (nhân bảnserver thành nhiềuphầntử). ‰ Ưu ₫iểm : server có thể phân tán tự do trên mạng. ‰ Khuyết ₫iểm : ₫ộ hiệuquả phụ thuộcvàomạng và hệ thống nên khó lường trước. Nếu các server ₫ượcquảnlýbởicáctổ chức khác nhau thì có vấn ₫ề về quản lý chú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 20
  6. 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúcn ₫ối tác (n-tiers Architecture) ‰ Tình huống nên dùng : khi database dùng chung từ nhiềuvị trí khác nhau hay khi tảihệ thống thay ₫ổi ₫ộng (nhân bảnserver thành nhiềuphầntử). ‰ Ưu ₫iểm : server có thể phân tán tự do trên mạng. ‰ Khuyết ₫iểm : ₫ộ hiệuquả phụ thuộcvàomạng và hệ thống nên khó lường trước. Nếu các server ₫ượcquảnlýbởicáctổ chức khác nhau thì có vấn ₫ề về quản lý chú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 23 3.2 Các mẫu kiến trúc phổ dụng Kiếntrúcn ₫ối tác (n-tiers Architecture) ‰ Thí dụ : Hệ thống quản lý phim ảnh dùng mô hình n-tiers Client 1 Client 2 Client 3 Client n Internet Server tiếp nhận các request từ client và xử lý luận lý Internet DBMS ds DBMS DBMS DBMS thư viện Films Photo thông tin 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 24
  7. 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc MVC (Model-View-Controller) ‰ 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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