管道与过滤器

前言

当一个行业专家解决一个特定问题时,很少完全创新出一个全新的方案,更多是采用类似问题的方案来解决新问题。

在对特定应用领域的系统架构方法的抽象总结,我们称之为系统架构风格,与设计模式类似,但层次比设计模式高,设计模式用于解决子系统或组件的实现,而系统架构风格用于描述如何划分组件及组件之间如何协作。

管道与过滤器架构风格属于数据流领域架构风格:数据在系统中经过各阶段处理,并最终给出结果的应用领域。

简介

系统架构定义:描述构件及构件之间的协作关系,在管道与过滤器架构中,将构件描述为过滤器,构件与构件之间的连接称为管道

过滤器负责接收数据,处理数据及输出数据,各过滤器之间由管道连接

过滤器有以下几个特点:

  1. 相互之间不共享状态
  2. 对连接的过滤器不感知
  3. 相互可独立执行,支持并行
  4. 过滤器的计算正确性与各个过滤器的执行顺序无关,只与自身的输入数据有关。
  5. 过滤器相互之间是否可通过管道连接,取决于传输的数据是否可被识别

管道:负责传输数据。

 

系统体系图

 

适用场景

管理与过滤器架构风格属于数据流架构体系,适合于处理数据需按阶段处理的应用领域,数据在一个处理阶段中处理,前一个处理阶段的输出被后一个阶段接收并处理,

常见的示例:

编译器

在代码编码过程中,编译器需执行词法分析阶段,句法分析阶段,语义分析阶段,代码生成阶段,每一个阶段的输出作为后一阶段的输入。

网络传输

在网络中计算机之间的数据通信也可以看成是管道与过滤器,计算机发送的数据通过应用程,表示层,会话层,网络层,数据链路层,物理层,层层处理后发送到对方计算机。

OTS仿真

在OTS仿真系统中,设备通过物质流传递数据,

优点

各模块高内聚,松耦合

各模块可重用

方便更新或加入新的过滤器,扩展系统功能

易于理解,可将系统看成是各过滤器的简单叠加

系统特定问题如死锁,吞吐量等容易分析

各过滤器相互独立,可支持并行

缺点

在复杂系统中,若过滤器之间存在相互的关系,需要设计协调相互之间的计算顺序

若各过滤器传输的数据没有统一的规范,各过滤器则需要做加密解析等操作,降低了性能

参考系统体系图发现没有统一的共享数据区,因此不能提供任务处理进度,了解各阶段的处理细节。

实现技巧

由于各过滤器之间相互独立计算,计算的结果只与输入有关,因此在协作时,需根据过滤器的依赖关系,设计好计算拓扑图,根据拓扑图来保证过滤器的计算顺序,保证计算正确。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值