Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Pipeline (software)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Chain of software processing elements}} {{About|software pipelines in general|the original implementation for shells|Pipeline (Unix)}} {{For-text|the broader concept of pipelines as they occur in computing|[[Pipeline (computing)]]}} In [[software engineering]], a '''pipeline''' consists of a chain of processing elements ([[Process (computing)|processes]], [[Thread (computer science)|threads]], [[coroutine]]s, [[Subroutine|functions]], ''etc.''), arranged so that the output of each element is the input of the next. The concept is analogous to a physical [[Pipeline transport|pipeline]]. Usually some amount of [[Buffer (computer science)|buffering]] is provided between consecutive elements. The information that flows in these pipelines is often a [[Stream (computing)|stream]] of [[Record (computer science)|records]], [[Byte stream|bytes]], or [[Bitstream|bits]], and the elements of a pipeline may be called [[Filter (software)|filters]]. This is also called the '''pipe(s) and filters''' [[software design pattern|design pattern]] which is [[Monolithic application|monolithic]]. Its advantages are simplicity and low cost while its disadvantages are lack of [[Elasticity (system resource)|elasticity]], [[Software fault tolerance|fault tolerance]] and [[scalability]].<ref>{{Cite book |title=Fundamentals of Software Architecture: An Engineering Approach |publisher=O'Reilly Media |year=2020 |isbn=978-1492043454}}</ref> Connecting elements into a pipeline is analogous to [[function composition (computer science)|function composition]]. Narrowly speaking, a pipeline is linear and one-directional, though sometimes the term is applied to more general flows. For example, a primarily one-directional pipeline may have some communication in the other direction, known as a ''[[return channel]]'' or ''backchannel,'' as in [[the lexer hack]], or a pipeline may be fully bi-directional. Flows with one-directional trees and [[directed acyclic graph]] topologies behave similarly to linear pipelines. The lack of cycles in such flows makes them simple, and thus they may be loosely referred to as "pipelines".
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)