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


Typed Push

Like untyped communication, four IDL interfaces support connection to and disconnection from the event channel for the Push method:

PushSupplier
TypedPushConsumer
TypedProxyPushConsumer
ProxyPushSupplier

The PushSupplier and TypedProxyPushConsumer interfaces allow suppliers to supply events to a channel, and TypedPushConsumer and ProxyPushSupplier allow consumers to receive events from a channel.

A typed push supplier initiates a connection to an event channel by obtaining a reference to a TypedProxyPushConsumer object in the event channel. The supplier invokes the connect_push_supplier() operation on the TypedProxyPushConsumer object, passing a reference to an object of type PushSupplier as a parameter.


Typed push supplier and push consumer connect to event channel.


The initial reference to TypedProxyPushConsumer is obtained through event channel administration steps. First, a reference to a TypedEventChannel object in the event channel must be obtained. Typically, this reference is available through the CORBA Naming Service. A for_suppliers() operation is then invoked on the TypedEventChannel and a reference to an object of type TypedSupplierAdmin is returned. The push supplier then invokes the obtain_typed_push_consumer() operation on TypedSupplierAdmin to return a reference to TypedProxyPushConsumer.

A typed push 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() with a parameter of type TypedPushConsumer on the ProxyPushSupplier.

Event channel administration steps provide the reference to ProxyPushSupplier. After a reference to a TypedEventChannel object is obtained, a for_consumers() operation is invoked on TypedEventChannel to receive a reference to an object of type TypedConsumerAdmin. An obtain_typed_push_supplier() is then invoked on TypedConsumerAdmin for the ProxyPushSupplier reference.

When typed events are transferred through the event channel using Push, the TypedProxyPushConsumer is of a type agreed on by the supplier and the event channel. The agreement is established when TypedProxyPushConsumer is set up during event channel administration.


Typed push transfer through event channel.


Events are transferred by the supplier by invoking the get_typed_consumer() operation on the TypedProxyPushConsumer object. get_typed_consumer() returns an object reference of CORBA::Object which supports the interface set up for TypedProxyPushConsumer. The supplier must further narrow this to a reference of an object type that supplies events. Events are then supplied by invoking operations defined in the narrowed reference on the object reference returned by get_typed_consumer().


Summary Contents

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


| Top of Page |