Programming Abstractions for Content-Based Publish/Subscribe in Object-Oriented Languages

Asynchronous event-based communication facilitates loose coupling and eases the integration of autonomous, heterogeneous components into complex systems. Many middleware platforms for event-based communication follow the publish/subscribe paradigm. Despite the usefulness of such systems, their programming support is currently limited. Usually, publish/subscribe systems only exhibit low-level programming abstractions to application developers. In this paper we investigate programming abstractions for content-based publish/subscribe middleware in object-oriented languages, how they can be integrated in applications, and their implications on middleware implementation. We focus on the definition of filters and their implementation, the handling of notifications and meta-data, and programming support for composite events. We have implemented the presented approach for our content-based publish/subscribe middleware Rebeca.

[1]  Boris Magnusson,et al.  ECOOP 2002 — Object-Oriented Programming , 2002, Lecture Notes in Computer Science.

[2]  Ingo Rammer Advanced .NET Remoting , 2002, Apress.

[3]  Patrick Th. Eugster,et al.  On objects and events , 2001, OOPSLA '01.

[4]  Alexander L. Wolf,et al.  Content-Based Networking: A New Communication Infrastructure , 2001, Infrastructure for Mobile and Wireless Systems.

[5]  D. B. Davis,et al.  Sun Microsystems Inc. , 1993 .

[6]  Bertrand Meyer,et al.  The Power of Abstraction, Reuse, and Simplicity: An Object-Oriented Library for Event-Driven Design , 2004, Essays in Memory of Ole-Johan Dahl.

[7]  David S. Rosenblum,et al.  Design and evaluation of a wide-area event notification service , 2001, TOCS.

[8]  Norman W. Paton,et al.  Active Rules in Database Systems , 1998, Monographs in Computer Science.

[9]  Klaus R. Dittrich,et al.  Events in an Active Object-Oriented Database System , 1993, Rules in Database Systems.

[10]  Mira Mezini,et al.  Engineering Event-Based Systems with Scopes , 2002, ECOOP.

[11]  Kurt Geihs,et al.  QoS mechanism composition at design-time and runtime , 2003, 23rd International Conference on Distributed Computing Systems Workshops, 2003. Proceedings..

[12]  Alejandro P. Buchmann,et al.  Event composition in time-dependent distributed systems , 1999, Proceedings Fourth IFCIS International Conference on Cooperative Information Systems. CoopIS 99 (Cat. No.PR00384).

[13]  Cédric Fournet,et al.  The Join Calculus: A Language for Distributed Mobile Programming , 2000, APPSEM.

[14]  Sharma Chakravarthy,et al.  Snoop: An Expressive Event Specification Language for Active Databases , 1994, Data Knowl. Eng..

[15]  Tom Lyche,et al.  From Object-Orientation to Formal Methods , 2004, Lecture Notes in Computer Science.

[16]  Scarlet Schwiderski,et al.  Monitoring the behaviour of distributed systems , 1996 .

[17]  Simon Courtenage,et al.  Specifying and detecting composite events in content-based publish/subscribe systems , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.

[18]  Luciano Baresi,et al.  Architectures for an Event Notification Service Scalable to Wide-area Networks , 2000 .

[19]  James Newkirk,et al.  How .NET's custom attributes affect design , 2002, IEEE Software.

[20]  Jean Bacon,et al.  COBEA: A CORBA-Based Event Architecture , 1998, COOTS.

[21]  Klaus R. Dittrich,et al.  Detecting composite events in active database systems using Petri nets , 1994, Proceedings of IEEE International Workshop on Research Issues in Data Engineering: Active Databases Systems.

[22]  Patrick Th. Eugster,et al.  Content-Based Publish/Subscribe with Structural Reflection , 2001, COOTS.

[23]  Luca Cardelli,et al.  Modern Concurrency Abstractions for C# , 2002, ECOOP.

[24]  Peter R. Pietzuch,et al.  Composite event detection as a generic middleware extension , 2004, IEEE Network.

[25]  Alejandro P. Buchmann,et al.  Architecture of Active Database Systems , 1999, Active Rules in Database Systems.

[26]  Alin Deutsch,et al.  The REACH active OODBMS , 1995, SIGMOD '95.

[27]  John Hunt,et al.  Java Message Service (JMS) , 2003 .

[28]  Michael J. Carey,et al.  Proceedings of the 1995 ACM SIGMOD International Conference on Management of Data, San Jose, California, USA, May 22-25, 1995 , 1995, PODS 1995.

[29]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[30]  Gero Mühl,et al.  Large-scale content based publish, subscribe systems , 2002 .

[31]  Ulrich Meyer,et al.  Algorithms for Memory Hierarchies , 2003, Lecture Notes in Computer Science.