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 Pull

Four IDL interfaces similar to the Untyped Push are available for event channel connection and disconnection in the Pull method:

PullSupplier
PullConsumer
ProxyPullConsumer
ProxyPullSupplier

Consumers use PullConsumer and ProxyPullSupplier to request events from the channel, and event channels use PullSupplier and ProxyPullConsumer to request events from suppliers. PullConsumer and ProxyPullConsumer are also common to the typed method.

A consumer initiates connection by obtaining a reference to an object in the channel of type ProxyPullSupplier. By invoking the connect_pull_consumer() operation on the ProxyPullSupplier object and passing it a reference to an object of type PullConsumer, the consumer can be notified if the event channel terminates the connection. An AlreadyConnected exception is available for this connection.


Untyped pull supplier and pull consumer connect to event channel.


The consumer’s initial reference to ProxyPullSupplier is obtained through event channel administration steps similar to those used in the Push method. Once an EventChannel reference is obtained, a for_consumers() operation is invoked on that object which returns a ConsumerAdmin reference. Invoking an obtain_pull_supplier() returns the ProxyPullSupplier reference.

A pull supplier connects by obtaining a reference to a ProxyPullConsumer object implemented in the event channel. The supplier then invokes the operation connect_pull_supplier() on the ProxyPullConsumer object, using a reference to an object of type PullSupplier as a parameter. This connection also supports an AlreadyConnected exception.

The event channel administration steps for obtaining a ProxyPullConsumer include obtaining an EventChannel reference, invoking a for_suppliers() operation on the EventChannel for a reference to a SupplierAdmin type object and then invoking an obtain_pull_consumer() on SupplierAdmin.

There are two ways for the consumer to initiate event transfer in the Pull method: pull() and try_pull(). Both pull() and try_pull() are invoked on the ProxyPullSupplier object in the event channel.


Untyped pull transfer through event channel.


When a pull() is invoked and an event does not already exist in the channel, the channel invokes a pull() on the PullSupplier object in each registered supplier. After initiating a transfer, the consumer blocks until the event channel supplies an event, and the event channel does likewise by blocking until a supplier supplies an event.

When the consumer invokes a try_pull(), the event channel in turn invokes a try_pull() on the PullSupplier object in each registered supplier. Depending on whether or not a supplier has an event, the boolean has_event parameter for the try_pull() operation is set to true or false.


Summary Contents

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


| Top of Page |