软件架构有哪些(软件架构举例)
常见的软件架构模式:分层架构模式、客户端-服务器模式、主从模式、流水线-过滤器模式、代理模式、点对点模式、事件总线模式、模型-视图-控制器(MVC)模式、黑板模式、解释器模式等。
十种常见的软件架构模式
想知道如何设计大型企业系统吗?在软件学科开发之前,我们必须选择一个合适的架构来提供所需的功能和质量特征。所以在应用到设计之前,要了解不同的架构。
什么是架构模式
维基百科:架构模式是在给定的软件架构环境下,对常见问题的一种通用且可重用的解决方案。架构模式类似于软件设计模式,但范围更广。
在本文中,我将简要解释以下10种常见架构模式的应用和优缺点。
1.分层模式2。客户端-服务器模式3。主从模式4。管道过滤器模式5。代理模式6。点对点模式7。事件总线模式8。模型-视图-控制器模式9。黑板模式10。解释模式
1.分层模式
这种模式用来构建一个可以分解成几组子任务的程序,每个子任务都在一个抽象层,每一层都向更高层提供服务。一般信息系统中最常见的四层体系如下。
表示层(也叫UI层)、应用层(也叫服务层)、业务逻辑层(也叫域层)、数据访问层(也叫持久层)、应用场景、通用桌面程序、电子商务web程序
2.客户端-服务器模式
该模型由两部分组成:单个服务器和多个客户端。服务器组件向多个客户端组件提供服务。客户端向服务器请求服务,服务器向这些客户端提供相应的服务。此外,服务器端继续监听客户端请求。
应用场景
在线应用,如电子邮件、文档共享和银行业务
3.主从模式
该模型由两部分组成:一个主节点和多个从节点。主节点组件将任务分配给多个独立的从节点组件,并根据从节点返回的结果计算最终结果。
应用场景
数据库复制,主数据库被视为一个权威来源,并从数据库(主从驱动)同步到连接到计算系统的外围设备
4.流水线过滤模式
该模型用于构建一个产生和处理数据流的系统。每个处理步骤都封装在一个过滤器组件中。要处理的数据被传输到管道中,管道可用于缓冲或同步。
应用场景
编译器和后续过滤器执行词义分析、语法分析、语义分析和代码生成生物数据规程的工作流程
5.代理模式
这种模式用于构建具有解耦组件的分布式系统。这些组件通过远程调用相互作用。代理组件负责多个组件的通信协调,服务器向代理公开它们的能力(服务和特性);客户端从代理获取服务,然后代理将客户端重定向到注册的服务库中的适当服务。
应用场景
消息队列软件,如Apache ActiveMQ、Apache Kafka、RabbitMQ、JBoss Messaging
6.点对点模式
在这个模型中,每个独立的组件被称为一个对等体。对等体不仅可以作为客户端从其他对等体获得服务,还可以作为服务器向其他对等体提供服务。对等体可以充当客户端、服务器或两者,并在不同时间动态切换角色。
应用场景
文件共享网络如Gnutella和G2多媒体协议如P2PTV和PDTP私人媒体程序如Spotify
7.事件总线模式
这种模式主要处理事件,有四个主要组件:事件源、事件侦听器、通道和事件总线。事件源向事件总线上的通道发布消息,而侦听器订阅通道并学习在订阅的通道中发布的消息。
应用场景
Android开发通知服务
8.模型-视图-控制器模式
这个模型也叫MVC模型,它把交互程序分为三个部分:包含核心功能和数据的模型、向用户显示信息的视图(可以定义多个视图)、处理用户输入的控制器。它是通过划分用户信息的内部呈现、呈现和接受、解耦组件和允许高效的代码重用来实现的。
应用场景
主流编程语言的Web程序框架,比如Django和Rails
9.黑板模式
该模型对于没有确定性方案策略的问题是有用的。黑板模式由三个主要组件组成:黑板结构的包含解空间对象的全局内存、知识源-具有自有表示的专用模块、控制组件-选择、配置和执行模块。所有组件都可以访问黑板,可以生成新的数据对象并添加到黑板中。在黑板上,可以根据现有知识源的匹配规则找到一些类型的数据。
应用场景
语音识别车辆识别与跟踪蛋白质结构识别声纳信号解读
10.解释模式
这种模式用于设计解释用特定语言编写的程序的组件。这个组件主要指定如何评估程序代码行,即用某种语言编写的语句或表达式。基本点是对语言符号进行分类。
应用场景
数据库查询语言(如SQL)用于描述通信协议
建筑模式比较
下表总结了每种架构模式的优缺点。
希望这篇文章对你有帮助,想听听大家的想法。感谢阅读。^_^