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.
The OMG Event Manager specification is available in Adobe Acrobat Reader format here.
Summary Contents
- Communicating Indirectly
- Event Transfer And Communication
- Event Example
- Programming Interface
- Untyped Push
- Untyped Pull
- Typed Push
- Typed Pull
Communicating Indirectly
The standard CORBA model for communication between distributed applications is a simple one-to-one correspondence. A client application’s IDL calls an operation on a server object and then waits for a return. For any call there is a single client and a single server and each must be available for the call to succeed. However, more complex communication that assists CORBA in achieving its ultimate goal of software interoperability is available through the Event Service.
 |
Standard CORBA communication model. |
The CORBA Event Service implements a method of indirect communication which allows an application to send a message to objects in other applications without any knowledge about the objects which receive the message. The indirect method is applied through an event channel which, from an event supplier’s perspective, appears as a single consumer, and from a consumer’s perspective, appears as a single supplier. This decoupling has the effect that suppliers have no knowledge of the number of consumers or their identities and consumers have no knowledge of which supplier generated a given event.
 |
Communication through an event channel. |
Suppliers, consumers and event channels are implemented as ORB applications. Suppliers are implemented as CORBA clients and the event channel and consumers are implemented as CORBA servers. Suppliers and consumers register with the event channel that provides the connections they need. An IDL interface is defined for each of the three components and an event occurs when a supplier invokes an operation on an object in the event channel which in turn propagates the event by invoking a similar operation on an object in consumers.
Any number of suppliers can issue events to any number of consumers using a single event channel. New suppliers and consumers can be added to the system and any supplier and consumer can connect to more than one event channel. Suppliers or consumers can disconnect from the event channel on their own or be disconnected by the event channel.
Summary Contents
- Communicating Indirectly
- Event Transfer And Communication < Next
- Event Example
- Programming Interface
- Untyped Push
- Untyped Pull
- Typed Push
- Typed Pull