Java Reference
In-Depth Information
Die Quelle startet die Abarbeitung und schreibt mit
write()
in den ersten passiven
Filter. Nach der Verarbeitung schreibt der erste passive Filter in den zweiten und die-
ser in die Senke. Ein Vorteil dieses Szenarios besteht darin, dass ein Filter nur dann
aktiv ist, wenn wirklich Daten zur Bearbeitung anstehen. Das folgende Bild zeigt dieses
Szenario:
:Quelle
:Filter1
:Filter2
:Senke
write()
write()
f1()
write()
f2()
write()
write()
write()
Bild 5-17 Sequenzdiagramm für das Push-Prinzip
Szenario 3 - Pull- und Push-Prinzip gemischt
Szenario 3 behandelt exemplarisch eine Pipeline, die einen
aktiven Filter
(Filter 2)
enthält. Die
Quelle
, die
Senke
und der
Filter 1
verhalten sich
passiv
. Dabei wird das
Push-
und
das
Pull-Prinzip
gemischt
angewandt, siehe Bild 5-18.
Der aktive Filter 2 fordert zyklisch Daten bei seinem Vorgänger an (
Pull-Prinzip
). Der
passive Vorgänger wird von Filter 2 synchron mit
read()
aufgerufen. Die Anfrage wird
mit
read()
weitergeleitet, bis sie ein Element der Pipeline erreicht, das Daten enthält,
hier die Quelle. Diese Weiterleitung entspricht dem Pull-Prinzip. Die Quelle antwortet
auf das
read()
und stößt mit ihrem Rückgabewert Filter 1 an. Dieser Filter arbeitet
genau einmal und antwortet nach seiner Verarbeitung mit seinem Rückgabewert. Der
Aufruf von
write()
durch Filter 2 entspricht dem
Push-Prinzip
. Hier das Sequenz-
diagramm für dieses Szenario:
:Quelle
:Filter 1
:Filter 2
:Senke
read()
read()
read() : result
f1()
read() : result
f2()
write()
write()
Bild 5-18 Sequenzdiagramm Pull- und Push-Prinzip gemischt
Search WWH ::
Custom Search