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 cung cấp cho người học các kiến thức: Kiến trúc trong các hệ thống phần mềm, các mẫu kiến trúc phổ dụng, kết chương. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương CÁC MẪU KIẾN TRÚC PHỔ DỤNG 3.1 Kiến trúc hệ thống phần mềm 3.2 Các mẫu kiến trúc phổ dụng 3.3 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 : Các mẫu kiến trúc phổ dụng Slide 3.1 Kiến trúc hệ thống phần mềm kiến trúc cấu trúc phần tử, không mà kiến trúc tốt : kết tập nguyên tắc kỹ thuật quán ₫ược áp dụng quán thông qua tất bước dự án phần mềm khơng nản lịng ₫ối diện với thay ₫ổi tránh ₫ược nguồn hướng dẫn xuyên suốt thời gian sống phần mềm bao gồm tính chất luật khóa ₫ể tổ hợp chúng cho toàn vẹn kiến trúc ₫ược giữ nguyên 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 : Các mẫu kiến trúc phổ dụng Slide 3.1 Kiến trúc hệ thống phần mềm Các phần tử ₫ặc tả kiến trúc Định nghĩa kiến trúc cho hệ thống chọn : thành phần : ₫ịnh nghĩa ₫ịa ₫iểm tính tốn, thí dụ filter, database, object, ADT mối nối (Connector) : làm trung gian cho tương tác thành phần gọi thủ tục, pipe, phát tán kiện thuộc tính : xác ₫ịnh thơng tin cho việc phân tích 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 Trường ĐH Bách Khoa Tp.HCM © 2015 Mơn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 3.1 Kiến trú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 họ kiến trúc ₫ược giới hạn : từ vựng thành phần/mối nối luật topology ràng buộc ngữ nghĩa 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 : Các mẫu kiến trúc phổ dụng Slide 3.1 Kiến trúc hệ thống phần mềm Các ₫ặc ngữ kiến trúc phổ biến Các hệ thống xử lý dịng liệu : lơ (Batch sequential), ₫ường ống lọc (Pipe and filters) Các hệ thống gọi-trả : chương trình thủ tục (main program & subroutines), cấp có thứ bậc (Hierarchical layers), hệ thống hướng ₫ối tượng (OO system) Các máy ảo : Trình thơng dịch (Interpreters), hệ thống dựa vào luật (Rule-based system) Các thành phần ₫ọc lập : process giao tiếp (Communicating processes), hệ thống xử lý kiện (Event systems) Các hệ thống tập trung quanh liệu (Repositories) : Database, Blackboard 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 : Các mẫu kiến trúc phổ dụng Slide 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc ₫ơn thể (Monolithic) Đặc tả : Hệ thống gồm module Module chứa thứ chương trình : giao tiếp thành phần cục hiệu thích hợp cho phần mềm nhỏ, ₫ơn giản không thích hợp cho phần mềm lớn phực tạ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 : Các mẫu kiến trúc phổ dụng Slide 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc lô (Batch Sequential) Đặc tả : Chương trình gồm n phần mềm ₫ộc lập ₫ược chạy theo chế : phần mềm i chạy trước, xong truyền kết cho phần mềm thứ i+1 Mỗi phần mềm i lơ ₫ược gọi filter, xử lý liệu ₫ầu vào theo ₫ịnh dạng xác ₫ịnh tạo kết ₫ầu theo ₫ịnh dạng xác ₫ịnh Filter data Filter data Filter data Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 data Filter data Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc lơ (Batch Sequential) Tình nên dùng : ứng dụng xử lý liệu mà liệu nhập cần ₫ược xử lý nhiều cơng ₫oạn khác có tính ₫ộc lập cao trước tạo kết cuối Ưu ₫iểm : dễ dàng thay ₫ổi/bảo trì/dùng lại filter hệ thống, phù hợp với nhiều hoạt ₫ộng nghiệp vụ, dễ dàng nâng cấp cách thêm filter Khuyết ₫iểm : filter kề cần tuân thủ ₫ịnh dạng liệu chung 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 : Các mẫu kiến trúc phổ dụng Slide 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc lô (Batch Sequential) Thí dụ : Thiết kế trực quan cửa sổ giao diện dùng phần mềm android Chương trình thiết kế trực quan Người thiết kế giao diện cửa sổ giao diện ứng dụng File XML ₫ặc tả thiết kế Project Android quản lý ứng dụng android Chương trình android dùng giao diện ₫ược thiết kế Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc ₫ường ống lọc (Pipe and filter Architecture) Đặc tả : Nới rộng kiến trúc lô lên tầm cao : Các filter không thiết phần mềm ₫ộc lập lẫn nhau, chúng thread chạy chương trình Có thể có nhiều ống ₫oạn xử lý data data data Filter Filter data Filter Filter data Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Filter data Filter data data Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 10 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc ₫ường ống lọc (Pipe and filter Architecture) Tình nên dùng : ứng dụng xử lý liệu mà liệu nhập cần ₫ược xử lý nhiều công ₫oạn khác có tính ₫ộc lập cao trước tạo kết cuối Ưu ₫iểm : dễ dàng thay ₫ổi/bảo trì/dùng lại filter hệ thống, phù hợp với nhiều hoạt ₫ộng nghiệp vụ, dễ dàng nâng cấp cách thêm filter mới, hiệu cao kiến trúc lô Khuyết ₫iểm : filter kề cần tuân thủ ₫ịnh dạng liệu chung Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 11 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc ₫ường ống lọc (Pipe and filter Architecture) Thí dụ : Chương trình dịch ngôn ngữ Scanner source code Parser chuỗi token Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Phân tích cú pháp cú pháp thơ Phân tích ngữ nghĩa cú pháp hồn chỉnh Tạo code mục tiêu ngữ nghĩa object code Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 12 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc nhiều cấp (Layered architecture) Đặc tả : Hệ thống gồm nhiều cấp chức dạng chồng lên nhau, layer có chức cụ thể, rõ ràng cung cấp dịch vụ cho layer Layer cấp thấp chứa dịch vụ ₫ược dùng cho toàn hệ thống Layer n Layer n-1 interface sử dụng layer Layer Layer 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 : Các mẫu kiến trúc phổ dụng Slide 13 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc nhiều cấp (Layered architecture) Tình nên dùng : xây dựng thêm khả hệ thống có sẵn, hay có nhiều nhóm phát triển khác nhau, nhóm chịu trách nhiệm layer chức cụ thể, hay có yêu cầu bảo mật nhiều cấp Ưu ₫iểm : cho phép hiệu chỉnh bên layer cho interface khơng ₫ổi Có thể giải chức ₫ó (xác nhận user) nhiều cấp theo cách thức tăng dần Khuyết ₫iểm : khó tách bạch chức cấp, layer khó tương tác với layer phía không liền kề Hiệu giảm sút nhiều layer phải tương tác ₫ể giải chứ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 : Các mẫu kiến trúc phổ dụng Slide 14 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc nhiều cấp (Layered architecture) Thí dụ : Kiến trúc mạng OSI kiến trúc mạng internet Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 15 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc client-server (client-server Architecture) Đặc tả : Hệ thống gồm loại phần tử chức : server cung cấp số dịch vụ, client phần tử sử dụng dịch vụ cách truy xuất ₫ến server tương ứng Client Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 dùng Server Mơn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 16 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc client-server (client-server Architecture) Tình nên dùng : database dùng chung từ nhiều vị trí khác hay tải hệ thống thay ₫ổi ₫ộng (nhân server thành nhiều phần tử) Ưu ₫iểm : server phân tán tự mạng Khuyết ₫iểm : ₫ộ hiệu phụ thuộc vào mạng hệ thống nên khó lường trước Nếu server ₫ược quản lý tổ chức khác có vấn ₫ề quản lý 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 : Các mẫu kiến trúc phổ dụng Slide 17 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc client-server (client-server Architecture) Thí dụ : Hệ thống quản lý phim ảnh dùng mơ hình client-server 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 : Các mẫu kiến trúc phổ dụng Slide 18 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc ₫ối tác (3-tiers Architecture) Đặc tả : Sự cải tiến kiến trúc client-server Hệ thống gồm loại phần tử chức : client, server, server server Client dùng Server cho client dùng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Server cho server Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 19 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc ₫ối tác (3-tiers Architecture) Tình nên dùng : database dùng chung từ nhiều vị trí khác hay tải hệ thống thay ₫ổi ₫ộng (nhân server thành nhiều phần tử) Ưu ₫iểm : server phân tán tự mạng Khuyết ₫iểm : ₫ộ hiệu phụ thuộc vào mạng hệ thống nên khó lường trước Nếu server ₫ược quản lý tổ chức khác có vấn ₫ề quản lý 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 : Các mẫu kiến trúc phổ dụng Slide 20 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc MVP (Model-View-Presenter) Tình nên dùng : Hệ thống có nhiều cách ₫ể view tương tác với liệu, ta chưa biết trước yêu cầu tương lai tương tác biểu diễn liệu chương trình Ưu ₫iểm : cho phép liệu thay ₫ổi ₫ộc lập với cách thức thể ngược lại Khuyết ₫iểm : cần nhiều code code phức tạp mơ hình liệu tương tác mức ₫ộ ₫ơn giản 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 : Các mẫu kiến trúc phổ dụng 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ến trúc MVC : 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 : Các mẫu kiến trúc phổ dụng Slide 32 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc kho (Repository Architecture) Đặc tả : Tất liệu hệ thống ₫ược quản lý kho chứa tập trung, thành phần chức hệ thống ₫ều truy xuất kho chứa Các thành phần không tương tác trực tiếp với nhau, thông qua kho chứa tập trung Component Component Component Component n Kho liệu (repository) 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 : Các mẫu kiến trúc phổ dụng Slide 33 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc kho (Repository Architecture) Tình nên dùng : hệ thống tạo chứa lượng lớn thông tin thời gian dài, hay hệ thống dựa vào liệu, ₫ó việc chứa thơng tin vào kho kích hoạt tool hay chức hoạt ₫ộng Ưu ₫iểm : thành phần ₫ộc lập nhau, khơng biết khác Khuyết ₫iểm : kho ₫iểm yếu nhất, có lỗi ảnh hưởng tồn thành phần chức Có vấn ₫ề truy xuất ₫ồng thời kho, phân tán kho nhiều máy khó khăn 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 : Các mẫu kiến trúc phổ dụng 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ồm nhiều thành phần dùng chung kho thông tin, tool tạo thông tin ₫ể kho ₫ể tool khác dùng Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 35 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 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 tả : Hệ thống phần mềm gồm tập ₫ối tượng ₫ộc lập ₫ược ghép nối lỏng lẻo Object Object gởi thông ₫iệp Object n Object 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 : Các mẫu kiến trúc phổ dụng 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 : nguyên tử cấu thành phần mềm, có 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 Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng 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 yếu 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 Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng 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 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 Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng 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 nên dùng : hệ thống phần mềm phức tạp Khuyết ₫iểm : mẫu kiến trúc có ₫ộ tổng quát cao nên thực ta phải tốn nhiều chi phí ₫ể vận 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 : Các mẫu kiến trúc phổ dụng Slide 40 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc thành phần (Components based Architecture) Đặc tả : Hệ thống phần mềm gồm tập thành phần ₫ộc lập ₫ược ghép nối lỏng lẻo Component Component Component n Component 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 : Các mẫu kiến trúc phổ dụng Slide 41 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc thành phần (Components based Architecture) Thành phần : nguyên tử cấu thành phần mềm, có 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 Trường ĐH Bách Khoa Tp.HCM © 2015 Mơn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 42 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc thành phần (Components based Architecture) Ưu ₫iểm kiến trú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 Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 43 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc thành phần (Components based Architecture) Tình nên dùng : hệ thống phần mềm phức tạp Khuyết ₫iểm : mẫu kiến trúc có ₫ộ tổng quát cao nên thực ta phải tốn nhiều chi phí ₫ể vận 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 : Các mẫu kiến trúc phổ dụng Slide 44 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) Đặc tả : Cho phép tạo phần mềm cách sử dụng dịch vụ sẵn có App Module Service Service Service Service n Internet 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 : Các mẫu kiến trúc phổ dụng 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 số chức ₫a dụng ₫ó thường ₫ã có sẵn Các ngun tắc yếu kiến trúc hướng dịch vụ : 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 Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng 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 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 Trường ĐH Bách Khoa Tp.HCM © 2015 Mơn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng 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 nên dùng : hệ thống phần mềm phức tạp mà muốn chạy Internet Khuyết ₫iểm : ₫ộ hiệu phụ thuộc vào sở hạ tầng mạng máy chạy service 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 : Các mẫu kiến trúc phổ dụng Slide 48 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc Chương trình thủ tục (Main Program/Subroutine Architecture) Đặc tả : Hệ thống phần mềm gồm chương trình tập thủ tục chức cần thiết dùng cách phân rã theo dạng phân cấp : dựa mối quan hệ ₫ịnh nghĩa-sử dụng có thread kiểm soát : ₫ược hỗ trợ trực tiếp ngơn ngữ lập trình ẩn chứa cấu trúc hệ thống : thủ tục có mối quan hệ mật thiết thường ₫ược gộp thành module lý phân cấp : ₫ộ ₫úng ₫ắn thủ tục phụ thuộc vào ₫úng ₫ắn thủ tục mà gọi Mơn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 49 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc Chương trình thủ tục (Main Program/ Subroutine Architecture) Main Program Sub Sub Sub n-1 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Sub Sub n Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 50 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc process liên lạc (Communication process Architecture) Đặc tả : Hệ thống phần mềm gồm tập process ₫ộc lập liên lạc lẫn cần Process Process Process n Process 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 : Các mẫu kiến trúc phổ dụng Slide 51 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc process liên lạc (Communication process Architecture) Process : nguyên tử cấu thành phần mềm, phần mềm chạy ₫ộc lập, process thực chức xác ₫ịnh Connector : phương tiện tương tác (truyền thông báo) process : ₫iểm tới ₫iểm ₫ồng hay bất ₫ồng RPC giao thức khác ₫ược ₫ặt cấp process 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 : Các mẫu kiến trúc phổ dụng Slide 52 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc dựa kiện (Event-based Architecture) Đặc tả : Hệ thống phần mềm gồm tập thành phần ₫ộc lập ₫ược ghép nối lỏng lẻo dựa việc tạo/xử lý kiện Component tạo kiện Component xử lý kiện Component Component n 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 : Các mẫu kiến trúc phổ dụng Slide 53 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc dựa kiện (Event-based Architecture) Emitter : phần tử tạo phát tán hay nhiều kiện Handler : phần tử muốn xử lý kiện, ₫ăng ký thủ tục xử lý kiện vào danh sách xử lý kiện tương ứng Khi kiện xảy ra, ₫ược kích hoạt chạy (bởi module quản lý kiện) Lưu ý thứ tự chạy thủ tục xử lý kiện cho kiện xác ₫ịnh không xác ₫ịnh Event chanel : phương tiện truyền dẫn kiện từ emitter tới handler Lưu ý phần tử hệ thống ₫ều event emitter lẫn event handler Có thể có dạng tương tác khác phần tử gọi thủ tục, truy xuất 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 : Các mẫu kiến trúc phổ dụng Slide 54 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc dựa kiện (Event-based Architecture) Tình nên dùng : hệ thống : tương tác bẩm sinh giao diện người dùng, mạng máy tính trả kết từ việc thi hành bất ₫ồng (thread) gia tăng khả việc dùng lại thành phần cải tiến hệ thống dễ dàng : thay ₫ổi thành phần thành phần khác Khuyết ₫iểm : ? Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 55 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 3.2 Các mẫu kiến trúc phổ dụng Kiến trúc bảng ₫en (Blackboard Architecture) Đặc tả : Hệ thống phần mềm gồm loại thành phần tương tác sau : Controller KB KB KB KB Blackboard 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 : Các mẫu kiến trúc phổ dụng 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 : vùng nhớ tồn cục có cấu trúc phần mềm, chứa ₫ối tượng toán cần giải quyết, ₫ược gọi nút, chúng ₫ược tổ chức dạng phân cấp Knowledge sources : module chức chuyên dụng có cách biểu diễn riêng biệt Mỗi KS ₫ược ₫ặc trưng tập ₫iều kiện kích hoạt xác ₫ịnh ₫oạn code xử lý liệu từ blackboard ₫óng góp kết vào q trình giải tốn Control : phần tử ₫iều khiển chung, cấu hình, chọn lựa thi hành KS Việc xác ₫ịnh KS dựa vào trạng thái trình giải toán (₫ược miêu tả blackboard) 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 : Các mẫu kiến trúc phổ dụng 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 nên dùng : hệ chun gia giải vấn ₫ề mà khơng có cách giải tất ₫ịnh tin tưởng ₫ược Khuyết ₫iểm : ? 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 : Các mẫu kiến trúc phổ dụng Slide 58 3.3 Kết chương Chương ₫ã giới thiệu 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 Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 59 ... 2015 Mơn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 3. 1 Kiến trú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 họ kiến trúc ₫ược... © 2015 Môn : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng 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ến trúc MVC : Khoa... : Kiến trúc phần mềm Chương : Các mẫu kiến trúc phổ dụng Slide 20 3. 2 Các mẫu kiến trúc phổ dụng Kiến trúc ₫ối tác ( 3- tiers Architecture) Thí dụ : Hệ thống quản lý phim ảnh dùng mơ hình 3- tiers