Java Reference
In-Depth Information
oder Betriebssystem-Prozess, gestartet und fordern zyklisch oder ereignisorientiert
Eingabedaten an.
Datensenke
Eine Datensenke ist der Empfänger von Daten. Senken können sich wie Filter und
Quellen
aktiv
oder
passiv
verhalten. Aktiv verhält sich eine Senke, wenn sie zyklisch
oder ereignisbasiert Daten anfordert (Pull-Prinzip).
5.2.3.3 Dynamisches Verhalten
In diesem Kapitel werden verschiedene
Szenarien
des Musters Pipes and Filters auf-
gezeigt. Ein Filter
X
arbeitet mit seiner Funktion
fX()
auf den Daten.
X
steht hierbei für
die Nummer des Filters. In den folgenden Szenarien 1 bis 3 gibt es jeweils nur ein ein-
ziges aktives Element. Somit besteht keine Notwendigkeit, Elemente über einen Puffer
asynchron zu entkoppeln. Auf eine Pipe kann also in diesen Szenarien verzichtet wer-
den.
Szenario 1 - Pull-Prinzip
Das erste Szenario enthält eine
Pipeline
, die nach dem
Pull-Prinzip
arbeitet. Die
Senke
ist
aktiv, alle Filter und die Quelle
sind in diesem Szenario
passiv.
Die Senke
startet die Abarbeitung und fragt dabei mit
read()
beim Filter vor ihr an. Da dieser
keine Daten hat, fragt dieser seinen Vorgänger, dieser wieder bei seinem Vorgänger
etc. Die Anfrage wird also von Vorgänger zu Vorgänger weitergereicht, bis die Anfrage
ein Element der Pipeline erreicht, das Daten enthält, nämlich die Quelle. Dies ist in fol-
gendem Bild dargestellt:
:
Quelle
:
Filter1
:
Filter2
:
Senke
read()
read()
read()
f1()
read() : result
f2()
read() : result
read() : result
Bild 5-16 Sequenzdiagramm für das Pull-Prinzip
Szenario 2 - Push-Prinzip
Das Szenario 2 betrachtet eine
aktive Quelle
, zwei
passive Filter
und eine
passive
Senke
. Die
aktive Quelle
sendet ereignisbasiert oder zyklisch Daten. Die Filter und
die Senke sind passiv, d. h., sie fordern keine Daten an (siehe Bild 5-17). Das gezeigte
Verhalten der Pipeline wird
Push-Prinzip
genannt.
Search WWH ::
Custom Search