管道-过滤器, Pipes and Filters是面向数据流的软件体系结构。
它为处理数据流的系统提供了一种结构。
单步数据处理封装在一个过滤器中,数据在过滤器之间的管道传输。
以便实现对数据的多次操作。
如下图所示:
data source(数据源),filter(过滤器)和data sink(数据汇点)三者,使用pipe(管道)进行连接
过滤器视为组件。
管道视为连接件。
管道将一个过滤器的输出传给另一个过滤器的输入。
优点:
1.高效的并行效率(灵活使用active(主动) 过滤器)
2.过滤器可以重组/重用/可替换
3.不需要中间保存
缺点:
1.数据传输和转化开销大
2.错误处理复杂
过滤器有主动/被动之分(active/passive)
主动过滤器是指从上一级管道中取出pull数据
被动过滤器指接受上一级管道中的数据只接受push进来的数据
介绍几个情况:
Write,向下一级组件写操作(push)
data,数据流的流向
Read,向上一级组件读(pull)
Transform,数据转化操作
[1] 主动数据源 + 被动过滤器 + 被动数据汇点
[2] 被动数据源 + 被动过滤器 + 主动数据汇点
[3] 被动数据源 + 主动过滤器 + 主动数据汇点
[4] 被动数据源 + 多种主动过滤器 + 被动数据汇点
图片参考B站up主,老曹同学的马甲线,仅个人学习记录。侵删。