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

  1. Shaw, M., & Garlan, D. (1996). Software Architecture: Perspectives on an Emerging Discipline. Pearson.

  2. 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