Các Kiến trúc Ứng dụng: Component-based và Service-oriented
Bài viết này sẽ giới thiệu về các kiến trúc ứng dụng phổ biến, tập trung vào kiến trúc component-based và service-oriented. Chúng ta sẽ tìm hiểu về khái niệm component và service, cũng như đặc điểm của hệ thống phân tán.
Component
Component là một đơn vị chức năng độc lập, đóng vai trò như một phần của ứng dụng.
Đặc điểm của component:
- Reusable: Có thể tái sử dụng trong các ứng dụng khác nhau.
- Replaceable: Có thể dễ dàng thay thế bằng component khác.
- Independent: Không phụ thuộc vào các component khác.
- Extensible: Có thể mở rộng chức năng mà không ảnh hưởng đến các component khác.
- Encapsulated: Dữ liệu và phương thức được đóng gói, che giấu trạng thái nội bộ.
- Non-context specific: Hoạt động trong các môi trường khác nhau.
Ví dụ về component:
- API kết nối hệ thống với cơ sở dữ liệu.
- Giao diện truy cập cơ sở dữ liệu (Data Access Object).
- Controller điều khiển luồng dữ liệu giữa các component.
Kiến trúc Component-based
Kiến trúc Component-based tập trung vào việc phân rã hệ thống thành các component logic độc lập, liên kết lỏng lẻo.
Service
Service cũng là một đơn vị chức năng, nhưng được thiết kế để triển khai độc lập và có thể tái sử dụng bởi nhiều hệ thống.
Khác biệt giữa component và service:
- Service chỉ có một instance duy nhất, luôn chạy.
- Service tập trung vào giải pháp cho nhu cầu nghiệp vụ.
Ví dụ về service:
- Kiểm tra tín dụng khách hàng.
- Tính toán khoản vay hàng tháng.
- Xử lý đơn xin vay thế chấp.
Kiến trúc Service-oriented (SOA)
Trong SOA, các service liên kết lỏng lẻo và giao tiếp với nhau thông qua giao thức truyền thông trên mạng.
Hệ thống phân tán (Distributed System)
Hệ thống phân tán là hệ thống có nhiều service nằm trên các máy khác nhau, phối hợp hoạt động bằng cách trao đổi thông điệp qua giao thức truyền thông (ví dụ: HTTP).
Đặc điểm của hệ thống phân tán:
- Chia sẻ tài nguyên (phần cứng, phần mềm, dữ liệu).
- Chịu lỗi (fault-tolerant).
- Cho phép nhiều hoạt động chạy đồng thời.
- Khả năng mở rộng (scalable).
- Linh hoạt về phần cứng và hệ điều hành.
Kiến trúc hệ thống phân tán:
- Client-server
- Three-tier
- Peer-to-peer
- Microservices
Kiến trúc component-based và service-oriented là hai kiến trúc ứng dụng phổ biến, giúp xây dựng các hệ thống linh hoạt, dễ bảo trì và mở rộng. Hệ thống phân tán đang ngày càng trở nên quan trọng trong kỷ nguyên điện toán đám mây.