1.管道--过滤器架构
管道-过滤器模式的体系结构是面向数据流的软件体系结构,主要用于实现复杂的数据多步转换处理。每个处理步骤封装在一个过滤器组件中。数据通过相邻过滤器之间的管道传输。
2.管道过滤器架构的组成
(1)过滤器 Filters
(2)管道 Pipes
管道负责数据的传递,它将原始数据传递给第1个过滤器,将一个过滤器的输出传递给下一个过滤器,作为下一个过滤器的输入,重复这个过程,直到处理结束,传递给数据汇点。 需要注意的是,管道只是对数据传输的抽象,它可能是管道,也可能是其他通信方式。 如果管道连接的是两个主动过滤器,那么管道需要进行缓冲和同步。
进程的通信方式举例:匿名管道、命名管道、消息队列、共享内存、信号量、嵌套字、信号
(3)数据源/数据汇点 Data Source/Sink
3.其四种工作模式
(1)主动数据源+被动过滤器+被动数据汇点
数据发送器主动组件,把数据推入第一个过滤器,处理完数据推入第二个过滤器,直至数据接收器。
(2)被动数据源+被动过滤器+主动数据汇点
主动组件数据汇点,向前一个过滤器发送读取数据请求,过滤器没有数据,就也向前一个过滤器发送请求,直至数据源,待其产生数据后,将数据依次向后传处理,直至达到数据源。
(3)被动数据源+主动过滤器+被动数据汇点
某一个过滤器是主动的,先向前请求数据,拿到后再推给后续组件。
(4)被动数据源+多种主动过滤器+被动数据汇点