Java Reference
In-Depth Information
Szenario 4 - Zwei aktive Filterelemente durch eine Pipe asynchron entkoppelt
Typischerweise gibt es bei Pipelines Szenarien, die zwei oder mehr aktive Filterele-
mente enthalten. In Szenario 4 wird eine Pipeline mit drei Filtern, einer Pipe, einer
Quelle und einer Senke beschrieben. Dabei ist ein Filter passiv und 2 Filter sind aktiv.
Eine Pipe dient als Entkopplungselement zwischen den beiden aktiven Filtern. Quelle,
Filter 1 und die Senke sollen hier passive Elemente sein, die aufgerufen werden. Die
aktiven Filter 2 und 3 werden durch eine Pipe - wie bereits erwähnt - asynchron ent-
koppelt. Die anderen Pipes können weggelassen werden, weil hier nicht zwei Prozes-
se asynchron entkoppelt werden müssen.
Das Szenario 4 ist in Bild 5-19 zu sehen. Als erstes erfolgt ein Zugriff des aktiven
Filters 3 auf die benachbarte Pipe mit read() . Da diese noch keine Daten enthält,
muss Filter 3 so lange warten, bis neue Daten in der Pipe vorhanden sind. Asynchron
zum genannten Vorgang fordert Filter 2 nach dem Pull-Prinzip mit read() Daten bei
Filter 1 an. Dieser Filter hat keine Daten und leitet die Anfrage an die Quelle weiter.
Daraufhin werden die Ausgabedaten der Quelle nacheinander von Filter 1 und Filter 2
bearbeitet und schließlich in der Pipe gespeichert. Filter 3 wartet bereits auf neue Da-
ten, wie zu Beginn beschrieben. Die Pipe enthält nun Daten und damit ist das Lesen
von Filter 3 abgeschlossen. Nachdem Filter 3 die so erhaltenen Daten abgearbeitet
hat, werden sie an die Senke weitergegeben. Hier das entsprechende Sequenzdia-
gramm:
:Quelle
:Filter 1
:Filter 2
:Pipe
:Filter 3
:Senke
read()
read()
read()
f1()
read() : result
read() : result
f2()
write()
read() :
result
write()
f3()
write()
write()
Bild 5-19 Asynchrone Entkopplung von parallelen Filtern
5.2.4 Bewertung
5.2.4.1 Vorteile
Die folgenden Vorteile werden gesehen:
x Das Hauptmerkmal des Musters Pipes and Filters ist die Flexibilität gegenüber Än-
derungen oder Erweiterungen. Filter können oft auf einfache Weise innerhalb einer
Pipeline ausgetauscht oder vertauscht werden. Wie einfach der Austausch eines
Search WWH ::




Custom Search