Java Reference
In-Depth Information
gesendete Nachricht nun tatsächlich aktiv werden. Auß erdem werden bei RRiBbit für jede
Aktivierung Threads erzeugt, wie später noch näher erläutert wird. Die Thread-Erzeugung
stellt einen deutlichen Mehraufwand dar.
Mit So ware-Bussen lassen sich übrigens auch verteilte Anwendungen realisieren. Es gibt
Busimplementierungen, die sich über mehrere Rechner erstrecken können. Alles, was auf
einem Bus in einem Rechner gesendet wird, wird an die anderen Rechner weitergeleitet und
dort auf den jeweiligen Bus gelegt. RRiBbit unterstützt ebenfalls verteilte Bussysteme.
Im Folgenden sehen wir uns RRiBbit etwas genauer an, wobei wir uns auf eine rein lokale
Busbenutzung beschränken.
152 Komponentenmodell von RRiBbit
Auf den Web-Seiten zu RRiBbit wird angegeben, dass RRiBbit für „Request-Response-Bus“
steht. Dies erklärt die Großbuchstaben in RRiBbit. Ob die Kleinbuchstaben auch etwas zu
bedeuten haben und gegebenenfalls was, entzieht sich meiner Kenntnis. Ich vermute, dass
sie eingefügt wurden, um die Abkürzung besser aussprechen zu können. Der Name „Request-
Response-Bus“ weist auf eine ganz entscheidende Eigenscha des RRiBbit-Frameworks hin:
Anders als bei einem Hardware-Bus geht es nicht um das Senden von Nachrichten, sondern
die Leitidee von RRiBbit ist das Aufrufen von Methoden über den Bus. Das heißt, dass beim
Senden nicht eine Nachricht verschickt und irgendwann später asynchron zum Sender die
Methodenaufrufe durchgeführt werden, sondern bei RRiBbit handelt es sich um ein synchro-
nes Senden, wobei der Aufruf der Sendemethode erst dann zurückkehrt, wenn alle dadurch
angesprochenen Methoden abgearbeitet worden sind. Alle passenden Methoden werden
übrigens parallel aufgerufen (jeder Aufruf wird in einem eigenen Thread ausgeführt). Wie
oben schon erwähnt können während eines Sendevorgangs, der länger dauern kann, wenn
die aufgerufenen Methoden länger brauchen, parallel weitere Sendeaufrufe von anderen
Threads durchgeführt werden, u. a. auch von den Methoden, die durch das Senden aktiv
geworden sind. Der Rückgabewert, den eine durch das Senden aufgerufene Methode zurück-
gibt, kann vom Sendeaufruf an den Aufrufer zurückgeliefert werden.
Eine Komponente ist bei RRiBbit, wie bei Java Beans und bei Spring, ein Objekt bzw. eine
Klasse. Beides kann dem Framework als Komponente übergeben werden. Wenn man
Objekte übergibt, ist es möglich, mehrere Objekte derselben Klasse zu übergeben. Damit
kann es also zu einer Klasse mehrere Komponentenobjekte geben. Wenn eine Klasse statt
eines Objekts an das RRiBbit-Framework übergeben wird, dann erzeugt das Framework ein
Objekt dazu. Dies ist allerdings nur dann möglich, falls die Klasse einen parameterlosen
Konstruktor besitzt. Die Klasse einer Komponente muss ansonsten keine weiteren Bedin-
gungen erfüllen. Eine Methode, die über den Request-Response-Bus aufgerufen werden
kann, muss lediglich mit der Annotation @Listener versehen werden, wobei diese Annota-
tion optional den String-Parameter hint haben kann.
Für das Senden einer Nachricht über den Ereignisbus gibt es mehrere Varianten. In allen
Fällen kann man eine beliebige Anzahl von Parametern beliebigen Typs angeben (dies wird
möglich durch Varargs-Parameter des Typs Object). Eine mit @Listener annotierte Methode
 
Search WWH ::




Custom Search