10 mô hình kiến ​​trúc phần mềm phổ biến

14/02/2023 admin
Bạn từng do dự những mạng lưới hệ thống doanh nghiệp lớn hoàn toàn có thể lan rộng ra được phong cách thiết kế như thế nào ? Trước khi mở màn tăng trưởng mạng lưới hệ thống quan trọng, tất cả chúng ta phải lựa chọn được kiến trúc tương thích mà hoàn toàn có thể phân phối cho tất cả chúng ta những nhu yếu tính năng và thuộc tính chất lượng mong ước. Do đó, tất cả chúng ta nên hiểu những kiến trúc khác nhau, trước khi vận dụng vào phong cách thiết kế của tất cả chúng ta .

Các mẫu kiến trúc là gì?

Theo Wikipedia

Mẫu kiến trúc là giải pháp chung, có thể tái sử dụng cho một vấn đề phổ biến xuất hiện trong kiến trúc phần mềm và đặt trong một ngữ cảnh cụ thể. 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 tài liệu này tôi sẽ giải thích tổng quan 10 mẫu kiến trúc phổ biến cùng với ngữ cảnh thường sử dụng, ưu và nhược điểm của tững mẫu

  1. Layered pattern
  2. Client-server pattern
  3. Master-slave pattern
  4. Pipe-filter pattern
  5. Broker pattern
  6. Peer-to-peer pattern
  7. Event-bus pattern
  8. Model-view-controller pattern
  9. Blackboard pattern
  10. Interpreter pattern

1. Layered pattern

Mẫu kiến trúc này hoàn toàn có thể được sử dụng trong những chương trình cấu trúc mà hoàn toàn có thể được phân tách thành những nhóm gồm nhiều việc làm nhỏ, mỗi nhóm ở những mức độ trừu tượng hóa đơn cử. Mỗi tầng phân phối những dịch vụ cho những tầng tiếp nối cao hơn .
Phổ biến nhất là mạng lưới hệ thống thông tin chung gồm 4 tầng như sau :

  • Tầng trình diễn – Presentation layer (còn được gọi là UI layer)
  • Tầng ứng dụng – Application layer (còn được gọi là service layer)
  • Tầng xử lý logic nghiệp vụ – Business logic layer (còn được gọi là domain layer)
  • Tầng truy suất dữ liệu – Data access layer (còn được gọi là persistence layer)

Sử dụng

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

2. Client-server pattern

Mẫu này gồm có 2 thành phần ; một server và nhiều clients. Thành phần server sẽ cung ứng những dịch vụ cho nhiều thành phần client. Các client gửi nhu yếu những dịch vụ lên servẻ và servẻ phân phối những dịch vụ tương ứng cho những client đó. Ngoài ra, server liên tục lắng nghe những nhu yếu từ client .

Sử dụng

  • Các ứng dụng online như email, chia sẻ document và banking.

3. Master-slave pattern

Mẫu này bao gồm 2 phần; master and slaves. Thành phần master phân phối công việc giữa các thành phần slave giống nhau và tính toán ra kết quả cuối cùng từ các kết quả mà các slave trả về.

Sử dụng

  • Trong việc nhân rộng database, cơ sở dữ liệu master được coi là nguồn dữ liệu tin cậy và các cơ sở dữ liệu slave được đồng bộ với nó.
  • Các thiết bị ngoại vi kết nối tới đường truyền bus của hệ thống máy tính (master and slave drives).

4. Pipe-filter pattern

Mẫu này hoàn toàn có thể được sử dụng trong những mạng lưới hệ thống cấu trúc mà gồm những thủ tục và giải quyết và xử lý 1 luồng tài liệu. Mỗi bước giải quyết và xử lý được khép kín bên trong 1 thành phần lọc ( filter ). Dữ liệu cần giải quyết và xử lý được truyền qua đường ống ( pipes ). Các đường ống này hoàn toàn có thể được sử dụng cho việc buffer hoặc cho mục tiêu đồng nhất hóa .

This pattern can be used to structure systems which produce and process a stream of data. Each processing step is enclosed within a filter component. Data to be processed is passed through pipes. These pipes can be used for buffering or for synchronization purposes.

Sử dụng

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

5. Broker pattern

Mẫu này được sử dụng trong các hệ thống phân tán cấu trúc với các thành phần được tách rời. Các thành phần này có thể tương tác với nhau thông qua các lời gọi dịch vụ từ xa (remote service invocation). Thành phần broker chịu trách nhiệm cho việc phối hợp giao tiếp giữa các thành phần.

Các server publish những năng lượng của nó ( những dịch vụ và những thuộc tính ) cho broker. Các client nhu yếu 1 dịch vụ từ broker và broker sẽ điều hướng client tới dịch vụ tương thích tương ứng từ bộ ĐK của nó .

Sử dụng

6. Peer-to-peer pattern

Trong mẫu này, những thành phần riêng không liên quan gì đến nhau còn được gọi là những peer. Các peer hoàn toàn có thể hoạt động giải trí giống như những client, nhu yếu những dịch vụ từ những peer khác, và cũng giống như 1 server, cung ứng những dịch vụ cho những peer khác. Một peer hoàn toàn có thể đóng vai là 1 client hoặc như một server hoặc đóng vai trò cả 2 và nó hoàn toàn có thể biến hóa vai trò linh động tùy theo thời gian .

Sử dụng

  • Các mạng chia sẻ file như Gnutella và G2
  • Các giao thức Multimedia như P2PTV và PDTP.

7. Event-bus pattern

Mẫu này tương thích chính cho những sự kiện và có 4 thành phần chính ; sự kiện source, sự kiện listener, channel và sự kiện bus. Các nguồn ( source ) phát hành message trên những kênh đơn cử ở trên sự kiện bus. Các bộ lắng nghe ( listener ) ĐK nghe trên những kênh đơn cử. Các bộ lắng nghe được notify có message mới được phát hành trên kênh mà nó đã ĐK trước đó .

Sử dụng

  • Phát triển Android
  • Dịch vụ Notification

8. Model-view-controller pattern

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

  1. model — chứa các chức năng và dữ liệu lõi
  2. view — hiển thị thông tin cho người dùng (có thể định nghĩa nhiều view)
  3. controller — xử lý dữ liệu đầu vào từ người dùng

Mẫu này giúp chia tách những tầng trình diễn thông tin nội bộ khỏi những thông tin được màn biểu diễn cho và đồng ý bởi người dùng. Nó phân tách sự phụ thuộc vào những thành phần và được cho phép tái sử dụng code hiệu suất cao hơn .

Sử dụng

  • Kiến trúc cho các ứng dụng World Wide Web trong hầu hết các ngôn ngữ lập trình chính.
  • Web frameworks giống như Django và Rails.

9. Blackboard pattern

Mẫu này phù hợp cho các vấn đề mà không có chiến lược giải pháp xác định đã biết. mẫu blackboard gồm 3 thành phần chính

  • blackboard — một bộ nhớ toàn cục có cấu trúc chứa các đối tượng từ không gian giải pháp.
  • knowledge source — các modules đặc biệt với biểu diễn riêng của nó
  • control component — lựa chọn, cấu hình và thực thi các module

Tất cả những thành phần có quyền truy vấn tới blackboard. Các thành phần hoàn toàn có thể tạo ra đối tượng người dùng tài liệu mới và được thêm vào blackboard. Các thành phần tìm kiếm những loại tài liệu đơn cử trên blackboard, và hoàn toàn có thể tìm chúng theo những mẫu tương thích với những nguồn kỹ năng và kiến thức đang sống sót .

Sử dụng

  • Nhận dạng giọng nói
  • Nhận dạng và tracking phương tiện giao thông
  • Nhận dạng cấu trúc Protein
  • Giải nghĩa tín hiệu Sonar.

10. Interpreter pattern

Mẫu này được sử dụng để phong cách thiết kế những thành phần mà thông dịch những chương trình được viết trong một ngôn từ chuyên sử dụng. Mục đích chính nó chỉ rõ cách nhìn nhận những dòng chương trình, được biết như những câu hoặc những công thức được viết trong ngôn từ đơn cử. Ý tưởng cơ bản là có 1 lớp cho từng ký hiệu ngôn từ .

Sử dụng

  • Ngôn ngữ truy vấn CSDL như SQL.
  • Các ngôn ngữ được sử dụng để mô tả các giao thức truyền thông.

So sánh các mẫu kiến trúc

Bảng dưới đây tổng hợp về ưu, điểm yếu kém của từng mẫu kiến trúc .

Alternate Text Gọi ngay