C   O   R   B   A
  O R B  
 
Home
CORBA
ORBs
Project
The Hawaii Group
Services
Naming
Event
Vendors
Comparison
In Industry
Telecom
Resources
Text
Links
 
 
Common Object Request Broker Architecture
 
Event Service

Summary by Peter Jacobs
Implementation by Tawee Pimsarn


This review of the CORBA Event Service contains a summary and an implementation.


Summary

The OrbixEvents Programmer’s Guide from IONA Technologies PLC was used to prepare this summary.

The guide is available from IONA’s site at http://www.iona.com or by downloading it directly in Adobe Acrobat Reader format.

Summary Contents

Communicating Indirectly
Event Transfer And Communication
Event Example
Programming Interface
Untyped Push
Untyped Pull
Typed Push
Typed Pull


Untyped Push

To support the Push method of untyped events, four IDL interfaces are defined for connection to and disconnection from event channels:

PushSupplier
PushConsumer
ProxyPushConsumer
ProxyPushSupplier

PushSupplier and ProxyPushConsumer allow suppliers to supply events to the event channel. PushConsumer and ProxyPushSupplier allow consumers to receive events from the event channel.

A supplier initiates connection to an event channel by obtaining a reference to an object in the channel of type ProxyPushConsumer. The supplier then invokes the operation connect_push_supplier() on that object, passing a reference to an object of type PushSupplier as a parameter. An AlreadyConnected exception will occur if ProxyPushConsumer is already connected. The supplier uses PushSupplier to disconnect itself from the event channel.


Untyped push supplier and push consumer connect to event channel.


To initially obtain the reference to ProxyPushConsumer, the supplier must perform some event channel administration steps. First, a reference to an EventChannel object in the event channel must be obtained. References to these objects are typically published in the CORBA Naming Service. The supplier then invokes the for_suppliers() operation on the EventChannel object to receive a reference to an object of type SupplierAdmin. A reference to ProxyPushConsumer is then obtained by invoking the obtain_push_consumer() operation on the SupplierAdmin.

A consumer connects to an event channel by first obtaining a reference to a ProxyPushSupplier object in the event channel. It then registers with the channel by invoking the connect_push_consumer() on the ProxyPushSupplier object. A reference to an object of type PushConsumer is passed to the object. Like a supplier connection, an AlreadyConnected exception is available.

Consumers are required to perform event channel administration steps to obtain the initial reference to a ProxyPushSupplier object. Like the supplier, the consumer must first obtain a reference to an EventChannel object and this is typically done through the Naming Service. A for_consumers() operation is then invoked on the EventChannel to obtain a reference to an object of type ConsumerAdmin. An obtain_push_supplier() is then invoked on the ConsumerAdmin for the ProxyPushSupplier reference.


Untyped push transfer through event channel.


To transfer events through an event channel, a supplier invokes the push() operation on a ProxyPushConsumer object in the channel. The data the supplier pushes as a parameter is of type any. The channel ProxyPushSupplier then invokes a push() operation on the PushConsumer object in each registered consumer.


Summary Contents

Communicating Indirectly
Event Transfer And Communication
Event Example
Programming Interface
Untyped Push
Untyped Pull  < Next
Typed Push
Typed Pull


| Top of Page |