Hartmann pipeline

Hartmann pipeline
Paradigm(s) Dataflow programming
Appeared in 1986
Designed by John P. Hartmann
Developer IBM
Stable release 110C0006 (2011-06-06)
Influenced by Pipeline (Unix), APL
Website http://vm.marist.edu/~pipeline

A Hartmann pipeline is an extension of the Unix pipeline concept, providing for more complex paths, multiple input/output streams, and other features. It is an example and extension of Pipeline programming.

A Hartmann pipe is a non-procedural representation of a solution of a data processing problem as a dataflow. The error-prone step of translating the dataflow to a traditional procedural programming language is eliminated. Hartmann pipelines may thus be considered as an executable specification language.

The concept was developed by John Poul Hartmann (born 1946), a Danish engineer with IBM. It is available as a software product CMS/TSO Pipelines for a number of IBM platforms. A somewhat backlevel version is included with every level of VM/ESA and z/VM.



A pipeline consists of a collection of stages, joined together by stage separators. Stages can be written in a variety of languages, and are either filters that process data records or device drivers (sources and sinks) that read data into or out of the pipeline. Unlike other implementations of pipeline programming, Hartmann's design has multiple streams in and out of each stage and can interconnect them non-sequentially. Unlike many programming languages, pipelines have a very small amount of notation, limited to stage separators (typically "|"), pipeline separators (typically ";" or "?"), and label separators (":"). Due to common usage, the diskread stage is also known as < and diskwrite as >, however all stages have names that are words in or make some sense in English.[1]

A simple example that reads a disk file, separates records containing the string "Hello" from those that do not, and writes both sets of records to different disk files can be written as:

(end ;) < input.txt | A: locate /Hello/ | > found.txt ; A: | > notfound.txt

where the < stage reads the input disk file, the two > stages write the output disk files, and the locate stage separates the input stream into two output streams. locate's primary output (records containing Hello) is passed to the first > stage, and its secondary output (records not containing Hello) is passed through the A: connector to the second > stage. The ; divides the specification into 2 pipelines. The collection of pipelines is called a pipeline set.


Some of the salient characteristics that distinguish Hartmann Pipeline from ordinary Unix pipes are:

  • Filters may have multiple inputs and multiple outputs. For example, a selection filter can send the found records down one output pipe and the not found records down another.
  • A linear notation for representing pipeline networks.
  • An interface that allows REXX programs to act as stages.
  • A pacing strategy in the Pipeline supervisor that allows, for example, a stream to be split, say by a selection filter, and the records on the output legs to be processed by other filters, then merged by a join filter and have the record order preserved in result stream.
  • As implied by the previous item, data streams are (generally) not simply buffered and passed along to the next filter. The filters operate in parallel with input and output records handled by the Pipeline supervisor.

Similarity to APL

Programmers familiar with the APL programming language will see some similarities in Hartmann pipelines. It is obvious that the author was influenced by APL; some of the filters have names and functions similar to specific APL primitive functions. Examples include the TAKE filter, which passes a specified number of records, and the DEAL filter, which spreads its input records out across its output streams, in imitation of the APL deal operator.

See also


  1. ^ Melinda Varian (November 1995) (PDF). Plunging Into Pipes. http://vm.marist.edu/~pipeline/plunge.pdf. Retrieved 2006-11-08. 

External links

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Hartmann — is a surname and may refer to: * Hartmann von Aue, poet * Eduard Von Hartmann, German philosopher * Erich Hartmann, German fighter ace (1922 1993) * Felix Cardinal von Hartmann, German prelate * Georges Hartmann, French dramatist and music… …   Wikipedia

  • Pipeline programming — When a programming language is originally designed without any syntax to nest function calls, pipeline programming is a simple syntax change to add it. The programmer connects notional program modules into a flow structure, by analogy to a… …   Wikipedia

  • Pipeline (computing) — In computing, a pipeline is a set of data processing elements connected in series, so that the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time sliced fashion; in that case,… …   Wikipedia

  • Pipeline (Unix) — In Unix like computer operating systems, a pipeline is the original software pipeline : a set of processes chained by their standard streams, so that the output of each process ( stdout ) feeds directly as input ( stdin ) of the next one. Each… …   Wikipedia

  • Python Pipelines — is a cross platform implementation of Hartmann pipeline, written in Python.Pipelines lets you solve a complex problem by breaking it up into a series of smaller, less complex programs. These simple programs, also called stages, can then be hooked …   Wikipedia

  • Specification language — A specification language is a formal language used in computer science.Unlike most programming languages, which are directly executable formal languages used to implement a system, specification languages are used during systems analysis,… …   Wikipedia

  • Energiewirtschaft Russlands — Die Energiewirtschaft Russlands hat für die Wirtschaft Russlands und für die internationale Energieversorgung herausragende Bedeutung. Russland verfügt insbesondere über große Vorkommen an Erdöl und Erdgas, deren Fördermengen den inländischen… …   Deutsch Wikipedia

  • JERUSALEM — The entry is arranged according to the following outline: history name protohistory the bronze age david and first temple period second temple period the roman period byzantine jerusalem arab period crusader period mamluk period …   Encyclopedia of Judaism

  • Jörg Bofinger (Archäologe) — Jörg Bofinger (* 24. Dezember 1967 in Stuttgart Bad Cannstatt) ist deutscher Archäologe (Fachgebiet Ur und Frühgeschichte) und Denkmalpfleger. Zugleich ist er Sachbuchautor und Leiter des Referats 84 Archäologische Denkmalpflege im Landesamt für… …   Deutsch Wikipedia

  • Iraq — /i rak , i rahk /, n. a republic in SW Asia, N of Saudi Arabia and W of Iran, centering in the Tigris Euphrates basin of Mesopotamia. 22,219,289; 172,000 sq. mi. (445,480 sq. km). Cap.: Baghdad. Also, Irak. * * * Iraq Introduction Iraq Background …   Universalium

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.