Skip to main content
Log in

Pipelines: Modelling a software architecture through relations

  • Original Paper
  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract.

A pipeline is a popular architecture which connects computational components (filters) through connectors (pipes) so that computations are performed in a stream like fashion. The data are transported through the pipes between filters, gradually transforming inputs to outputs. This kind of stream processing has been made popular through UNIX pipes that serially connect independent components for performing a sequence of tasks. We show in this paper how to formalize this architecture in terms of monads, hereby including relational specifications as special cases. The system is given through a directed acyclic graph the nodes of which carry the computational structure by being labelled with morphisms from the monad, and the edges provide the data for these operations. It is shown how fundamental compositional operations like combining pipes and filters, and refining a system by replacing simple parts through more elaborate ones, are supported through this construction.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ernst-Erich Doberkat.

Additional information

Received: 23 September 2002 / 4 May 2003

Rights and permissions

Reprints and permissions

About this article

Cite this article

Doberkat, EE. Pipelines: Modelling a software architecture through relations. Acta Informatica 40, 37–79 (2003). https://doi.org/10.1007/s00236-003-0121-z

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-003-0121-z

Keywords

Navigation