软件架构模式+系统架构

架构模式对比

分层模式

一般信息系统中最常见的4层划分如下:

  • Presentation layer 表示层(也就是UI层)
  • Application layer 应用层(也就是服务层)
  • Business logic layer 业务逻辑层(也就是领域层)
  • Data access layer 数据访问层(也就是数据持久层)

应用:一般桌面应用程序,电子商务WEB应用程序

CS客户端-服务器模式

客户端向服务器发起请求,服务器向这些客户端提供相关服务,之后,服务器继续侦听客户端的请求

应用:电子邮件、文件共享、银行业务

主从模式

主模块在相同的从模块之间分配工作,并根据从模块返回的结构来计算最终的结果

应用:在数据库复制中,主数据库被视作权威数据源,而从数据库与其保持同步

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

管道过滤模式

构建产生和处理数据流的系统。每个处理步骤都包含在一个过滤器组件中,要处理的数据通过管道传递。这些管道可用于缓冲或者同步

应用:

编译器,依次使用不同的过滤器执行词法分析、解析、语法分析和代码生成

生物信息学中的工作流程

Broker模式

使用解耦的组件构建分布式系统,这些组件可以通过远程服务调用实现交互。代理组件负责协调组件之间的通信

服务器将它们的功能(服务和特征等)发布到代理,客户端向代理请求服务,然后代理根据其注册表将客户端请求转发给合适的服务

应用:

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

P2P模式

每个独立的组件被称为对等点(或对等端,peer)。对等端既可以充当客户端(向其它对等端请求服务),又可以充当服务器(向其它对等方提供服务)

同一个对等端可能既是客户端,又是服务器,并且可以动态改变其角色

应用:

文件共享网络,如Gnutella 和 G2

多媒体协议,如P2PTV 和 PDTP

基于加密货币的产品,如比特币和区块链

事物总线模式

该模式主要处理组件,有4个重要的组件:事件源、事件侦听器、通道和事件总线。事件源将消息发送到事件总线上的特定通道,侦听器会订阅特定的频道。当消息发送到频道中后,订阅该频道的侦听器会收到该消息的通知

应用:

安卓开发

通知服务

MVC模式

该模式将交互式应用分为三个部分,为了将数据的内部表示与用户输入和向用户展示的形式分离开来,这样可以解耦组件,同时也可以进行高效的代码重用

模型------包含核心功能和数据

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

控制器------处理用户的输入

应用:

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

网络框架,如Django 和 Rails

黑板模式

此模式对于尚无确定性解决方案的问题很有用,黑板模式由三部分组成:

所有组件都可以访问黑板,组件可能会产生要添加到黑板中的新数据对象,组件在黑板上寻找特定类型的数据,并且可以通过与现有知识源进行模式匹配来找到这些数据。

黑板------ 一个结构化的全局内存,包含解决方案领域的对象

知识源------具有自身含义的专业模块

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


应用:

语音识别

车辆识别与跟踪

蛋白质结构鉴定

声呐信号解释

解释器模式

此模式通常用于设计组件来解释使用专用语言写出的程序,它主要指定如何估算程序行,即以特定语言编写的语句或表达式

应用

数据库查询语言,如SQL

用于描述通信协议的语言

====================================================================

单体架构

前端(Web/手机端)+中间业务逻辑层+数据库层

分布式应用

是单体架构的并发扩展,将一个大的系统划分为多个业务模块,业务模块分别部署在不同的服务器上,各个业务模块之间通过接口进行数据交互。数据库也大量采用分布式数据库,如redis、ES、solor等。

通过LVS/Nginx代理应用,将用户请求均衡的负载到不同的服务器上。

微服务架构

Serverless架构

云计算战场:Serverless架构

相关推荐
一只码代码的章鱼9 天前
操作系统 第九章 部分
系统架构
还债大湿兄10 天前
《王者荣耀》系统架构深度技术解析
系统架构
池佳齐11 天前
【软考高级系统架构论文】论湖仓一体架构及其应用
架构·系统架构
池佳齐11 天前
【软考高级系统架构论文】论软件设计方法及其应用
系统架构
大数据张老师11 天前
自动化性能回退机制——蓝绿部署与灰度发布
运维·系统架构·自动化·ai架构
孟猛202312 天前
股票账户的管理和交易
系统架构
hwj运维之路12 天前
大数据系统架构实践(一):Zookeeper集群部署
大数据·zookeeper·系统架构
劳埃德福杰13 天前
【系统规划与管理师第二版】1.3 新一代信息技术及发展
系统架构·软件工程·设计规范
范纹杉想快点毕业13 天前
Qt实现文本编辑器光标高亮技术
java·开发语言·c++·算法·系统架构
掘金-我是哪吒13 天前
分布式微服务系统架构第152集:JavaPlus技术文档平台日更
分布式·微服务·云原生·架构·系统架构