📜  数据流架构

📅  最后修改于: 2020-12-14 03:29:02             🧑  作者: Mango


在数据流体系结构中,整个软件系统被看作是对输入数据的连续片段或集合的一系列转换,其中数据和操作彼此独立。在这种方法中,数据进入系统,然后一次流过模块,直到将它们分配给某个最终目标(输出或数据存储)。

组件或模块之间的连接可以实现为I / O流,I / O缓冲区,管道连接或其他类型的连接。数据可以以循环的形式在图形拓扑中,以没有循环的线性结构或以树型结构进行飞行。

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

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

批处理顺序

批处理顺序是一种经典的数据处理模型,其中数据转换子系统仅在其先前的子系统完全通过以下步骤后才能启动其过程:

  • 数据流从一个子系统到另一个子系统整体承载了一批数据。

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

  • 它适用于批量处理数据的应用程序,每个子系统都读取相关的输入文件并写入输出文件。

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

批处理顺序

好处

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

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

缺点

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

  • 不提供并发和交互界面。

  • 实施需要外部控制。

管道和过滤器架构

这种方法着重于按连续成分对数据进行增量转换。在这种方法中,数据流由数据驱动,整个系统分解为数据源,过滤器,管道和数据接收器的组件。

模块之间的连接是数据流,它是先进先出缓冲区,可以是字节,字符或任何其他此类流。该体系结构的主要特征是并发执行和递增执行。

过滤

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

有源滤波器

主动过滤器使连接的管道可以提取数据并推出转换后的数据。它与无源管道一起运行,后者提供用于拉动和推动的读/写机制。在UNIX管道和过滤器机制中使用此模式。

无源滤波器

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

无源滤波器

好处

  • 提供并发性和高吞吐量,以进行过多的数据处理。

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

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

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

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

缺点

  • 不适合动态交互。

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

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

  • 没有提供过滤器协作解决问题的方式。

  • 难以动态配置此体系结构。

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

过程控制架构

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

子系统类型

过程控制体系结构将具有用于更改过程控制变量的处理单元和用于计算更改量的控制器单元

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

  • 受控变量-受控变量为基础系统提供值,应通过传感器进行测量。例如,巡航控制系统中的速度。

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

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

  • 流程定义-它包括用于处理某些流程变量的机制。

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

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

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

应用领域

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

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

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

  • 适用于汽车巡航控制和建筑物温度控制系统。

  • 实时系统软件,用于控制汽车防抱死制动器,核电站等