MusterKapitel II · Stile & Muster · Baustein 8 von 8

Pipe & Filter

Pipe & Filter verarbeitet Daten durch eine Folge unabhängiger Schritte. Jeder Filter übernimmt Eingaben in einem bekannten Format und liefert definierte Ausgaben.

  1. FilterEin Schritt mit genau einer Aufgabe.
  2. ZwischenformatDefinierte Ein- und Ausgabe je Filter.
  3. ZusammensteckbarFilter einfügen, ohne andere zu ändern.

Einordnung

Warum das wichtig ist

Ein einziger großer Importschritt verbirgt, wo ein Fehler entsteht. Pipe & Filter zerlegt die Verarbeitung in Filter mit klaren Zwischenformaten, die sich kombinieren lassen, bekannt aus Unix-Pipes (cat import.csv | grep … | sort) und ETL. Für fachliche Abläufe mit Rücknahme über mehrere Transaktionen siehe Saga.

Dieser Baustein erklärt lineare Datenverarbeitung. Für fachliche Abläufe mit Rücknahme über mehrere Transaktionen siehe Saga.

Auf einen Blick · Filterkette mit Pipes

Daten fließen von der Quelle durch Filter 1 und 2 zur Senke; Pipes verbinden die Schritte, jeder Filter hat Ein- und Ausgabe.
Shop-Beispiel · Zeile durch die Pipeline

Eine Zeile durch die Pipeline schicken

Der Katalog importiert jeden Morgen eine CSV-Datei mit neuen Tassen. Ungültige Zeilen sollen protokolliert werden, ohne gültige Produktdaten zu verfälschen.

So liest du das Bild

  1. Filter Die Stationen Lesen, Prüfen, Normalisieren und Katalog, jede mit eigenem Ergebnis.
  2. Zwischenformat Unter jedem Filter das Format, etwa Rohdatensatz oder gültiger Datensatz.
  3. Zusammensteckbar „+ Filter Dubletten entfernen“ steckt sich zwischen Prüfen und Normalisieren.

Was nach jedem Filter vorliegt

  1. LesenRohdatensatz

    nr T-7, preis "24,95 EUR"
  2. Prüfengültiger Datensatz

    Pflichtfelder und Preis vorhanden
  3. NormalisierenProduktimport

    preis Geldbetrag(2495 Cent, EUR)
  4. Katalogim Katalog

    T-7 angelegt

Die Zeile läuft durch alle Filter; erst Normalisieren macht aus dem Text einen Geldbetrag in Cent.

Zeilen illustrativ

Wähle eine CSV-Zeile und schalte bei Bedarf den Dubletten-Filter zu; die Zeilen sind illustrativ.

Nutzen & Grenzen

Hilft, wenn

  • Geordnete Transformationen erhalten durch einzeln prüfbare Filter klare Übergaben.
  • Stabile Ein- und Ausgabeformate erlauben es, Verarbeitungsschritte wiederzuverwenden oder auszutauschen.
  • Ein eigener Fehlerpfad macht die Ursache fehlerhafter Datensätze sichtbar und hält die übrige Verarbeitung handlungsfähig.

Grenzen

  • Viele Verzweigungen und Rücksprünge sprengen die lineare Kette; dann braucht es Prozesssteuerung, siehe Orchestrierung.
  • Teilzustände: Fällt ein späterer Filter aus, ist vorher schon etwas geschrieben; lege Wiederaufnahmepunkte fest.
  • Overhead je Übergabe: Bei sehr kleinen Schritten lohnt die Zerlegung nicht.

In der Praxis

  1. Definiere für jeden Filter Eingabe, Ausgabe und Fehlerform. Stabile Zwischenformate erlauben gezielte Tests und zeigen, welcher Verarbeitungsschritt für einen Wert zuständig ist.
  2. Begrenze Filter auf eine Transformation und halte gemeinsamen veränderlichen Zustand aus der Kette heraus. Dadurch kann ein fehlerhafter Schritt isoliert geprüft und ersetzt werden.
  3. Lege Fehlerablage und Wiederaufnahme fest und miss Rückstand je Stufe. Für zeitliche Entkopplung siehe Asynchrone Kommunikation; Laststeuerung vertieft Backpressure.
Ausführliche Erklärung lesen

Eine Pipeline besteht aus Filtern mit klar definierten Ein- und Ausgaben. Jeder Filter übernimmt einen Verarbeitungsschritt; eine Pipe übergibt dessen Ergebnis an den nächsten. Die Reihenfolge und Form der Übergaben bestimmen den Ablauf.

Kleine, zustandsarme Filter lassen sich gezielt testen und austauschen. Fehlerpolitik, Wiederaufnahme und Nebenwirkungen müssen dennoch über die gesamte Pipeline abgestimmt sein. Bei vielen Verzweigungen, Rücksprüngen oder lang laufenden Zuständen braucht der Ablauf eine explizite Prozesssteuerung.

Asynchrone Kommunikation entkoppelt Zeitpunkte zwischen Verarbeitungsschritten; Backpressure regelt, wie eine Kette Überlast an vorgelagerte Stufen zurückmeldet.

Das bekannteste Beispiel sind Unix-Pipes, in denen kleine Programme über Standardein- und -ausgabe verbunden werden. ETL-Strecken und Streams-APIs wie Java Streams folgen derselben Idee. Für Nachrichten beschreiben die Enterprise Integration Patterns das Muster mit Kanälen zwischen den Filtern.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Zeile 2 hat keinen Preis. Wo endet sie, und was passiert mit ihr?

    Lösung mit Begründung ansehen

    Im Filter Prüfen. Sie wird mit Zeilennummer ins Fehlerprotokoll geschrieben; Normalisieren und Katalog sehen sie nie.

  2. AnwendenAuf eine neue Lage übertragen

    Neue Regel: Preise unter 1 EUR werden abgelehnt. In welchen Filter gehört sie?

    Lösung mit Begründung ansehen

    In Prüfen, denn dort wird über gültig oder ungültig entschieden. Lesen, Normalisieren und Katalog bleiben unverändert.

  3. BewertenEine Alternative abwägen

    Soll Prüfen und Normalisieren zu einem Schritt zusammengelegt werden? Wie wägst du ab?

    Lösung mit Begründung ansehen

    Ein Schritt spart eine Übergabe. Getrennt bleibt aber sichtbar, wo ein Fehler entsteht, und Normalisieren verarbeitet nur Geprüftes. Empfehlung: getrennt lassen, solange beide Schritte eigene Regeln haben.

Vertiefen

Diese optionalen Vertiefungen ergänzen das Lernziel dieser Seite.

Blackboard

Das Blackboard-Muster bietet eine gemeinsame Wissensbasis, zu der spezialisierte Komponenten schrittweise Beiträge liefern, bis eine Lösung entsteht. Es eignet sich für Aufgaben, bei denen sich die Bearbeitungsreihenfolge aus dem verfügbaren Wissen ergibt und mehrere Ansätze zusammenwirken. Anders als eine Pipe-filter-Kette schreibt es keine lineare Reihenfolge vor; Beiträge, Konflikte und Abschlussbedingungen brauchen klare Regeln.

Zum AusprobierenVergleiche im Shop eine lineare Rabattberechnung mit einem Blackboard für komplexe Produktempfehlungen: Mehrere Komponenten könnten Produktwissen beitragen und eine Auswahl verfeinern. Benenne, welche Komponente welchen Beitrag veröffentlichen darf, wie widersprüchliche Vorschläge behandelt werden und woran die Lösung als vollständig gilt.

Weiter im Lernpfad

Damit hast du Stile & Muster durchlaufen. Weiter geht es mit Daten & Zustand.