Bài giảng Nhập môn công nghệ phần mềm - Chủ đề 4: Thiết kế phần mềm phần tiếp theo cung cấp cho người học các kiến thức về cấu trúc phần mềm, bao gồm: Khái niệm, các mô hình kiến trúc, công nghệ phân tán. Mời các bạn cùng tham khảo.
Chủ đề 4: Thiết kế Phần mềm (tt) COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Kiến trúc phần mềm Heavily reference to Introduction SE Slides: Nguyen Minh Huy, HCMUS Ivan Sommerville, Software Engneering, Chapter 11 COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Nội dung • Khái niệm kiến trúc • Các mơ hình kiến trúc • Cơng nghệ phân tán COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Khái niệm kiến trúc • Kiến trúc phần mềm gì? – Phần mềm khơng đơn Có thành phần bên – Thắc mắc thành phần con: • Được tổ chức, xếp nào? • Mối liên hệ chúng? • Có cấu trúc sao? Kiến trúc phần mềm COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Kiến trúc phần mềm • Là cấu trúc hệ thống tạo nên bởi: – Các thành phần – Các thuộc tính thành phần thấy từ bên – Mối quan hệ thành phần COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Khái niệm kiến trúc (tt) • Tầm quan trọng kiến trúc: – Ảnh hưởng hiệu hoạt động: • • • • Tính Tính Tính Tính tốc độ (performance) thích ứng (scalability) bảo mật (security) chịu lỗi (fault—tolerance) – Ảnh hưởng chi phí: • Khả triển khai • Khả vận hành • Khả bảo trì – Ảnh hưởng thiết kế cài đặt COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Khái niệm kiến trúc (tt) • Thiết kế kiến trúc: – Hoạt động pha thiết kế – Xác định khung sườn phần mềm – Các bước thực hiện: • Phân rã hệ thống (sub-system) • Bố trí thành phần • Thiết lập mối quan hệ COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Khái niệm kiến trúc (tt) • Thiết kế kiến trúc: – Hoạt động pha thiết kế – Xác định khung sườn phần mềm – Các bước thực hiện: • Phân rã hệ thống (sub-system) • Bố trí thành phần • Thiết lập mối quan hệ COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Các mơ hình kiến trúc • Phân loại mơ hình: – Mơ hình đơn lập – Mơ hình phân tán • Mơ hình Client – Server • Mơ hình tầng • Mơ hình Peer-To-Peer COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Mơ hình đơn lập • • • • Là thể thống Khơng có phân nhóm Các thành phần tự tương tác Ưu điểm: – Dễ lập trình triển khai – Tốc độ xử lý • Khuyết điểm: – Khó bảo trì, nâng cấp – Khơng chia liệu COMP1026 – Introduction to Software Engneering CH4 – Part - 10 HIENLTH Mơ hình Client – Server • Phân làm phân hệ: – Server: • Cung cấp dịch vụ (dữ liệu, thư viện) • Chia sẽ, dung chung – Client: • Sử dụng dịch vụ (giao diện, thư viện) • Phân tán • Tương tác thành phần: – Trong phân hệ: tự tương tác – Giữa hai phân hệ: tương tác chiều từ client đến server COMP1026 – Introduction to Software Engneering CH4 – Part - 11 HIENLTH Mơ hình Client – Server (tt) • Mơ hình Thin-Client: – Server đảm trách liệu + xử lý – Client lo phần giao diện người dùng dump terminal • Mơ hình Fat-Client: – Server đảm trách liệu – Client lo toàn giao diện + xử lý người dùng COMP1026 – Introduction to Software Engneering CH4 – Part - 12 HIENLTH Mơ hình Client – Server (tt) • Ưu điểm: – Dữ liệu chia đồng – Hạn chế tương tác Cơ lập lỗi Dễ bảo trì, nâng cấp • Khuyết điểm: – Chi phí triển khai – Tốc độ xử lý COMP1026 – Introduction to Software Engneering CH4 – Part - 13 HIENLTH Mơ hình tầng (3-tier) • Phân làm phân hệ: – Tầng liệu (data layer) • Dịch vụ liệu • Data center – Tầng xử lý (business layer) • Thư viện xử lý • Application server – Tầng giao diện (presentation layer) • Giao diện người dung • Thin-Client • Quy tắc tương tác thang máy không tương tác vượt tầng COMP1026 – Introduction to Software Engneering CH4 – Part - 14 HIENLTH Mơ hình tầng (3-tier) (tt) • Mơ hình đa tầng: – Mở rộng mơ hình tầng – Phần làm nhiều tầng xử lý – Thường dùng ứng dụng web • Ưu điểm: – Tương tự mơ hình client-server – Xử lý chia sẻ chia nhỏ • Khuyết điểm: – Tương tự mơ hình client-server COMP1026 – Introduction to Software Engneering CH4 – Part - 18 HIENLTH Mơ hình Peer-to-Peer • Là mơ hình đơn lập phân tán • Triển khai nhiều máy (node) – Các node tương tác với – Mỗi node đóng vai trò client-server – Chia liệu + xử lý tồn node • Ưu điểm: – Khơng cần server trung tâm – Không gian lưu trữ khả xử lý dàn trải – Dễ triển khai • Nhược điểm: – Khó lập trình quản lý liệu COMP1026 – Introduction to Software Engneering CH4 – Part - 25 HIENLTH Cơng nghệ phân tán • Middleware • Web Service COMP1026 – Introduction to Software Engneering CH4 – Part - 26 HIENLTH Middleware • Các thành phần hệ phân tán giao tiếp nào? hệ thống đứng điều phối • Các chuẩn phổ biến: – CORBA (Common Object Request Broker Architecture) – COM (Component Object Model) – JavaBeans COMP1026 – Introduction to Software Engneering CH4 – Part - 27 HIENLTH Web Service • • • • Thư viện lập trình dựng sẵn Cung cấp dạng dịch vụ Truy xuất qua internet Các dịch vụ phổ biến: – Math services – Google map – Amazon service • Các chuẩn giao tiếp XML: – SOAP (Simple Object Access Protocol) – WSDL (Web Services Description Language) – UDDI (Universal Description Discovery and Integration) COMP1026 – Introduction to Software Engneering CH4 – Part - 28 HIENLTH Bài tập Thiết kế kiến trúc cho đồ án mơn học: • Phân rã hệ thống DS thành phần • Bố trí thành phần lựa chọn mơ hình kiến trúc sắp xếp thành phần vào mơ hình • Thiết lập mối quan hệ COMP1026 – Introduction to Software Engneering CH4 – Part - 29 HIENLTH Câu hỏi thảo luận COMP1026 – Introduction to Software Engneering CH4 – Part - 30 HIENLTH ... Cơng nghệ phân tán COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Khái niệm kiến trúc • Kiến trúc phần mềm gì? – Phần mềm khơng đơn Có thành phần bên – Thắc mắc thành phần. .. Kiến trúc phần mềm COMP1026 – Introduction to Software Engneering CH4 – Part - HIENLTH Kiến trúc phần mềm • Là cấu trúc hệ thống tạo nên bởi: – Các thành phần – Các thuộc tính thành phần thấy... người dung • Thin-Client • Quy tắc tương tác thang máy không tương tác vượt tầng COMP1026 – Introduction to Software Engneering CH4 – Part - 14 HIENLTH Mơ hình tầng (3-tier) (tt) • Mơ hình đa