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