千家信息网

常见的软件架构有哪些

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,这篇文章主要介绍常见的软件架构有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!常见的软件架构模式:分层架构模式、客户端-服务器模式、主从模式、管道-过滤器模式、代理模式、点
千家信息网最后更新 2024年11月21日常见的软件架构有哪些

这篇文章主要介绍常见的软件架构有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

常见的软件架构模式:分层架构模式、客户端-服务器模式、主从模式、管道-过滤器模式、代理模式、点对点模式、事件总线模式、模型-视图-控制器(MVC)模式、黑板模式、解释器模式等。

10种常见软件架构模式

是否想知道大型企业级系统是怎么设计的?在软件主体开发之前,我们必须选择一个合适的架构来提供所需的功能和质量特征。所以在应用于设计之前,我们应该了解不同的架构。


什么是架构模式

维基百科:架构模式是在给定上下文的软件架构中,针对常发生问题的一种通用、复用的解决方案。架构模式类似于软件设计模式,但是范畴更广。

本文中,我将简要的阐述如下10中常见架构模式的应用和优缺点。

1. 分层模式
2. 客户端-服务端模式
3. 主从模式
4. 管道-过滤器模式
5. 代理模式
6. 点对点模式
7. 事件总线模式
8. 模型-视图-控制器模式
9. 黑板模式
10. 解释器模式

1. 分层模式

该模式用于构建可分解为多组子任务的程序,每个子任务都在某个抽象层,每个层对上一个更高层提供服务。一般信息系统中最常见的4层体系如下。

  • 表示层(也叫 UI 层)

  • 应用层(也叫服务层)

  • 业务逻辑层(也叫领域层)

  • 数据访问层(也叫持久层)

应用场景
  • 一般桌面程序

  • 电子商务网页程序


2. 客户端-服务器模式

该模式由两部分构成:单个服务器端和多个客户端。服务器组件对多个客户端组件提供服务。客户端向服务器端请求服务,服务端提供对应服务给这些客户端。此外,服务器端继续监听客户端请求。

应用场景

  • 在线应用,比如电子邮件、文档分享和银行业务


3. 主从模式

该模式由两部分构成:主节点和多个从节点。主节点组件向多个独立的从节点组件分派任务,并根据从节点返回结果计算出最终结果。

应用场景

  • 数据库复制,主数据库被视为权威来源并同步到从数据库

  • 连接到计算系统的外围设备(主从驱动)


4. 管道-过滤器模式

该模式用于构建生产和处理数据流的系统。每个处理步骤封装在一个过滤器组件中。待处理的数据被传送到管道之中,这些管道可用于缓冲或者同步。

应用场景

  • 编译器,接连的过滤器执行词义分析,语法分析,语义分析和代码生成

  • 生物资料学科的工作流


5. 代理模式

该模式用于构建组件解耦的分布式系统。这些组件通过远程调用彼此交互。代理组件负责多个组件的通信协调,服务器向代理公开他们的能力(服务和特性);客户端从代理中获取服务,然后代理重定向客户端到注册服务库中一个合适的服务。

应用场景

  • 消息队列软件,比如 Apache ActiveMQ、Apache Kafka、RabbitMQ 和 JBoss Messaging


6. 点对点模式

该模式中,各独立组件都叫对等点。对等点既可以作为客户端从其他对等点获取服务,也可作为服务端向其他对等点提供服务。对等点可作为客户端、或者服务端、或者两者,并且在不时间动态切换角色。

应用场景

  • 文件分享网络,比如 Gnutella 和 G2

  • 多媒体协议,比如 P2PTV 和 PDTP

  • 私媒体程序,比如 Spotify


7. 事件总线模式

该模式主要处理事件,有4个主要组件:事件源,事件监听器,频道和事件总线。事件源发布消息到事件总线上的某个频道,监听器订阅某个频道,并得知在已订阅频道中发布的消息。

应用场景

  • Android 开发

  • 通知服务


8. 模型-视图-控制器模式

该模式也叫 MVC 模式,划分交互程序为3个部分:模型--包含核心功能和数据,视图--显示信息给用户(多个视图可被定义),控制器--处理用户输入。它通过分割用户信息的内部陈述和呈现、接受方式来实现,解耦组件并允许高效的代码复用。

应用场景

  • 主流编程语言的万维网程序架构

  • 网页框架,比如 Django 和 Rails


9. 黑板模式

该模式对没有确定性方案策略的问题很有用。黑板模式由三个主要组件组成,黑板--包含解空间对象的结构化全局内存,知识源--有自拥表示的专门模块,控制组件--选择、配置和执行模块。所有组件都可访问黑板,可生成新的数据对象并添加到黑板中。在黑板中,可根据已有知识源的匹配规则,寻找某些类型的数据。

应用场景

  • 语音识别

  • 车辆识别和跟踪

  • 蛋白质结构鉴定

  • 声呐信号解释


10. 解释器模式

该模式用于设计解释特定语言编写的程序的组件。该组件主要指定怎么去评估程序代码行,也就是所谓的用某种语言写的语句或者表达式,基本点在于给语言符号分类。

应用场景

  • 数据库查询语言,比如 SQL

  • 用于描述通信协议的语言


架构模式比较

下面的表格概述每个架构模式的优缺点。


以上是"常见的软件架构有哪些"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

模式 服务 组件 架构 应用 客户 客户端 场景 数据 事件 软件 程序 黑板 服务器 代理 常见 多个 语言 总线 管道 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发专利权归属 外交部网络安全防护 j1939上位机软件开发 事业单位信息网络安全管理制度 pdf上怎么显示三维数据库 数据库为什么有两个图表 2.MySQL数据库中 树莓派实现视频服务器 多玩剑灵数据库 上海数据软件开发有哪些 嘉兴网络技术支持电话 软件开发培训学校排行 罗布乐思12月8日停止服务器 啥时候上架 vpc网络服务器远程管理 鹤岗市网络安全教育的视频 软件开发的中间件都有什么 后端网络技术支撑服务人员 ExceI随数据库实时更新 有口碑的服务器监控 数据库建表时文件用什么类型表示 香港服务器传输文件慢 redis十几个数据库怎么用 java爬虫跟数据库 vb6如何插数据库 软件开发服务分摊确认收入 服务器中的磁盘柜内置操作系统吗 大数据与网络安全专业怎么样 管理系统数据库如何关闭 西城区技术软件开发创新服务 民法典网络安全法全文
0