next up previous contents
Next: 5.2.3 Generische und typisierte Up: 5.2 Der CORBA-Event-Service Previous: 5.2.1 Push- und Pull-Kommunikation

5.2.2 Event-Channels

Event-Channels sind Objekte, die zur Entkopplung der Kommunikation zwischen Supplier- und Consumer-Objekten eingesetzt werden. Supplier versenden Ereignismeldungen an einen Event-Channel, der sie wiederum an Consumer weiterleitet. Der Event-Channel selbst hat damit sowohl die Rolle eines Consumers als auch eines Suppliers.


 
Abbildung 5.2: Funktionsweise von Event-Channels
\begin{figure}
\begin{center}
\mbox { \epsffile{bilder/evchan.eps} }\end{center}\end{figure}

Über einen Event-Channel können beliebig viele Supplier und Consumer ohne direkte Interaktion kommunizieren. Für die Kommunikation zwischen einem Supplier und einem Event-Channel bzw. einem Consumer und einem Event-Channel kann das Push-Modell oder das Pull-Modell angewendet werden.

Die IDL-Definition eines Event-Channels besteht aus folgenden Methoden:

interface EventChannel {
  ConsumerAdmin for_consumers();
  SupplierAdmin for_suppliers();
  void destroy();
};
Die for_consumers-Methode liefert ein ConsumerAdmin-Objekt. Dieses Objekt kann von Consumern verwendet werden, um sich selbst beim Event-Channel zu registrieren. Die Klasse ConsumerAdmin hat folgende IDL-Definition:
interface ConsumerAdmin {
  ProxyPushSupplier obtain_push_supplier();
  ProxyPullSupplier obtain_pull_supplier();
};
Die Methode obtain_pull_supplier liefert ein Proxy-Objekt für einen PullSupplier (der eigentliche Supplier ist der Event-Channel). Von diesem Objekt kann der Consumer durch Aufruf der pull-Methode die Übermittlung einer Ereignismeldung anfordern.

Analog erfolgt die Registrierung von Suppliern beim Event-Channel. Die Methode destroy des Event-Channels dient zum Zerstören des Objekts.

In einer CORBA-Umgebung können beliebig viele Event-Channel-Objekte existieren. Die Hauptfunktion des Event-Channels ist die Entkopplung von der direkten Interaktion zwischen Supplier und Consumer. Weitere Funktionalität, wie z.B. Filtern oder Speichern von Ereignismeldungen, ist implementierungsabhängig und wird im Event-Service nicht spezifiziert. Es werden nur die nach außen sichtbaren Schnittstellen eines Event-Channel-Objekts definiert.


next up previous contents
Next: 5.2.3 Generische und typisierte Up: 5.2 Der CORBA-Event-Service Previous: 5.2.1 Push- und Pull-Kommunikation
Copyright Munich Network Management Team