Distributed Computing Laboratory

Emory University


DCL Home » REVENTS



News

Mar 19, 2006
REVENTS 0.9 released.

Project summary

REVENTS is a Java distributed event API and library. It enables development of distributed applications (e.g. component-based) that communicate via asynchronous events. Conceptually, the API borrows from Java Message Service (JMS), so people with experience in JMS will find it familiar.

What REVENTS is NOT

It is not JMS. It is not limited to J2EE. It is not a messaging API. It does not provide communication infrastructure. It is not mainly targeted towards loosely-coupled systems. It is not a group communication (reliable multicast) library like JGroups. It is also very different than Jini events in that it supports asynchronous events.

So what does it actually offer?

REVENTS provides an API for communicating via asynchronous distributed events, targeted mostly towards tightly-coupled applications. The API is asymmetric; it distinguishes between the server side that publishes events on particular topics and the client side that subscribes to them. (However, event publishers may of course be subscribers to other event topics). The REVENTS library provides a reference implementation of the REVENTS API. The library has a configurable transport layer, which defines how the events are actually transmitted from a server-side queue to a client-side queue. By default, REVENTS uses RMI for that purpose (using blocking server-side polling), but it is easy to provide a custom mechanism e.g. to exploit communication channels already existing within the application.

REVENTS is very lightweight (35 KB API, < 160 KB the implementation), yet powerful - for example it does support JMS-like event selectors with SQL-based filter syntax, and other advanced features.

The current version is quite well debugged (REVENTS is used in the H2O project). However, the API itself is still a bit experimental, so some things may change a bit in the future.

License

REVENTS is distributed under the terms of the MPL/LGPL/GPL tri-license.

Acknowledgments

REVENTS is an open-source research project of Distributed Computing Laboratory, Dept. of Math and Computer Science, Emory University. The research is supported in part by U.S. DoE grant DE-FG02-02ER25537 and NSF grant ACI-0220183.