软件架构模式+系统架构

架构模式对比

分层模式

一般信息系统中最常见的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架构

相关推荐
Monodye21 小时前
【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)
java·网络·数据结构·算法·系统架构
傻傻虎虎2 天前
【系统架构设计】信息系统基础知识
系统架构
有颜有货2 天前
低代码开发平台系统架构概述
低代码·系统架构
z2014z2 天前
系统架构设计师教程 第5章 5.3 系统分析与设计 笔记
笔记·系统架构
h177113472052 天前
基于区块链的相亲交易系统源码解析
大数据·人工智能·安全·系统架构·交友
辣香牛肉面2 天前
十三 系统架构设计(考点篇)
系统架构
weixin_464838153 天前
grep命令如何实现正则表达式搜索?
linux·运维·服务器·网络安全·系统架构
傻傻虎虎4 天前
【系统架构设计】基于中间件的开发
中间件·系统架构
AmHardy4 天前
系统架构设计师 需求分析篇二
系统架构·需求分析·面向对象分析·分析模型·uml和sysml
我叫啥都行4 天前
计算机基础知识复习9.13
linux·笔记·后端·系统架构