Aggregation for implicit invocations

Implicit invocations are a popular mechanism for exchanging information between software components without binding these strongly. This decoupling is particularly important in distributed systems when interacting components are not known until runtime. In most realistic distributed systems though, components require some information about each other, be it only about their presence or their number. Runtime systems for implicit invocations--so-called publish/subscribe systems--are thus often combined with other systems providing such information. Given the variety of requirements for information about interacting components across applications, this paper proposes a generic augmentation of implicit invocations: rather than extending a given publish/subscribe API and system in order to convey a particular type of information across interacting components, we describe domain-specific joinpoints that can be used to advise application-level invocation routers-so-called brokers--used by publish/subscribe systems. This enables aggregation of application-specific information to and from components in a scalable manner. After presenting our domain-specific joinpoint model, we describe its implementation inside the REDS publish/subscribe middleware. The empirical evaluation of our approach shows that: (a) it outperforms external aggregation systems, by collecting and distributing information with a limited overhead; (b) the deployment of new functionalities has virtually no overhead, even if it occurs while the publish/subscribe system is running.

[1]  Pascal Felber Lightweight Fault Tolerance in CORBA , 2001, DOA.

[2]  Patrick Th. Eugster,et al.  Type-based publish/subscribe: Concepts and experiences , 2007, TOPL.

[3]  Annika Hinze,et al.  Event-based applications and enabling technologies , 2009, DEBS '09.

[4]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[5]  Martin Sulzmann,et al.  Actors with Multi-headed Message Receive Patterns , 2008, COORDINATION.

[6]  Fabio Kon,et al.  Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB , 2000, Middleware.

[7]  Dale Skeen,et al.  The Information Bus: an architecture for extensible distributed systems , 1994, SOSP '93.

[8]  Mads Haahr,et al.  Filtering and scalability in the ECO distributed event model , 2000, 2000 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems.

[9]  Rob Davies,et al.  ActiveMQ in Action , 2011 .

[10]  Idit Keidar,et al.  Group communication specifications: a comprehensive study , 2001, CSUR.

[11]  Yin Zhang,et al.  Usenix Association 8th Usenix Symposium on Operating Systems Design and Implementation 87 Network Imprecision: a New Consistency Metric for Scalable Monitoring , 2022 .

[12]  Luis Daniel Benavides Navarro,et al.  Explicitly distributed AOP using AWED , 2006, AOSD '06.

[13]  Albert G. Greenberg,et al.  IP fault localization via risk modeling , 2005, NSDI.

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

[15]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[16]  Patrick Th. Eugster,et al.  EventJava: An Extension of Java for Event Correlation , 2009, ECOOP.

[17]  Philipp Haller,et al.  Implementing Joins Using Extensible Pattern Matching , 2008, COORDINATION.

[18]  Shicong Meng,et al.  REMO: Resource-Aware Application State Monitoring for Large-Scale Distributed Systems , 2009, 2009 29th IEEE International Conference on Distributed Computing Systems.

[19]  Susan Eisenbach,et al.  JErlang: Erlang with Joins , 2010, COORDINATION.

[20]  Mira Mezini,et al.  EScala: modular event-driven object interactions in scala , 2011, AOSD '11.

[21]  Hans-Arno Jacobsen,et al.  Publisher Placement Algorithms in Content-Based Publish/Subscribe , 2010, 2010 IEEE 30th International Conference on Distributed Computing Systems.

[22]  Luca Cardelli,et al.  Modern concurrency abstractions for C# , 2002, TOPL.

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

[24]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[25]  Gary T. Leavens,et al.  Ptolemy: A Language with Quantified, Typed Events , 2008, ECOOP.

[26]  Premkumar T. Devanbu,et al.  DADO: enhancing middleware to support crosscutting features in distributed, heterogeneous systems , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[27]  Yin Zhang,et al.  STAR: Self-Tuning Aggregation for Scalable Monitoring , 2007, VLDB.

[28]  Cédric Fournet,et al.  The reflexive CHAM and the join-calculus , 1996, POPL '96.

[29]  Matteo Migliavacca,et al.  On adding replies to publish-subscribe , 2007, DEBS '07.

[30]  Walter R. Bischofberger,et al.  Building Reliable Distributed Systems with CORBA , 1997, Theory Pract. Object Syst..

[31]  Hans-Arno Jacobsen,et al.  The PADRES Distributed Publish/Subscribe System , 2005, FIW.

[32]  Gordon S. Blair,et al.  Performance and Integrity in the OpenORB Reflective Middleware , 2001, Reflection.

[33]  David Notkin,et al.  Reconciling environment integration and software evolution , 1992, TSEM.

[34]  Michael K. Reiter A Secure Group Membership Protocol , 1996, IEEE Trans. Software Eng..

[35]  Gordon S. Blair,et al.  A generic component model for building systems software , 2008, TOCS.

[36]  Robbert van Renesse,et al.  Astrolabe: A robust and scalable technology for distributed system monitoring, management, and data mining , 2003, TOCS.

[37]  Patrick Th. Eugster,et al.  Abstracting Context in Event-Based Software , 2012, LNCS Trans. Aspect Oriented Softw. Dev..

[38]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[39]  Saikat Guha,et al.  Serving Ads from localhost for Performance, Privacy, and Profit , 2009, HotNets.

[40]  Rémi Douence,et al.  Composition, reuse and interaction analysis of stateful aspects , 2004, AOSD '04.

[41]  Ludger Fiege,et al.  On Quality-of-Service and Publish-Subscribe , 2006, 26th IEEE International Conference on Distributed Computing Systems Workshops (ICDCSW'06).

[42]  Albert G. Greenberg,et al.  Fault Localization via Risk Modeling , 2010, IEEE Transactions on Dependable and Secure Computing.

[43]  Alfonso Fuggetta,et al.  The JEDI Event-Based Infrastructure and Its Application to the Development of the OPSS WFMS , 2001, IEEE Trans. Software Eng..

[44]  Gian Pietro Picco,et al.  REDS: a reconfigurable dispatching system , 2006, SEM '06.

[45]  Michael Dahlin,et al.  A scalable distributed information management system , 2004, SIGCOMM.

[46]  Guillaume Pierre,et al.  Adam2: Reliable Distribution Estimation in Decentralised Environments , 2010, 2010 IEEE 30th International Conference on Distributed Computing Systems.

[47]  Patrick Th. Eugster,et al.  Putting events in context: aspects for event-based distributed programming , 2011, AOSD '11.