2/28/2019 NỘI DUNG Click to edit Master subtitle style Software Architecture (Kiến trúc phần mềm) Client-Server Architecture 3-Tier / Multi-Tier Architectures MVC (Model-View-Controller) Thiết kế kiến trúc Tổng quan TỔNG QUAN 2/28/2019 Kiến trúc phần mềm Kiến trúc phần mềm Kiến trúc phần mềm Kiến trúc phần mềm – Software architecture thiết kế kĩ thuật giúp giải thích cách thức phần mềm xây dựng Kiến trúc phần mềm Kiến trúc hệ thống mô tả: Cách thức hệ thống phân tách thành hệ thống (modules) Trách nhiệm module Giao tiếp module Platforms kĩ thuật dùng Mỗi module thực mơ hình/mẫu kiến trúc Kiến trúc phần mềm CLIENT - SERVER 2/28/2019 Client - Server Client - Server Thường bao gồm: Server: máy/ứng dụng cung cấp dịch vụ (services) cho nhiều clients IIS based Web server WCF based service Các dịch vụ tảng cloud Clients: phần mềm ứng dụng cung cấp UI để truy xuất service server WPF, HTML5, Silverlight, ASP.NET, 10 Client - Server Client - Server Ví dụ: Web server (IIS) – Web browser (Firefox) FTP server (ftpd) – FTP client (FileZilla) EMail server (qmail) – email client (Outlook) SQL Server – SQL Server Management Studio BitTorrent Tracker – Torrent client (μTorrent) Ví dụ: DNS server (bind) – DNS client (resolver) DHCP server (wireless router firmware) – DHCP client (mobile phone /Android DHCP client/) SMB server (Windows) – SMB client (Windows) 11 12 2/28/2019 3-Tier/Multi-Tier Architectures Mơ hình phân lớp truyền thống: 3-TIER / MULTI-TIER ARCHITECTURES 13 14 3-Tier Data Tier (Back-End) 3-Tier Middle Tier (Business Tier) Client Tier (Front-End) Client Machine Mobile Client Database Business Logic Desktop Client 15 16 2/28/2019 1-tier, 3-layer 2-tier, 3-layer 17 18 Middle Tier 3-tier, 3-layer Middle tier thường chứa logic liên quan đến front-end, business logic back-end Presentation Logic Implements the UI of the application (HTML5, Silverlight, WPF, …) Business Logic Implements the core processes / services of the application Data Access Logic Implements the data access functionality (usually ORM framework) 19 20 2/28/2019 MVC Mơ hình MVC: MVC ARCHITECTURES 21 22 MVC MVC Tổng quan: Phân tách business logic khỏi liệu ứng dụng (application data) giao diện Model View Biểu thị liệu đến người dùng (UI) Controller 23 Lưu giữ trạng thái ứng dụng (data) Xử lý tương tác với người dùng 24 2/28/2019 MVC MVC Model: Mơ hình hóa liệu hành vi sau business process Quản lý thông tin – có thay đổi Lưu trữ liệu hàm chức Ánh xạ thực thể giới thực Thực truy vấn CSDL Bao đóng domain logic độc lập với presentation View: Lấy liệu từ model hiển thị cho user Đại diện cho Input/Ouputs chương trình Thể kết tính tốn cho logic nghiệp vụ Tự truy xuất Model Đọc liệu từ Model – Sử dụng phương thức truy vấn 25 26 MVC Mối liên hệ thành phần Controller: Đóng vai trị lớp kết nối luận lý hành vi người dùng qui trình nghiệp vụ Nhận chuyển đổi input thành request tới model / view Nhận Input từ phía user xây dựng model view để thực hành động tương ứng Lựa chọn nhiều cách hiển thị khác View Controller: Controller đóng vai trị tạo chọn lựa View Model Controller: Controller phụ thuộc vào Model, có u cầu thay đổi Model nhiều khả có yêu cầu thay đổi song song Controller Model and View: View phụ thuộc vào Model, có u cầu thay đổi Model nhiều khả có yêu cầu thay đổi song song View 27 28 2/28/2019 MVC Một số framework bản: NET ASP.NET MVC, MonoRail Java JavaServer Faces (JSF), Struts, Spring Web MVC, Tapestry, JBoss Seam, Swing PHP CakePHP, Symfony, Zend, Joomla, Yii, Mojavi 29