– Các thuộc tính của từng thành phần có thể thấy từ bên ngoài.. – Mối quan hệ giữa các thành phần.[r]
(1)COMP1026 – Introduction to Software Engneering CH4 – Part - 1 HIENLTH
(2)Kiến trúc phần mềm
Ivan Sommerville, Software Engneering, Chapter 11
(3)COMP1026 – Introduction to Software Engneering CH4 – Part - 3 HIENLTH
Nội dung
• Khái niệm kiến trúc
(4)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?
(5)COMP1026 – Introduction to Software Engneering CH4 – Part - 5 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 ngồi
(6)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ốc độ (performance) • Tính thích ứng (scalability) • Tính bảo mật (security)
• Tính chịu lỗi (fault—tolerance)
– Ảnh hưởng chi phí:
• Khả triển khai • Khả vận hành • Khả bảo trì
(7)COMP1026 – Introduction to Software Engneering CH4 – Part - 7 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
(8)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
(9)COMP1026 – Introduction to Software Engneering CH4 – Part - 9 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
(10)Mơ hình đơn lập
• Là thể thống nhất
• 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:
(11)COMP1026 – Introduction to Software Engneering CH4 – Part - 11 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
(12)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
(13)COMP1026 – Introduction to Software Engneering CH4 – Part - 13 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:
(14)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
(15)COMP1026 – Introduction to Software Engneering CH4 – Part - 18 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:
(16)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:
(17)COMP1026 – Introduction to Software Engneering CH4 – Part - 26 HIENLTH
Công nghệ phân tán
(18)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)
(19)COMP1026 – Introduction to Software Engneering CH4 – Part - 28 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)
(20)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
(21)COMP1026 – Introduction to Software Engneering CH4 – Part - 30 HIENLTH