在数据流架构中,整个软件系统被看作是对连续部分或一组输入数据的一系列转换,其中数据和操作是相互独立的。在这种方法中,数据进入系统,然后一次流过一个模块,直到它们被分配到某个最终目的地(输出或数据存储)。
组件或模块之间的连接可以作为 I/O 流、I/O 缓冲区、管道或其他类型的连接实现。数据可以在带周期的图形拓扑中传输,在不带周期的线性结构中传输,也可以在树型结构中传输。
这种方法的主要目标是实现重用和可修改性的质量。它适用于涉及一系列定义明确的独立数据转换或对有序定义的输入和输出进行计算的应用程序,例如编译器和业务数据处理应用程序。模块之间有三种类型的执行序列:
批量顺序
批处理顺序是一种经典的数据处理模型,其中数据转换子系统只有在其前一个子系统完全通过−
- 数据流将一批数据作为一个整体从一个子系统传送到另一个子系统。
- 模块之间的通信通过临时中间文件进行,这些中间文件可以被连续的子系统删除。
- 它适用于那些数据是批处理的,每个子系统读取相关输入文件并写入输出文件的应用程序。
- 此体系结构的典型应用包括业务数据处理,例如银行和公用事业计费。
优势
- 在子系统上提供更简单的划分。
- 每个子系统都可以是一个独立的程序,处理输入数据并生成输出数据。
缺点
- 提供高延迟和低吞吐量。
- 不提供并发和交互接口。
- 实施需要外部控制。
管道和过滤器架构
这种方法强调按连续组件对数据进行增量转换。在这种方法中,数据流由数据驱动,整个系统被分解为数据源、筛选器、管道和数据接收器的组件。
模块之间的连接是数据流,它是先进/先出缓冲区,可以是字节流、字符或任何其他类型的此类流。此体系结构的主要功能是其并发和增量执行。
滤波器
滤波器是独立的数据流转换器或流传感器。它转换输入数据流的数据,对其进行处理,并通过管道将转换后的数据流写入管道,供下一个筛选器处理。它以增量模式工作,在增量模式下,一旦数据通过连接的管道到达,它就会开始工作。滤波器有两种类型——有源滤波器和无源滤波器。
有源滤波器
主动筛选器允许连接的管道拉取数据并推出转换后的数据。它使用无源管道运行,该管道提供用于拉动和推送的读/写机制。此模式用于
UNIX 管道和筛选器机制。
无源滤波器
被动滤波器允许连接的管道将数据推入和拉出。它使用活动管道运行,该管道从筛选器中提取数据并将数据推送到下一个筛选器。它必须提供读/写机制。
优势 -
为过多的数据处理提供并发性和高吞吐量。
- 提供可重用性并简化系统维护。
- 提供滤波器之间的可修改性和低耦合性。
- 通过在通过管道连接的任意两个过滤器之间提供清晰的划分来提供简单性。
- 通过支持顺序和并行执行来提供灵活性。
缺点 -
不适用于动态交互。
- 以 ASCII 格式传输数据需要一个低公分母。
- 筛选器之间数据转换的开销。
- 不为筛选器提供协作交互以解决问题的方法。
- 难以动态配置此体系结构。
管
管道是无状态的,它们携带存在于两个筛选器之间的二进制或字符流。它可以将数据流从一个过滤器移动到另一个过滤器。管道使用少量上下文信息,并且在实例化之间不保留任何状态信息。
过程控制架构
它是一种数据流体系结构,其中数据既不是批处理的顺序流,也不是流水线流。数据流来自一组变量,这些变量控制流程的执行。它将整个系统分解为子系统或模块并将它们连接起来。
子系统的类型
过程控制架构将具有用于更改过程控制变量的处理单元和用于计算更改量的控制器单元。
控制器单元必须具有以下元素:
- 受控变量 − 受控变量为底层系统提供值,应由传感器测量。例如,巡航控制系统的速度。
- 输入变量 − 测量过程的输入。例如,温度控制系统中的回风温度
- 操纵变量 − 操纵变量值由控制器调整或更改。
- 进程定义 - 它包括用于操作某些进程变量的机制。
- 传感器 - 获取与控制相关的过程变量的值,并可用作反馈参考以重新计算操作变量。
- 设定点 − 它是受控变量的所需值。
- 控制算法 - 它用于决定如何操作过程变量。
应用领域
过程控制架构适用于以下领域:
- 嵌入式系统软件设计,其中系统由过程控制变量数据操纵。
- 应用程序,其目的是在给定的参考值下保持过程输出的指定属性。
- 适用于汽车巡航控制和建筑温度控制系统。
- 实时系统软件控制汽车防抱死制动器、核电站等。
|