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

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

Bạn từng chần chừ những mạng lưới mạng lưới hệ thống doanh nghiệp lớn trọn vẹn hoàn toàn có thể lan rộng ra được phong thái phong cách thiết kế như thế nào ? Trước khi mở màn tăng trưởng mạng lưới mạng lưới hệ thống quan trọng, tổng thể tất cả chúng ta phải lựa chọn được kiến trúc thích hợp mà trọn vẹn hoàn toàn có thể đáp ứng cho toàn bộ tất cả chúng ta những nhu yếu tác dụng và thuộc tính chất lượng mong ước. Do đó, toàn bộ 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 thái phong cách thiết kế của tổng thể tất cả chúng ta .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

Bạn đang đọc : 10 mô hình kiến ​ ​ trúc phần mềm phổ cập

  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 cung ứng những dịch vụ cho những tầng sau đó 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ẽ phân phối 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ẻ đáp ứng 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 trọn vẹn hoàn toàn có thể được sử dụng trong những mạng lưới mạng lưới hệ thống cấu trúc mà gồm những thủ tục và xử lý và giải quyết và xử lý 1 luồng tài liệu. Mỗi bước xử lý và 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 xử lý và giải quyết và xử lý được truyền qua đường ống ( pipes ). Các đường ống này trọn vẹn hoàn toàn có thể được sử dụng cho việc buffer hoặc cho tiềm năng đồ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 những mạng lưới hệ thống phân tán cấu trúc với những thành phần được tách rời. Các thành phần này hoàn toàn có thể tương tác với nhau trải qua những lời gọi dịch vụ từ xa ( remote service invocation ). Thành phần broker chịu nghĩa vụ và trách nhiệm cho việc phối hợp tiếp xúc giữa những thành phần .

Xem thêm: TOP 10 MÁY TÍNH LAPTOP CẤU HÌNH CAO NHẤT DÀNH CHO GAME THỦ 2021

Các server publish những nguồn 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ụ thích hợp 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 tương quan gì đến nhau còn được gọi là những peer. Các peer trọn vẹn hoàn toàn có thể hoạt động giải trí vui chơi 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, đáp ứng những dịch vụ cho những peer khác. Một peer trọn vẹn 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ó trọn vẹn hoàn toàn có thể biến hóa vai trò linh động tùy theo thời hạn .

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 thích hợp 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 trình diễn cho và đồng ý chấp thuận bởi người dùng. Nó phân tách sự phụ thuộc vào vào những thành phần và được đượ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 tương thích cho những yếu tố mà không có kế hoạch giải pháp xác lập đã 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 trọn vẹn hoàn toàn có thể tạo ra đối tượng người dùng người tiêu 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à trọn vẹn hoàn toàn có thể tìm chúng theo những mẫu thích hợp với những nguồn kỹ năng và kiến thức và kiến thức và kỹ năng đ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 thái 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 .

Source: https://bacxiunong.com
Category: Blog

Related Posts

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *