next up previous contents
Next: Der CORBA Concurrency Control Up: 2.3.1 Die CORBA Object Previous: Der CORBA Naming Service

Der CORBA-Event-Service

  Im Event Service ([OMG96]) werden die Regeln für das Versenden und Empfangen von asynchronen Ereignismeldungen zwischen Objekten festgelegt. Objekte, welche Events erzeugen und verschicken, werden Supplier, Objekte, welche diese Events empfangen und verarbeiten, Consumer genannt. Für den Austausch der Ereignismeldungen zwischen Supplier und Consumer werden übliche CORBA-Requests verwendet. Dabei stehen zwei Möglichkeiten zur Verfügung: In beiden Modellen beruht die Event-Kommunikation zwischen Objekten also auf Aufrufen spezieller push- und pull-Methoden. Bei der generischen Kommunikation von Ereignismeldungen haben diese Methoden jeweils nur einen Parameter vom Datentyp any. Im Gegensatz dazu können bei der typisierten Kommunikation mit bestimmten Einschränkungen beliebige ,,anwendungsspezifische`` Parameter verwendet werden. Bei den push-Methoden eines TypedConsumers sind keine Rückgabewerte und nur in-Parameter erlaubt. Bei den pull- bzw. try_pull-Methoden des dazugehörigen TypedSuppliers (Pull-Modell) sind entsprechend nur out-Parameter zulässig. Vorteil bei der typisierten Event-Kommunikation ist die Möglichkeit, verschiedene Arten von Ereignismeldungen zu definieren, zu unterscheiden und zu selektieren. Dadurch eignet sich diese Methode besonders für das Netz-, System- und Anwendungsmanagement.

Für die Kommunikation von beliebig vielen Suppliern mit beliebig vielen Consumern werden sogenannte Event Channels eingesetzt. Supplier können Ereignismeldungen statt direkt an einen Consumer an einen Event Channel schicken. Jedem Consumer-Objekt, das sich bei diesem Event Channel registriert hat, wird die Ereignismeldung weitergereicht. Der Event Channel ruft hierzu wiederum Methoden der Consumer auf (Push-Modell). Der Event Channel selbst ist also sowohl Supplier als auch Consumer von Events.

Der Event Channel wird inkrementell erzeugt, d. h. bei der Erzeugung sind noch keine Supplier/Consumer beim Event Channel registriert. Diese können sich nach und nach beim Event Channel anmelden. Die Anmeldung erfolgt durch Austausch von Objektreferenzen. Ein Consumer gibt dem Event Channel bei der Registrierung die Schnittstelle bekannt, die der Event Channel für das Weiterreichen der Events verwenden kann. Damit stehen die Events, die ein Consumer empfangen will, implizit fest. Analog gehen die Supplier von Events vor, um dem Event Channel zu sagen, welche Events sie ihm schicken wollen. Wie die Anmeldung im Detail erfolgt, kann in [OMG96] nachgelesen werden.


next up previous contents
Next: Der CORBA Concurrency Control Up: 2.3.1 Die CORBA Object Previous: Der CORBA Naming Service
Copyright Munich Network Management Team