next up previous contents
Next: 5.4.3 Empfang von Ereignismeldungen Up: 5.4 Implementierung Previous: Vergleich und Bewertung

5.4.2 Die Klasse Event_Dispatcher

Wie im vorigen Abschnitt erklärt wurde, besteht die Aufgabe von Event-Channel-Objekten darin, Events von Suppliern zu empfangen und sie an registrierte Consumer weiterzuleiten. Die CORBA-Event-Service Spezifikation enthält eine große Anzahl von IDL-Definitionen für die Verwaltung und Benutzung von Event-Channel-Objekten. Dadurch wird eine breite Vielfalt von Kommunikationsmodellen (Push/Pull, generisch/typisiert) ermöglicht.

Eine vollständige Implementierung der im CORBA-Event-Service definierten Schnittstellen hätte den Rahmen der Aufgabenstellung gesprengt und wurde daher nicht durchgeführt. Statt dessen wurde die Objektklasse Event_Dispatcher entwickelt. Ein Event_Dispatcher kann die gleiche Funktionalität erbringen wie ein Event-Channel, unter folgenden Voraussetzungen:

Die Klasse Event_Dispatcher ist von der Klasse Event_consumer abgeleitet und stellt zusätzliche Methoden zum Registrieren und Deregistrieren von Consumer-Objekten bereit.

interface Event_Dispatcher : Event_consumer
{ 
  void register_consumer (in Event_consumer consumer);
  void consumer_disconnect (in Event_consumer consumer);
};

Dadurch, daß der Event_Dispatcher von der Klasse Event_consumer abgeleitet wurde, ist er ein Push-Consumer für die darin definierten Events.

Ein Event_Dispatcher hat eine Liste der Objektreferenzen aller registrierten Consumer. Für diese Liste wurde die Collection-Class somf_TDeque verwendet (eine Liste von Objekten). Die Funktionalität eines Event_Dispatchers besteht darin, daß er jede Ereignismeldung, die er durch den Aufruf einer seiner von Event_consumer geerbten Methoden empfängt, an alle registrierten Consumer weiterleitet.

Der Event_Dispatcher dient somit einerseits als zentrales Consumer-Objekt für alle Supplier von Systems-Management-Events und ist andererseits der Supplier für alle seine registrierten Consumer-Objekte (vgl. Abb. 5.6).


 
Abbildung 5.6: Die Weiterleitung von Ereignismeldungen durch Event_Dispatcher
\begin{figure}
\begin{center}
\mbox { \epsffile{bilder/evdisp.eps} }\end{center}\end{figure}


next up previous contents
Next: 5.4.3 Empfang von Ereignismeldungen Up: 5.4 Implementierung Previous: Vergleich und Bewertung
Copyright Munich Network Management Team