Exploiting an event-based infrastructure to develop complex distributed systems

The development of complex distributed systems demands for the creation of suitable architectural styles (or paradigms) and related run-time infrastructures. 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. The occurrence of an event in a component (called source) is asynchronously notified to any other component (called recipient) that has declared some interest in it. This paradigm holds the promise of supporting a flexible and effective interaction among highly reconfigurable distributed software components. We have developed an object-oriented infrastructure, called JEDI (Java Event-based Distributed Infrastructure), to support the development and operation of event-based systems. During the past year, JEDI has been used to implement a significant example of distributed system, namely, the OPSS workflow management system. The paper illustrates JEDI main features and how we have used it to implement the OPSS workflow management system. Moreover, it provides an initial evaluation of our experiences in using an event-based architectural style.

[1]  Letizia Tanca,et al.  A structured approach for the definition of the semantics of active databases , 1995, TODS.

[2]  Vittorio Trecordi,et al.  An Experimental Open Architecture to Support Multimedia Services Based on CORBA, Java and WWW Technologies , 1997, IS&N.

[3]  Xingwei Wang,et al.  GRPC: a communication cooperation mechanism in distributed systems , 1993, OPSR.

[4]  Reijo Sulonen,et al.  Process enactment support in a distributed environment , 1996 .

[5]  David S. Rosenblum,et al.  A design framework for Internet-scale event observation and notification , 1997, ESEC '97/FSE-5.

[6]  Reidar Conradi,et al.  Assessing process-centered software engineering environments , 1997, TSEM.

[7]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[8]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[9]  Steven P. Reiss,et al.  Connecting tools using message passing in the Field environment , 1990, IEEE Software.

[10]  Richard N. Taylor,et al.  Endeavors: a process system integration infrastructure , 1996, Proceedings of Software Process 1996.

[11]  Satish K. Tripathi,et al.  Fault tolerant remote procedure call , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[12]  Dennis Heimbigner The ProcessWall: a process state server approach to process programming , 1992 .

[13]  Balachander Krishnamurthy,et al.  Yeast: A General Purpose Event-Action System , 1995, IEEE Trans. Software Eng..

[14]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.