常见的5个软件架构模式

djw12333 djw12333     2022-12-11     668

关键词:

       企业规模的软件系统该如何设计呢?在开始写代码之前,我们需要选择一个合适的架构,这个架构将决定软件实施过程中的功能属性和质量属性。因此,了解软件设计中的不同架构模式对我们的软件设计会有较大的帮助。

  什么是架构模式?根据维基百科:架构模式是针对特定软件架构场景常见问题的通用、可重用解决方案。架构模式类似于软件设计模式,但范围更广。本文将简要解释10种常见架构模式及其用法、优缺点。

  分层模式(Layered pattern)

  客户端-服务器模式(Client-server pattern)

  主从模式(Master-slave pattern)

  管道-过滤器模式(Pipe-filter pattern)

  代理模式(Broker pattern)

  点对点模式(Peer-to-peer pattern)

  事件-总线模式(Event-bus pattern)

  模型-视图-控制器模式(Model-view-controller pattern)

  黑板模式(Blackboard pattern)

  解释器模式(Interpreter pattern)

  1. 分层模式

  此模式用于可分解为子任务的结构化程序,每个子任务都位于特定的抽象层级,每一层都为上一层提供服务。一般信息系统最常见的4个层次如下。

  表示层(也称为UI层)

  应用层(也称为服务层)

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

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

  应用场景:

  一般的桌面应用程序

  电子商务web应用程序

  一般的移动App

  

技术图片

 

  分层模式

  2. 客户端-服务器模式

  这种模式由两部分组成:服务器和多个客户端。服务器将向多个客户端提供服务。客户端从服务器请求服务,服务器向这些客户端提供相关服务。此外,服务器继续侦听客户端请求。

  应用场景:

  电子邮件、文档共享和银行等在线应用程序。

  基于IPC的应用程序

  

技术图片

 

  客户端-服务器模式

  3.主从模式

  这种模式由两部分组成:主节点和从节点。主节点将工作分配给相同的从节点,并根据从节点返回的结果计算最终结果。

  应用场景:

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

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

  进程内的多线程应用。

  

技术图片

 

  主-从模式

  4.管道-过滤器模式

  这种模式可用于构造生成和处理数据流的系统。每个处理步骤都包含一个过滤器组件。要处理的数据通过管道传递。这些管道可用于缓冲或同步目的。

  应用场景:

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

  生物信息学的工作流

  工具链式的应用程序

  

技术图片

 

  管道-过滤器模式

  5. 代理模式

  这种模式通过解耦组件来构造分布式系统。这些组件可以通过远程服务调用彼此交互。代理组件负责协调组件之间的通信。服务器向代理发布功能(服务和特征)。客户端向代理请求服务,然后代理将客户端重定向到合适的服务。需要注意broker,agent,proxy以及delegate的区别。

  应用场景: 无锡妇科医院哪家好 http://wapyyk.39.net/wx/zonghe/fc96e.html

  消息代理软件,例如:Apache ActiveMQ、Apache Kafka、RabbitMQ和JBoss消息传递。

  网络传输中的代理软件。

  

技术图片

 

  代理模式

10种常见的软件架构模式

...但具有更广泛的范围。在本文中,将简要地解释以下10种常见的体系架构模式,以及它们的用法、优缺点。分层模式客户端-服务器模式主从设备模式管道-过滤器模式代理模式点对点模式事件总线模式模型-视图-控制器模式黑板模... 查看详情

五种常见软件架构

一、分层架构分层架构(layeredarchitecture)是最常见的软件架构,也是事实上的标准架构。如果你不知道要用什么架构,那就用它。这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节。... 查看详情

软件架构软件框架设计模式

...软件,模式是软件的知识体,提升框架的设计水平。六.常见设计模式:推荐书籍《设计模式— 查看详情

软件架构入门-分层架构、事件驱动、微服务架构和云原生架构

...小册子《SoftwareArchitecturePatterns》(PDF),介绍了五种最常见的软件架构,是非常好的入门读物。软件架构就是软件的基本结构。架构的本质是管理复杂性。如果你觉得架构不重要,可能是你做的事情不够复杂,或者是你没有管... 查看详情

软件架构之分层架构理解

分层架构特定场景:分层架构是一种很常见的架构模式,它也叫N层架构。分层架构适用于一个集成不同功能的系统,当我们需要把很多不同的代码集起来的时候,这种模式提供了最合理的结构。能让我们的代码有足够的灵活性... 查看详情

软件架构模式之分层模式

  分层模式是最通用的架构,也被叫做N层架构模式(n-tierarchitecturepattern).这也是JavaEE应用经常采用的标准模式.基本上都知道它.这种架构模式非常适合传统的IT通信和组织结构,很自然地成为大部分应用的第一架构选择。 一、... 查看详情

程序员必知的几种软件架构模式(代码片段)

...构微服务架构前序架构模式是对给定上下文的软件架构中常见问题的一种通用的可复用的解决方案。一种模式就是特定上下文的问题的一种解决方案。然而,很多开发者至今还对各种软件架构模式之间的差别搞不清,甚... 查看详情

软件架构小计

...素之一。一共分为五种。一、分层架构 分层架构是最常见的软件架构,也是事实上的标准架构。这种架构将软件分成若干个水平层,每一层都有清洗的角色和分工,不需要知道其他层的细节。层与层之间通过接口通信。一般... 查看详情

001.常见监控简介

一 监控架构1.1 组成客户端:数据采集部分服务端:数据存储分析告警展示1.2 采集模式被动模式:服务器端到客户端采集数据,对服务器的开销较大,适合小规模的监控环境。主动模式:客户端主动上报数据到服务器端,对服务... 查看详情

[架构之路-100]:《软件架构设计:程序员向架构师转型必备》-10-细化架构设计

...义+领域模型备注:逻辑架构是架构师最基本、最常见的架构设计工作。很多时候,即使没有其他视角的架构设计,逻辑架构设计也是不可缺少的。备注:协作决定接口的思想告诉我们,所有的接口定义,都... 查看详情

消息队列常见的5个应用场景

一、简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。二、... 查看详情

四种常见系统架构介绍

软件架构(softwarearchitecture)就是软件的基本结构。 合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。如果一个软件开发人员,不了解软件架构的演... 查看详情

saas架构模式下的多租户系统设计

...(混乱):每次新增一个客户,都会新增软件的一个实例。第1级(受控的混乱):所有客户都运行在软件的同一个版本上,而且任何的定制化都通过修改配置来实现。第2级(多租户[multi-tenant]... 查看详情

软件架构之23种设计模式

原文:软件架构之23种设计模式创建型模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。... 查看详情

软件架构风格——4+1视图5大传统架构风格及其它风格

软件架构风格定义:在某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效的组织成一个完整的系统。软件体系结构风格是描述某一特定应用领域... 查看详情

软件架构的10个质量属性

一般地,对于软件系统的需求而言,分为两类:功能性需求和非功能性需求。软件系统的架构设计既要满足软件的功能性需求,还要满足软件的非功能性需求。特别地,系统架构对软件非功能性需求的支撑成... 查看详情

常见监控简介

...,产生的数据和网络连接开销很大,跨地域等环境下。二常见监控软件流量监控:MTRG、Cacti、SmokePing、Graphite等性能告警:Nagios、Zabbix、Zenoss、Core、Ganglia、OpenTSDB等三常见监控内容监控项目描述主机监控CPU、内存、磁盘的剩余空... 查看详情

软件设计要素初探:架构模式

在“软件设计要素初探”一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素。本文探讨系统组件交互的架构模式。架构模式是系统组件及组件交互的模式,决定了处理数据和领域对象的全局控制结构。组件化是... 查看详情