首页>>科技 >>内容

架构有几种,10种常见的架构模式

发布时间:2023-10-10 13:33:35编辑:温柔的背包来源:

很多朋友对架构有几种,10种常见的架构模式不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

架构有几种,10种常见的架构模式

想知道如何设计大型企业级系统?在开始主代码开发之前,我们必须选择一个合适的架构,它将为我们提供所需的功能和质量属性。因此,在将它们应用于我们的设计之前,我们应该首先了解不同的架构。-什么是建筑模式?-根据维基百科,

架构模式是一种通用的、可重用的解决方案,用于解决给定环境下软件架构中的常见问题。架构模式类似于软件设计模式,但是范围更广。在本文中,我将简要介绍以下10种常见的架构模式,以及它们的用途和优缺点。-分层模式-该模式可用于构建可分解为子任务组的程序,每个子任务组都处于特定的抽象级别。每次都提供更高水平的服务。一般信息系统中最常见的四层划分如下:

表示层表示层(即UI层)应用层(即服务层)业务逻辑层业务逻辑层(即领域层)数据访问层数据访问层(即数据持久层)通用桌面应用的应用电子商务Web应用-客户端-服务器模式-

该模型由两部分组成:一个服务器和多个客户端,服务器为多个客户端提供服务。客户端向服务器发出请求,服务器向这些客户端提供相关服务。之后,服务器继续监听客户端的请求。应用在线应用程序,如电子邮件、文件共享和银行-主从模式-该模式也分为两部分:主模块和从模块。主模块在相同的从模块之间分配工作,并根据从模块返回的结构计算最终结果。

在数据库复制中,主数据库被视为权威数据源,而从数据库被同步连接到计算机系统总线上的外围设备(主驱动程序和从驱动程序)——管道过滤模式——这种模式可用于构建生成和处理数据流的系统。每个处理步骤都包含在一个过滤器组件中,要处理的数据通过管道传递。这些管道可用于缓冲或同步。

应用程序编译器。依次使用不同的过滤器进行词法分析、解析、语法分析和代码生成——生物信息学中的工作流——Broker模式——这种模式是建立一个组件解耦的分布式系统,可以通过远程服务调用进行交互。代理组件负责协调组件之间的通信。服务器发布它们的功能(服务和特性等。)到代理,客户端从代理请求服务,然后代理根据它们的注册表将客户端请求转发到适当的服务。

应用消息代理软件,如Apache ActiveMQ、Apache Kafka、Rabbit MQ和JBoss Messaging。- P2P模式-在这种模式下,每个独立的组件称为一个对等体。一个对等点既可以充当客户端(向其他对等点请求服务),也可以充当服务器(向其他对等点提供服务)。同一个对等体可以既是客户机又是服务器,并且它的角色可以动态改变。应用文件共享网络,比如Gnutella和G2。

多媒体协议,如基于加密货币的P2PTV和PDTP产品,如比特币和区块链-交易总线模式,主要处理组件,有四个重要组件:事件源、事件侦听器、通道和事件总线。事件源将消息发送到事件总线上的特定通道,侦听器订阅特定通道。当消息被发送到通道时,订阅该通道的收听者将被通知该消息。使用Android-MVC模式开发通知服务-

该模型将交互式应用程序分为三个部分。模型——包含向用户显示信息的核心功能和数据视图——(可以定义多个视图)。控制器——处理用户的输入。这样做是为了将数据的内部表示从用户输入和显示的形式中分离出来,以便组件可以解耦,代码可以有效地重用。互联网应用架构使用主流编程语言的网络框架,如Django和Rails。-黑板模式-

这种模式对于没有明确解决方案的问题非常有用。黑板模式由三部分组成:黑板——,一个结构化的全局内存,专业的模块控制组件——,有自己的含义。所有组件都可以访问黑板,并且组件可以生成要添加到黑板的新数据对象。这些组件可以在黑板上找到特定类型的数据,并且可以通过与现有知识源进行模式匹配来找到这些数据。

应用语音识别车辆识别和跟踪蛋白质结构识别声纳信号解释-解释器模式-该模式通常用于设计组件来解释用特殊语言编写的程序,它主要规定如何估计程序行,即用特殊语言编写的语句或表达式。基本思想是为每个语言符号设计一个类。应用数据库查询语言,如SQL,用于描述语言-架构模式比较-模式优缺点分层模式的通信协议。

一个低级服务可以被不同的高级服务使用;分层结果更容易标准化,因为可以明确定义每个层次内的修改不会影响其他层不通用的架构;在某些场景中,通过跳过一些层次化的CS模式,很容易对一系列服务进行建模,客户端的请求通常在服务器的不同线程中得到响应。因为不同的客户端有不同的形式,进程间的通信会造成主从模式的高负载。

准确性——服务的执行委托给不同的从模块,它们是独立的:没有共享状态;主模块和从模块之间的通信延迟可能是一个问题,尤其是在实时系统中。流水线过滤模式支持并发处理,当输入输出由数据流组成时,过滤器在收到数据时开始计算;易于添加过滤器,系统易于扩展;过滤器可以重用,并且可以通过重新组合现有的过滤器来创建不同的管道流。

整体效率受限于最慢的过滤程序;当从一个过滤器传递到另一个过滤器时,带有数据转换的加载代理模式允许动态地修改、添加、删除和重定位对象。对于开发者来说,内容分发是透明的,需要规范服务描述。P2P模式支持去中心化运营。它对任何节点的故障都是高度稳定的;就资源和计算能力而言,它是高度可扩展的。

由于节点自愿合作,服务质量无法得到保证;很难保证安全;性能取决于节点的数量。事件总线模式可以很容易地向系统添加新的发布者、订阅者和连接。对于高度分布式的应用来说,有效的可扩展性可能是一个问题,因为所有的信息传输都需要通过同一时间总线MVC模式,很容易构建同一模型的多个视图,在运行时可以任意连接或断开,这增加了复杂性,用户操作可能会导致许多不必要的更新。

黑板模式便于添加新的应用;扩展数据空间的结构很容易,修改数据空间的结构很难,因为所有的应用都会受到影响;可能需要同步机制和访问控制解释器模式,并且可能支持高度动态的行为;这有利于终端用户的可编程性;增强的灵活性,因为很容易替换解释器。因为解释语言通常比编译语言慢,所以性能可能是个问题。最终审核编辑:李倩

以上知识分享希望能够帮助到大家!