当前位置:首页>科技 >内容

13种软件体系结构举例 10种不同的软件体系结构模式

2024-03-06 21:28:47科技漂亮的斑马

有没有想过要设计多大规模的企业级系统?在主要的软件开发开始之前,我们必须选择一个合适的架构,它将为我们提供所需的功能和质量属性。因

13种软件体系结构举例 10种不同的软件体系结构模式

有没有想过要设计多大规模的企业级系统?在主要的软件开发开始之前,我们必须选择一个合适的架构,它将为我们提供所需的功能和质量属性。因此,在将它们应用于我们的设计之前,我们应该了解不同的架构。

什么是架构模式?

根据维基百科的定义:

架构模式是在给定的环境下,对软件架构中常见问题的通用和可重用的解决方案。架构模式类似于软件设计模式,但是它的范围更广。

在本文中,我们将简要解释以下10种常见的架构模式,以及它们的用法和优缺点。

分级模式

客户端-服务器模式

主从设备模式

管道过滤模式

代理模式

点对点模式

事件总线模式

模型-视图-控制器模式

黑板模式

解释器模式

一个。分级模式

这种模式也称为多层架构模式。它可以用来构造可以分解成子任务组的程序,每个子任务都处于特定的抽象层次。每一层都为下一层提供更高级别的服务。

下面列出的四层是一般信息系统中最常见的。

表示层(也称为UI层)

应用层(也称为服务层)

业务逻辑层(也称为领域层)

数据访问层(也称为持久层)

使用场景:

一般桌面应用程序

电子商务Web应用程序

两个。客户端-服务器模式

该模型由两部分组成:一个服务器和多个客户端。服务器组件将服务于多个客户端组件。客户端向服务器请求服务,服务器为这些客户端提供相关服务。此外,服务器持续监听客户端请求。

使用场景:

电子邮件、文件共享和银行业务等在线应用。

三个。主从设备模式

这个模型由两方组成;主设备和从设备。主设备组件在同一个从设备组件中分配工作,并计算最终结果,即从设备返回的结果。

使用场景:

在数据库复制中,主数据库被视为权威来源,应该与之同步。

计算机系统中连接到总线的外围设备(主驱动器和从驱动器)。

四个。管道过滤模式

这个模式可以用来构建一个生成和处理数据流的系统。每个处理步骤都封装在过滤器组件中。要处理的数据通过管道传递。这些管道可用于缓冲或同步。

使用场景:

编译器。连续过滤器执行词法分析、解析、语义分析和代码生成。

生物信息学的工作流程

五个。代理模式

该模式用于构建一个具有解耦组件的分布式系统。这些组件可以通过远程服务调用相互交互。代理组件负责组件之间的通信协调。

服务器将其功能(服务和特性)发布给代理。客户端向代理请求服务,然后代理将客户端重定向到其注册中心中适当的服务。

使用场景:

消息代理软件,如Apache ActiveMQ、Apache Kafka、RabbitMQ和JBoss Messaging。

六个。点对点模式

在这种模式下,单个组件被称为对等组件。一个对等点可以作为客户端,向其他对等点请求服务,也可以作为服务器向其他对等点提供服务。对等体可以充当客户端或服务器,或者两者兼而有之,并且它的角色可以随着时间的推移而动态变化。

使用场景:

像Gnutella和G2这样的文件共享网络。

多媒体协议,如P2PTV和PDTP。

Spotify等专有多媒体应用

七个。事件总线模式

该模式主要处理事件,包括四个主要组件:事件源、事件侦听器、通道和事件总线。消息源将消息发布到事件总线上的特定通道。听众订阅特定的频道。听众会收到消息通知,这些消息会发布到他们以前订阅的频道。

使用场景:

Android开发

通知服务

八个。模型-视图-控制器模式

这种模式也称为MVC模式,它将一个交互式应用程序分为三个部分。

模型:包含核心函数和数据。

视图:向用户显示信息(可以定义多个视图)。

控制器:处理用户输入的信息。

这样做是为了将信息的内部表示从信息的表示中分离出来,并接受用户的请求。它分离组件并允许有效的代码重用。

使用场景:

主流编程语言中的互联网应用架构

像Django和Rails这样的Web框架。

九个。黑板模式

该模型对于尚未确定解决策略的问题非常有用。黑板模式由三个主要组件组成。

黑板——包含来自解空间的对象的结构化全局存储器。

知识源——的专门模块及其自己的表示。

控制组件——选择、配置和执行模块。

所有组件都可以访问黑板。组件可以生成新的数据对象添加到黑板上。组件在黑板上查找特定类型的数据,并通过匹配现有知识源的模式来找到它们。

使用场景:

语音识别

车辆识别和跟踪

蛋白质结构鉴定

声纳信号的解释

同解释器模式

该模式用于设计一个组件,该组件解释用特殊语言编写的程序。它主要规定了如何评估程序中的行数,即用特定语言编写的句子或表达式。它的基本思想是对每种语言的符号进行分类。

使用场景:

数据库查询语言,如SQL

一种用来描述通信协议的语言。

建筑模式比较

下表总结了每种架构模式的优缺点。

声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们

Top