Pipes und Filter

Pipes und Filter (englisch pipes-and-filters, auch Datenfluss-System) ist ein Architekturmuster aus dem Bereich der Softwareentwicklung. Es beschreibt die Struktur für Systeme, die Datenströme verarbeiten.

Schematischer Aufbau des Pipes-und-Filter-Musters

Aufbau

Das Bild stellt schematisch ein System dar, das auf dem Muster Pipes und Filter basiert. Das System wird durch mehrere unabhängige Einheiten strukturiert:

Filter
Ein Filter ist ein Verarbeitungsschritt. Jeder Filter hat eine Dateneingabe und eine Datenausgabe. In jedem Verarbeitungsschritt werden die einkommenden Daten umgewandelt. Bei der Umwandlung können den Daten Teile entnommen, hinzugefügt oder auch vollständig ersetzt werden. Die Art der Umwandlung wird durch den Filter bestimmt.
Pipes
Eine Pipe stellt eine Verbindung zwischen den einzelnen Verarbeitungsschritten dar. Der Name lässt sich durch den englischen Begriff für Rohrleitungen (pipes) herleiten.

Im dargestellten Bild ist ein System schematisch dargestellt, bei dem die Daten links ankommen (Dateneingabe) und in mehreren Schritten verarbeitet werden. Das Ergebnis des Gesamtsystems wird rechts wieder ausgegeben (Datenausgabe). Der Ausgang eines Verarbeitungsschrittes ist gleichzeitig der Eingang des nachfolgenden Verarbeitungsschrittes. Das Ergebnis des Systems ist somit abhängig von der Eingabe; der Abhängigkeitsgraph ist linear.

Die Verarbeitungsschritte können immer wieder neu angeordnet werden. Stehen beispielsweise drei verschiedene Filter zur Verfügung, so können (unter der Annahme, dass ein Filter maximal einmal verwendet wird) daraus 15 verschiedene Systeme gebildet werden:

Diese 15 Systeme können auch als eine „Familie“ verwandter Systeme bezeichnet werden.

Durch diese Architektur ergeben sich einige Vorteile:

Varianten

Eine Variante des Pipes-und-Filter-Musters ist das Tee-and-join-Pipeline-System. Hier einige Unterschiede:

Einzelnachweise

  1. ↑ Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal: Pattern-orientierte Softwarearchitektur. Ein Pattern System. Hrsg.: Addison-Wesley. 2. Auflage. 1998, ISBN 978-3-8273-1282-2 (englisch: Pattern-Oriented Software Architecture. Übersetzt von Christiane Löckenhoff).