软件架构风格,也叫软件体系结构风格,是描述某一特定应用领域中系统组织方式的惯用模式,一个体系结构定义一个词汇表和一组约束。体系结构反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个子模块和子系统有效地组织成一个完整的系统。
一、数据流体系风格
1、批处理体系结构风格
在批处理风格的架构中,每个处理步骤是一个单独的程序,每一步必须在前一步结束后才能开始,并且数据必须是完整的,以整体的方式传递。它的基本构件是独立的应用程序,连接件是某种类型的媒介。连接件定义了相应的数据流图,表达拓扑结构。
2、管道-过滤器体系结构风格
当数据源源不断地产生,系统就需要对这些数据进行若干处理(分析、计算、转换等)。现有的解决方案是把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入。每个处理步骤由一个过滤器(Filter) 实现,处理步骤之间的数据传输由管道(Pipe) 负责。每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中。管道-过滤器风格的基本构件是过滤器,连接件是数据流传输管道。
管道过滤器有两部分组成:过滤器、管道。
- 过滤器:是其中的核心构件,负责业务的处理。它从用户或上游管道获得输入数据,进行数据的变换和增量计算,处理完成后,通过下游管道传递给另一个过滤器。过滤器是独立的实体,不能与其他的过滤器共享数据,而且一个过滤器不知道它上游和下游其他过滤器信息
- 管道:一种数据传输途径。典型的有Unix/Linux操作系统的管道文件,消息队列。保证数据先进先出,单向进出。
3、相同点
- 由一系列构件或者组件按序拼接,上一阶段输出为下一阶段输入,组件间只通过数据传递交互;
- 具备高内聚低耦合、可复用、高吞吐、隐蔽性强的特点
4、不同点:
- 批处理的数据必须是完整的;管道-过滤的数据是增量的。
- 批处理需要完成前序任务,再进行后续任务;管道-过滤是不断输入的数据流方式。
二、调用/返回体系结构风格
1、主程序/子程序风格
主程序/子程序风格一般采用单线程控制,把问题划分为若干处理步骤,构件即为主程序和子程序。子程序通常可合成为模块。过程调用作为交互机制,即充当连接件。调用关系具有层次性,其语义逻辑表现为子程序的正确性取决于它调用的子程序的正确性。
构件即为主程序和子程序;过程调用作为交互机制,充当连接件
2、面向对象体系结构风格
抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面向对象系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。
这种风格的构件是对象,连接件即对象间交互的方式。
3、层次型体系结构风格
层次系统组成一个层次结构,每一层为上层提供服务,并作为下层的客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层接口只对相邻的层可见。这样的系统中构件在层上实现了虚拟机。连接件由通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,这同样为软件重用提供了强大的支持。
4、客户端/服务端体系结构风格
- 两层C/S体系结构
组成部分:数据库服务器、客户应用程序和网络
服务器(后台)负责处理数据,客户机(前台)完成与用户的交互任务,即胖客户家,瘦服务器。
- 三层C/S体系结构
应用功能分为:表示层、功能层、数据层,即瘦客户机,胖服务器。
表示层是应用的用户接口部分,通常使用图形用户界面;
功能层是应用的主体,实现具体的业务处理逻辑;
数据层是数据库管理系统。
三、以数据为中心的体系结构风格
1、仓库体系结构
仓库(Repository) 是存储和维护数据的中心场所。在仓库风格中,有两种不同的构件:中央数据结构(说明当前数据的状态)和一组对中央数据进行操作的独立构件。连接件即为仓库与独立构件之间的交互
2、黑板体系结构风格
黑板体系结构风格适用于解决复杂的非结构化的问题,能在求解过程中综合运用多种不同知识源,使得问题的表达、组织和求解变得比较容易。黑板系统是一种问题求解模型,是组织推理步骤、控制状态数据和问题求解之领域知识的概念框架。它将问题的解空间组织成一个或多个应用相关的分级结构。分级结构的每一层信息由一个唯一的词汇来描述,它代表了问题的部分解。领域相关的知识被分成独立的知识模块,它将某一层次中的信息转换成同层或相邻层的信息。各种应用通过不同知识表达方法、推理框架和控制机制的组合来实现。影响黑板系统设计的最大因素是应用问题本身的特性,但是支撑应用程序的黑板体系结构有许多相似的特征和构件。
比如信号处理,问题规划,语音识别,编译器优化等。
四、虚拟机体系结构风格
1、解释器体系结构风格
一个解释器通常包括完成解释工作的解释引擎,一个包含将被解释的代码的存储区,一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行进度的数据结构。
解释器可以仿真硬件的执行过程和一些关键应用,通常被用来弥合程序语义与硬件语义之间的差异。其缺点是执行效率较低。
2、规则体系结构风格
基于规则的系统包括规则集、规则解释器、规则/数据选择器及工作内存。
五、独立构件体系结构风格
1、进程通信体系结构风格
构件之间通过独立的进程来实现消息传递
2、事件系统体系结构风格
标签:十一,连接件,构件,管道,风格,软件架构,过滤器,体系结构 From: https://blog.csdn.net/xiayinggudeng/article/details/143173524事件驱动系统风格是基于事件的隐式调用风格,构件不直接调用一个过程,而是触发或广播一个或多个事件。后续执行过程会被注册在一个或多个事件,当对应的事件被触发或者广播时,系统会自动调用该事件中注册的过程,执行相应的模块功能。