[ Software Research Group ]

[Home] [Projects] [Members] [Publications] [Links] [Documents] [Demos] [Videos]


Event Manager

Components in a loosely coupled system like an Active Space are typically designed to operate by generating and responding to asynchronous events. The event manager provides a model for decoupled communication between different entities in an Active Space.  It allows creating channel categories, browsing these categories and their associated channels and creating and deleting channels associated with particular categories. All Gaia components use the event manager to learn about changes in the state of the space and react accordingly. The Presence Service, for example, listens to different channels to learn about new entities (e.g., software services and people entering the space), filters the information, and publishes events to inform the rest of the system about new entities discovered and entities no longer available.

The event manager distributes load among multiple machines. It creates event channel factories remotely on pre-configured machines whenever it decides that the existing event channel factories are already overloaded. When the event manager is bootstrapped it has to be configured with a set of available machines on which event channels factories can be instantiated. The event manager is also responsible for recreating those channels if any supplier of events complains that the particular event channel no longer exists. In essence, the event manager keeps state for the channels it creates and recreates them if they crash, transparent to the event consumers.