An event can be defined as a time-stamped message containing typed data that is delivered from a source to a set of subscribed listeners. It may contain additional information for message management, like a sequence number or a time-to-live value.
Event-based systems provide an elegant and robust mechanism to connect software components in distributed computing. They can help in debugging, monitoring, and dynamically negotiating communications protocols in heterogeneous environments. Events can be broadly classified to belong to one of the two categories: system events and application events. System events typically are used by the component framework to report occurrences such as component instantiation or connection. Application events are for application-specific information like file activity or application state such as ``iteration has completed''. An event system should be simple and leverage the benefits provided by existing standards. It should be extensible, language-independent, platform-independent, and provide ready integration with applications that use events internally. There are several scenarios where event services can be useful:
This paper addresses the following questions:
Any new event framework should address five requirements: simplicity, extensibility, rapid deployment and integration, interoperability, and performance. For some time now, it has been clear that systems using XML and SOAP can meet the first three requirements; this paper shows that it can meet the last two as well. In order to specify a minimal standard that satisfies these requirements, we first need to summarize existing ones.