The development of complex distributed systems demands for the creation of
suitable architectural styles (or paradigms) and related runtime infrastruc
tures. An emerging style that is receiving increasing attention is based on
the notion of event. In an event-based architecture, distributed software
components interact by generating and consuming events. An event is the occ
urrence of some state change in a component of a software system, made visi
ble to the external world. The occurrence of an event in a component is asy
nchronously notified to any other component that has declared some interest
in it. This paradigm (usually called "publish/subscribe," from the names o
f the two basic operations that regulate the communication) holds the promi
se of supporting a flexible and effective interaction among highly reconfig
urable, distributed software components. In the past two years, we have dev
eloped an object-oriented infrastructure called JEDI (Java Event-Based Dist
ributed Infrastructure). JEDI supports the development and operation of eve
nt-based systems and has been used to implement a significant example of di
stributed system, namely, the OPSS workflow management system (WFMS). The p
aper illustrates the main features of JEDI and how we have used them to imp
lement OPSS. Moreover, the paper provides an initial evaluation of our expe
riences in using the event-based architectural style and a classification o
f some of the event-based infrastructures presented in the literature.