Pipes and Filters
Dieser Beitrag ist eine Begriffserklärung zum Architekturmuster Pipes and Filters – inklusive Prüfungsfragen und Tags.
In a Nutshell
Daten fließen durch eine Kette von Verarbeitungsschritten (Filter), verbunden über standardisierte Schnittstellen (Pipes).
Kompakte Fachbeschreibung
Jeder Filter ist eine unabhängige Verarbeitungseinheit: Eingabe → Transformation → Ausgabe. Pipes transportieren Daten zwischen Filtern. Das Muster eignet sich für Konvertierung, Validierung, Kompilierung, Audio/Video-Pipelines oder ETL.
Prüfungsrelevante Stichpunkte
- Filter sind unabhängige Verarbeitungseinheiten
- Pipes verbinden Filter linear/verzweigt
- Gut für Streaming- oder Batch-Verarbeitung
- Praxis: Compiler-Phasen, Log-Verarbeitung
- Security: Validierungs-/Sanitisierungsfilter
- Wirtschaftlichkeit: wiederverwendbare Filter
- Modular dokumentieren (IHK-relevant)
Kernkomponenten
- Quelle (Datei/Stream/API)
- Filter (Validierung)
- Filter (Transformation)
- Filter (Aggregation)
- Pipes zwischen Filtern
- Datenformat zwischen Filtern
- Fehlerbehandlung pro Filter
- Logging
- Parallelisierung
- Ziel (DB/Datei)
Praxisbeispiel (Log-Verarbeitung)
Pipe-In: liest Log-Datei
Filter 1: entfernt Leerzeilen
Filter 2: extrahiert Fehler
Filter 3: zählt Fehler pro Typ
Pipe-Out: schreibt Ergebnis in CSV
Vorteile und Nachteile
Vorteile
- Modular und wiederverwendbar
- Gut testbar
- Einfach erweiterbar
- Parallele Verarbeitung möglich
Nachteile
- Overhead bei kleinen Datenmengen
- Fehlerbehandlung über viele Filter hinweg komplex
- Einheitliches Datenformat nötig
Typische Prüfungsfragen (mit Kurzantwort)
- Was ist Pipes and Filters? Verkettete Filter verarbeiten Daten sequentiell.
- Wofür geeignet? Datenströme, ETL, Compiler, Streaming.
- Warum testfreundlich? Jeder Filter ist isoliert testbar.
Freie Antwort
Für Projektdokumentationen ist das Muster ideal, wenn du Import/Transformation/Analyse als Pipeline aufbaust. Es lässt sich gut mit Datenflussdiagrammen darstellen.
Lernstrategie
- Mini-Kette CSV → Filter → JSON bauen.
- Kleine ETL-Pipeline implementieren.
- Filterprozess als Diagramm dokumentieren.
- Schnittstellenformate klar definieren.