Kiến Trúc Phần Mềm – 10 Mẫu Kiến ​​Trúc Phần Mềm Phổ Biến Update 06/2024

Bạn đã bao giờ tự hỏi các hệ thống thông tin lớn được thiết kế như thế nào?Trước khi bắt đầu phát triển phần mềm, chúng ta phải chọn một kiến ​​trúc phù hợp nhằm đảm bảo phần mềm được phát triển chất lượng và đảm bảo tăng trưởng nghiệp vụ trong tương lai.Do đó, chúng ta nên hiểu các kiến ​​trúc khác nhau, trước khi áp dụng chúng vào thiết kế thực tế.

Đang xem: Kiến trúc phần mềm

*

Mô hình kiến ​​trúc là gì?

Theo Wikipedia,

Mẫu kiến ​​trúc là một giải pháp kiến ​​trúc phần mềm được sử dụng giải quyết một vấn đề nghiệp vụ trong một ngữ cảnh nhất định.Các mẫu kiến ​​trúc tương tự như mẫu thiết kế phần mềm nhưng có phạm vi rộng hơn.

Trong bài viết này, tôi sẽ giải thích ngắn gọn về 10 mẫu kiến ​​trúc phổ biến sau đây với cách sử dụng, ưu và nhược điểm của chúng.

Layered patternClient-server patternMaster-slave patternPipe-filter patternBroker patternPeer-to-peer patternEvent-bus patternModel-view-controller patternBlackboard patternInterpreter pattern1. Mẫu Layered

Mẫu này có thể được sử dụng để cấu trúc các chương trình có thể được phân tách thành các nhóm nhiệm vụ con, mỗi nhiệm vụ ở một mức trừu tượng cụ thể gọi là lớp.Mỗi lớp cung cấp các dịch vụ cho lớp cao hơn trên nó.

4 lớp thường thấy nhất của hệ thống thông tin chung như sau:

Presentation layer(còn được gọi làlớp giao diện người dùng)Application layer(còn được gọi làlớp service)Business logic layer(còn được gọi làlớp domain)Data access layer(còn được gọi làlớp lưu dữ liệu)

Note: Data access layer không gọi được dịch vụ của các lớp khác mà chỉ cung cấp dịch vụ cho các lớp trên nó.

Sử dụng

Các ứng dụng desktop.Ứng dụng web thương mại điện tử.

*

Mô hình lớp2. Mẫu Client-server

Mô hình này bao gồm hai thành phần:máy chủ(server)và nhiều khách(client).Thành phần server sẽ cung cấp dịch vụ cho nhiều client.Client yêu cầu dịch vụ từ serverserver lắng nghe yêu cầu và cung cấp các phản hồi dịch vụ các client.

Sử dụng

Các ứng dụng online như email, chia sẻ tài liệu và ngân hàng.Mẫu máy khách-máy chủ3. Mô hình Master-slave

Mô hình này bao gồm hai thành phần:master(chính)vàslave(phụ).Thành phần master phân phối nhiệm vụ cho các thành phần slave, tổng hợp kết quả trả lại từ các slave và đưa ra kết quả cuối cùng.

Sử dụng

Trong replication cơ sở dữ liệu, cơ sở dữ liệu master là nguồn dữ liệu chính, nó cung cấp dữ liệu cho các cơ sở dữ liệu slave đồng bộ với nó.Trong hệ thống máy tính, các thiết bị ngoại vi(ổ đĩa chủ và ổ phụ) thông qua bus kết nối với máy tính.

*

Mẫu master-slave4. Mẫu Pipe-filter

Mẫu này có thể được sử dụng để thiết kế cấu trúc xử lý trong các hệ thống sản xuất, xử lý stream data. Mỗi bước xử lý là một thành phần bộ lọc(filter) . Dữ liệu cần xử lý được đưa qua các đường ống(pipes) . Các đường ống thường được sử dụng trong đồng bộ dữ liệu, nó gắn liền với kỹ thuật sử dụng bước xử lý đệm hoặc cho các mục đích chuyển đổi dữ liệu(data transform).

Xem thêm: Cách Chơi Pudge Dota 2 – Học Chơi Dota: Hướng Dẫn Chơi Butcher (By Begar)

Sử dụng

Trình biên dịch.Các bộ lọc liên tiếp thực hiện phân tích từ vựng, phân tích cú pháp, phân tích ngữ nghĩa và tạo mã.Quy trình làm việc trong tin sinh học.

*

Mẫu bộ lọc ống5. Mô hình Broker

Mẫu này được sử dụng để cấu trúc hệ thống phân tán, nó tích hợp các thành phần rời rạc thành 1 hệ thống chung.Các thành phần này có thể tương tác với nhau bằng các lệnh gọi dịch vụ từ xa.Mộtthành phầnmôi giới(broker)chịu trách nhiệm điều phối giao tiếp giữa cácthành phần.

Các server cung cấp các khả năng của chúng (chức năng, dịch vụ và đặc điểm tương tác) cho một broker.Client yêu cầu dịch vụ từ broker và sau đó broker chuyển hướng yêu cầu đến một dịch vụ phù hợp(dịch vụ của server đã đăng ký với broker).

Sử dụng

Mô hình môi giới6. Mô hình Peer-to-peer

Trong mô hình này, các thành phần riêng lẻ được gọi làđồng đẳng.Cácứng dụng ngang hàngcó thể hoạt động như mộtmáy khách( yêu cầu dịch vụ từ các đồng nghiệp khác) và như mộtmáy chủ(cung cấp dịch vụ cho các đồng nghiệp khác).Một máy ngang hàng có thể hoạt động với cả 2 vai trò và đổi vai trò của mình theo thời gian.

Sử dụng

*

Mô hình ngang hàng7. Mẫu Event-bus

Mô hình này chủ yếu đề cập đến các sự kiện và có 4 thành phần chính:nguồn sự kiện(event source),đích nghe sự kiện(event listener),kênh(channel)vàluồng chuyển sự kiện(event bus).Các nguồn xuất bản tin nhắn đến các kênh cụ thể trên một luồng chuyển sự kiện.Đích nghe đăng ký các kênh cụ thể.Đích nghe được thông báo về các tin nhắn(đã được xuất bản lên kênh) mà họ đã đăng ký trước đó.

Sử dụng

Phát triển ứng dụng mobileDịch vụ thông báo trong điện thoại di độngMẫu event-bus8. Mẫu MVC Model-view-controller

Mẫu này, còn được gọi là mẫu MVC, chia một ứng dụng tương tác thành 3 phần,

model– chứa đựng mô hình dữ liệuview– hiển thị thông tin cho người dùng (nhiều hơn một chế độ xem có thể được xác định)controller– xử lý đầu vào từ người dùng

Điều này được thực hiện để tách các nghiệp vụ xử lý khỏi giao diện hiển thị cho người dùng.Nó tách sự phụ thuộc giữa các thành phần và tăng khả năng sử dụng lại mã hiệu quả.

Sử dụng

Kiến trúc cho các ứng dụng Web trong các ngôn ngữ lập trình hiện đại.Model-view-controller pattern9. Mẫu Blackboard

Mô hình này thường áp dụng cho các vấn đề mà không thể có chiến lược giải pháp được chuẩn bị trước.Mẫu bảng đen(Blackboard) bao gồm 3 thành phần chính:

blackboard– một cấu trúc không gian lưu trữ tập trung, chứa tất cả các đối tượng cần cho giải phápknowledge source– các thuật toán chuyên biệt control component– Lựa chọn, cấu hình và thực thi các mô-đun.

Tất cả các thành phần có quyền truy cập vào bảng đen.Các thành phần có thể tạo tùy ý ra các đối tượng dữ liệu mới, thêm vào bảng đen.Các thành phần tìm kiếm các loại dữ liệu cụ thể trên bảng đen ứng với mẫu khớp với nguồn tri thức hiện có.

Sử dụng

Nhận dạng giọng nóiNhận dạng và theo dõi phương tiệnXác định cấu trúc proteinGiải thích tín hiệu sonar.Mẫu bảng đen10. Mẫu Interpreter

Mẫu này được sử dụng để thiết kế một thành phần thông dịch các chương trình được viết bằng một ngôn ngữ chuyên dụng.Nó chủ yếu chỉ định cách đánh giá các dòng chương trình, được gọi là câu hoặc biểu thức được viết bằng một ngôn ngữ cụ thể.Ý tưởng cơ bản là có một lớp cho mỗi ký hiệu của ngôn ngữ.

Sử dụng

Dùng xây dựng các ngôn ngữ truy vấn cơ sở dữ liệu như SQL.Các ngôn ngữ dùng để mô tả các giao thức(protocols) giao tiếp.

Xem thêm: Cách Chơi Nhiều Nick Clash Of Clans Trên 1 Máy Cùng Lúc

*

Mẫu phiên dịchSo sánh các mẫu kiến ​​trúc

Bảng dưới đây tóm tắt những ưu và nhược điểm của từng mẫu kiến ​​trúc.