数据流架构


在数据流架构中,整个软件系统被视为对连续块或一组输入数据的一系列转换,其中数据和操作彼此独立。在这种方法中,数据进入系统,然后一次一个地流经模块,直到它们被分配到某个最终目的地(输出或数据存储)。

组件或模块之间的连接可以被实现为I/O流、I/O缓冲器、管道或其他类型的连接。数据可以以有环的图拓扑、无环的线性结构或树型结构的形式流动。

这种方法的主要目标是实现重用和可修改性的品质。它适用于涉及一系列明确定义的独立数据转换或对有序定义的输入和输出进行计算的应用程序,例如编译器和业务数据处理应用程序。模块之间有三种类型的执行顺序 -

  • 批次顺序
  • 管道和过滤器或非顺序管道模式
  • 过程控制

批量顺序

批顺序是一种经典的数据处理模型,其中数据转换子系统只有在其前一个子系统完全通过后才能启动其过程 -

  • 数据流将一批数据作为一个整体从一个子系统传送到另一个子系统。

  • 模块之间的通信通过临时中间文件进行,这些文件可以被后续子系统删除。

  • 适用于数据批量化、各子系统读取相关输入文件并写入输出文件的应用。

  • 该架构的典型应用包括业务数据处理,例如银行业务和公用事业计费。

批量顺序

优点

  • 提供更简单的子系统划分。

  • 每个子系统可以是处理输入数据并产生输出数据的独立程序。

缺点

  • 提供高延迟和低吞吐量。

  • 不提供并发和交互接口。

  • 实施需要外部控制。

管道和过滤器架构

这种方法强调通过连续组件对数据进行增量转换。在这种方法中,数据流由数据驱动,整个系统被分解为数据源、过滤器、管道和数据接收器等组件。

模块之间的连接是数据流,它是先进/先出缓冲区,可以是字节流、字符流或任何其他类型的此类流。该架构的主要特点是并发和增量执行。

筛选

过滤器是一个独立的数据流转换器或流转换器。它转换输入数据流的数据,对其进行处理,并将转换后的数据流写入管道以供下一个过滤器处理。它以增量模式工作,一旦数据通过连接的管道到达,它就开始工作。滤波器有两种类型:有源滤波器无源滤波器

有源滤波器

主动过滤器允许连接的管道拉入数据并推出转换后的数据。它与被动管道一起运行,被动管道提供用于拉和推的读/写机制。该模式用于UNIX管道和过滤机制。

无源滤波器

无源过滤器允许连接的管道将数据推入和拉出。它与活动管道一起运行,从过滤器中提取数据并将数据推送到下一个过滤器中。它必须提供读/写机制。

无源滤波器

优点

  • 为过多的数据处理提供并发和高吞吐量。

  • 提供可重用性并简化系统维护。

  • 提供过滤器之间的可修改性和低耦合性。

  • 通过在通过管道连接的任何两个过滤器之间提供清晰的划分,提供简单性。

  • 通过支持顺序和并行执行来提供灵活性。

缺点

  • 不适合动态交互。

  • 以 ASCII 格式传输数据需要较低的公分母。

  • 过滤器之间的数据转换开销。

  • 不提供过滤器协作交互来解决问题的方法。

  • 动态配置此架构很困难。

管道

管道是无状态的,它们携带存在于两个过滤器之间的二进制或字符流。它可以将数据流从一个过滤器移动到另一个过滤器。管道使用少量上下文信息并且在实例化之间不保留状态信息。

过程控制架构

它是一种数据流架构,其中数据既不是批处理的顺序流,也不是管道流。数据流来自一组变量,这些变量控制流程的执行。它将整个系统分解为子系统或模块并将它们连接起来。

子系统的类型

过程控制架构将具有用于改变过程控制变量的处理单元和用于计算变化量的控制器单元。

控制器单元必须具有以下元素 -

  • 受控变量- 受控变量为底层系统提供值,应由传感器测量。例如,巡航控制系统中的速度。

  • 输入变量- 测量过程的输入。例如温控系统回风温度

  • 操纵变量- 操纵变量值由控制器调整或更改。

  • 流程定义- 它包括操纵某些流程变量的机制。

  • 传感器- 获取与控制相关的过程变量值,并可用作重新计算操纵变量的反馈参考。

  • 设定点- 它是受控变量的期望值。

  • 控制算法- 用于决定如何操纵过程变量。

应用领域

过程控制架构适用于以下领域 -

  • 嵌入式系统软件设计,系统由过程控制变量数据操纵。

  • 应用程序,其目的是将过程输出的指定属性保持在给定的参考值。

  • 适用于汽车巡航控制和楼宇温度控制系统。

  • 控制汽车防抱死制动、核电站等的实时系统软件。