在数据流架构中,整个软件系统被看作是对连续部分或一组输入数据的一系列转换,其中数据和操作是相互独立的。在这种方法中,数据进入系统,然后一次流过一个模块,直到它们被分配到某个最终目的地(输出或数据存储)。
组件或模块之间的连接可以作为 I/O 流、I/O 缓冲区、管道或其他类型的连接实现。数据可以在带周期的图形拓扑中传输,在不带周期的线性结构中传输,也可以在树型结构中传输。
这种方法的主要目标是实现重用和可修改性的质量。它适用于涉及一系列定义明确的独立数据转换或对有序定义的输入和输出进行计算的应用程序,例如编译器和业务数据处理应用程序。模块之间有三种类型的执行序列:
批量顺序
批处理顺序是一种经典的数据处理模型,其中数据转换子系统只有在其前一个子系统完全通过−
优势
缺点
管道和过滤器架构
这种方法强调按连续组件对数据进行增量转换。在这种方法中,数据流由数据驱动,整个系统被分解为数据源、筛选器、管道和数据接收器的组件。
模块之间的连接是数据流,它是先进/先出缓冲区,可以是字节流、字符或任何其他类型的此类流。此体系结构的主要功能是其并发和增量执行。
滤波器
滤波器是独立的数据流转换器或流传感器。它转换输入数据流的数据,对其进行处理,并通过管道将转换后的数据流写入管道,供下一个筛选器处理。它以增量模式工作,在增量模式下,一旦数据通过连接的管道到达,它就会开始工作。滤波器有两种类型——有源滤波器和无源滤波器。
有源滤波器
主动筛选器允许连接的管道拉取数据并推出转换后的数据。它使用无源管道运行,该管道提供用于拉动和推送的读/写机制。此模式用于 UNIX 管道和筛选器机制。
无源滤波器
被动滤波器允许连接的管道将数据推入和拉出。它使用活动管道运行,该管道从筛选器中提取数据并将数据推送到下一个筛选器。它必须提供读/写机制。
管
管道是无状态的,它们携带存在于两个筛选器之间的二进制或字符流。它可以将数据流从一个过滤器移动到另一个过滤器。管道使用少量上下文信息,并且在实例化之间不保留任何状态信息。
过程控制架构
它是一种数据流体系结构,其中数据既不是批处理的顺序流,也不是流水线流。数据流来自一组变量,这些变量控制流程的执行。它将整个系统分解为子系统或模块并将它们连接起来。
子系统的类型
过程控制架构将具有用于更改过程控制变量的处理单元和用于计算更改量的控制器单元。
控制器单元必须具有以下元素:
应用领域
过程控制架构适用于以下领域: