Definition
Mary Shaw, David Garlan
In a pipe-and-filter style each component has a set of inputs and a set of outputs. A component reads streams of data on its inputs and produces streams of data on its outputs. This is usually accomplished by applying a local transformation to the input streams and computing incrementally, so that output begins before input is consumed. Hence components are termed filters. The connectors of this style serve as conduits for the streams, transmitting outputs of one filter to inputs of another. Hence the connectors are termed pipes. [1]
Filters
Filter components are the processing units of the pipeline. [2]
Types of Filters
An active filter starts processing on its own as a separate program or thread. A passive filter component is activated by being called either as a function (pull) or as a procedure (push).
Passive Filters -> next filters pulls output data from the filter or the previous pipeline element pushes new input data to the filter.
Active Filters -> filter is active in a loop, pulling its input from and pushing its output down the pipeline. [2]
References
Shaw, M., & Garlan, D. (1996). Software Architecture: Perspectives on an Emerging Discipline. Pearson.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., & Stal, M. (1996). Pattern-Oriented Software Architecture Volume 1: A System of Patterns. https://dl.acm.org/citation.cfm?id=249013&bw=1
Last updated