omniEvents enables CORBA applications to communicate through asynchronous broadcast channels rather than direct method calls. The server runs on Windows, and most Unixes. It is a small, efficient implementation of the Object Management Group's Event Service specification designed to work with omniORB.
We provide a number of example programs in C++, Python and Java, to help you get started with writing your own event service clients.
“Suppliers” send events to the event channel as a CORBA “any” type. The channel then broadcasts the event to all of the “consumers” that have subscribed to the channel.
Channels and connections are continuously saved to disk, so that they can be recreated when the server restarts.
Event channels can be federated, which allows multiple servers to share the load of delivering events to many clients across a wide area network.
Implements a sub-set of the Fault-Tolerant CORBA specification. Servers may be configured to operate in pairs - if one fails then clients automatically switch over to the alternate.
The server runs as a daemon on Unix or a service on Windows. A SysV style init file can be automatically installed on Unix, to get you up and running with minimum fuss.
Event channels can be configured to only pass on events of a particular CORBA type. Combined with channel federation, this allows Consumers to choose which type of events to receive.
You can create event channels within your own programs by linking to the shared library (on Unix).
Information on the Event Service specification can be obtained from the “CORBA services : Event Service Specification” page at: http://www.omg.org/technology/documents/formal/event_service.htm
For an introduction to the various communication models see “OMG Event Object Service”, SIGS Vol9, Num 2, February 1997 . You can download from http://www.iona.com/hyplan/vinoski/col9.pdf
There is an excellent introduction to the Event Service in Chapter 20 of the book “Advanced CORBA Programming with C++”, by Michi Henning & Steve Vinoski.