5 mô hình kiến trúc phần mềm phổ biến nhất bạn nên biết

16:09 02/10/2023

Kiến trúc phần mềm là tập hợp các cấu trúc cần thiết để lập trình lên hệ thống phần mềm, bao gồm các phần tử, mối quan hệ giữa chúng và các thuộc tính của chúng. Đồng thời, kiến trúc phần mềm là việc ứng dụng nền móng để xây dựng dự án phần mềm. Chúng ta cùng tìm hiểu 5 kiến trúc phần mềm phổ biến nhất trong bài viết này nhé! 

  1. Layered Architecture

Hình mẫu này chia tách các thành phần của một hệ thống thành nhiều layer (lớp) riêng biệt. Thường bao gồm: 

  • Presentation Layer: lớp hiển thị
  • Business Layer: lớp nghiệp vụ
  • Persistence Layer: cầu nối với lớp database
  • Database Layer: lớp cơ sở dữ liệu

Ví dụ, trong thiết kế giao diện (UI) chúng ta thường thấy mô hình Model-View-Presenter (MVP). Đó là một mô hình cụ thể của Layered Architecture. Mục đích chính của Layered Architecture là đề cao việc phân tách rõ ràng giữ các lớp, do đó việc thay đổi ở một lớp không ảnh hưởng tiêu cực tới các lớp khác.

Mô hình Model-View-Presenter (MVP) là một ví dụ cụ thể của Layered Architecture

2. Event-driven Architecture

Mô hình này thúc đẩy production (sản xuất) và consumption (tiêu thụ) của các sự kiện (event) giữa các kết nối lỏng lẻo các thành phần phần mềm và dịch vụ.


Mô hình Event-driven Architecture

Các component (thành phần) truyền đi event (sự kiện) khi một điều gì đáng chú ý xảy ra. Các thành phần khác, theo dõi những event cụ thể mà chúng quan tâm. Điều này hỗ trợ tốt cho kiến trúc tách rời. Một ví dụ cho mô hình này là Command Query Responsibility Segregation (CQRS).

Với CQRS, dữ liệu các lệnh ghi (command) được tách rời với các lệnh đọc (query). Và các thay đổi thường được trao đổi thông qua các event.

Ví dụ minh họa về omo hình Command Query Responsibility Segregation (CQRS)

3. Microkernel Architecture

Mô hình Microkernel Architecture

Kiến trúc này nhấn mạnh việc tách hệ thống chính thành các nhân siêu nhỏ mở rộng chức năng thông qua add-ons và plugins.

Minh họa việc tách hệ thống chính thành các hệ thống nhỏ mở rộng

Ví dụ, trong các hệ điều hành, microkernal có thể đảm nhiệm các nhiệm vụ quan trọng hoặc  trong Eclipse IDE. Nhân của nó kiểm soát kiến trúc plugin và các tính năng từ Java tools đến tích hợp Git được sử dụng như các plugin. Một khi các plugins, add-ons gặp vấn đề, thì hệ thống chính vẫn hoạt động bình thường.

4. Microservices Architecture

Phân rã một ứng dụng ra thành tập hợp các dịch vụ nhỏ và có liên kết thiết chặt chẽ. Mỗi dịch vụ sẽ đảm nhiệm một khả năng nghiệp vụ nào đó. Nó chứa data model riêng và giao tiếp thông qua APIs.

Mô hình Microservices Architecture

Ví dụ, Netflix sử dụng microservices để xử lý tất cả từ đề xuất phim đến thanh toán.

Ví dụ minh họa Microservices Architecture

Kiến trúc này đề cao việc module hóa các chức năng do đó các dịch vụ được phát triển, triển khai và scale một cách độc lập. Cho phép tăng tính linh hoạt nhưng chính vì vậy mà kiểu kiến trúc này có sự phức tạp trong việc quản lý các giao tiếp giữa các service cũng như bảo đảm sự ổn định.

5. Monolithic Architecture

Chúng ta sẽ thấy tất cả các thành phần của ứng dụng từ dữ liệu, nghiệp vụ cho đến giao diện người dùng được gói lại cùng nhau. Kiến trúc này giúp đơn giản hóa việc phát triển và triển khai, thường thấy trong các startup và các ứng dụng nhỏ.

Mô hình Monolithic Architecture

Trên đây là 5 mô hình kiến trúc phần mềm phổ biến. Kiến trúc phần mềm là một trong những kiến thức quan trọng trong ngành Kỹ thuật phần mềm hay Ứng dụng phần mềm nói chung để xây dựng một ứng dụng hoàn chỉnh. Phần này thường do các Kiến trúc sư phần mềm đảm nhiệm. Hy vọng kiến thức này bổ ích với bạn.

Bộ môn Ứng dụng phần mềm
Trường Cao đẳng FPT Mạng cá cược bóng đá cơ sở Đà Nẵng

Cùng chuyên mục

Đăng Kí học Fpoly 2023