Phần mềm

Thiết Kế Kiến Trúc Hệ Thống Phần Mềm, 10 Mẫu Kiến ​​Trúc Phần Mềm Phổ Biến

Bạn từng băn khoăn các hệ thống doanh nghiệp lớn có thể mở rộng được thiết kế như thế nào? Trước khi bắt đầu phát triển hệ thống quan trọng, chúng ta phải lựa chọn được kiến trúc phù hợp mà có thể đáp ứng cho chúng ta các yêu cầu chức năng và thuộc tính chất lượng mong muốn. Do đó, chúng ta nên hiểu các kiến trúc khác nhau, trước khi áp dụng vào thiết kế của chúng ta.

Đang xem: Thiết kế kiến trúc hệ thống phần mềm

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

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

Mẫu kiến trúc này có thể được sử dụng trong các chương trình cấu trúc mà có thể được phân tách thành các nhóm gồm nhiều công việc nhỏ, mỗi nhóm ở các mức độ trừu tượng hóa cụ thể. Mỗi tầng cung cấp các dịch vụ cho các tầng kế tiếp cao hơn.

Phổ biến nhất là 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 bao gồm 2 thành phần; một server và nhiều clients. Thành phần server sẽ cung cấp các dịch vụ cho nhiều thành phần client. Các client gửi yêu cầu các dịch vụ lên servẻ và servẻ cung cấp các dịch vụ tương ứng cho các client đó. Ngoài ra, server tiếp tục lắng nghe các yêu cầ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;masterandslaves. 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 có thể được sử dụng trong các hệ thống cấu trúc mà gồm các thủ tục và xử lý 1 luồng dữ liệu. Mỗi bước 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ý được truyền qua đường ống (pipes). Các đường ống này có thể được sử dụng cho việc buffer hoặc cho mục đích đồng bộ hóa.

This pattern can be used to structure systems which produce and process a stream of data. Each processing step is enclosed within afiltercomponent. Data to be processed is passed throughpipes. 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.

Xem thêm: cnc inox

Các server publish các năng lực của nó (các dịch vụ và các thuộc tính) cho broker. Các client yêu cầu 1 dịch vụ từ broker và broker sẽ điều hướng client tới dịch vụ phù hợp tương ứng từ bộ đăng ký của nó.

Sử dụng

*

6. Peer-to-peer pattern

Trong mẫu này, các thành phần riêng lẻ còn được gọi là các peer. Các peer có thể hoạt động giống như các client, yêu cầu các dịch vụ từ các peer khác, và cũng giống như 1 server, cung cấp các dịch vụ cho các peer khác. Một peer có thể đóng vai là 1 client hoặc như một server hoặc đóng vai trò cả 2 và nó có thể thay đổi vai trò linh động tùy theo thời điểm.

Sử dụng

*

7. Event-bus pattern

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

Sử dụng

Phát triển AndroidDị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

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

Mẫu này giúp chia tách các tầng trình diễn thông tin nội bộ khỏi các thông tin được biểu diễn cho và chấp nhận bởi người dùng. Nó phân tách sự phụ thuộc các thành phần và cho phép tái sử dụng code hiệu quả 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.

*

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ả các thành phần có quyền truy cập tới blackboard. Các thành phần có thể tạo ra đối tượng dữ liệu mới và được thêm vào blackboard. Các thành phần tìm kiếm các loại dữ liệu cụ thể trên blackboard, và có thể tìm chúng theo các mẫu phù hợp với những nguồn kiến thức đang tồn tại.

Sử dụng

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

*

10. Interpreter pattern

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

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.

Xem thêm: “Chi Phí Cài Đặt Tiếng Anh Là Gì ? Cài Đặt In English

*

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

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

Xem thêm bài viết thuộc chuyên mục: Phần mềm

Trả lời

Back to top button