ABSTRACT
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.
- S. Behnel, L. Fiege, and G. Mühl. On Quality-of-Service and Publish-Subscribe. In ICDCSW'06. %, 2006. Google ScholarDigital Library
- N. Benton, L. Cardelli, and C. Fournet. Modern Concurrency Abstractions for C#. ACM TOPLAS, 26(5):769--804, 2004. Google ScholarDigital Library
- G. S. Blair, G. Coulson, M. Clarke, and N. Parlavantzas. Performance and Integrity in the OpenORB Reflective Middleware. In Reflection 2001, pages 268--269, 2001. Google ScholarDigital Library
- A. Carzaniga, D. Rosenblum, and A. Wolf. Design and Evaluation of a Wide Area Event Notification Service. ACM TOCS, 19(3):332--383, Aug. 2001. Google ScholarDigital Library
- A. K. Y. Cheung and H. Jacobsen. Publisher Placement Algorithms in Content-based Publish/Subscribe. In ICDCS'10., 2010. Google ScholarDigital Library
- G. Chockler, I. Keidar, and R. Vitenberg. Group Communication Specifications: a Comprehensive Study. ACM CSUR, 33(4):427--469, 2001. Google ScholarDigital Library
- G. Coulson, G. Blair, P. Grace, F. Taiani, A. Joolia, K. Lee, J. Ueyama, and T. Sivaharan. A Generic Component Model for Building Systems Software. ACM TOCS, 26(1):1--42, Mar. 2008. Google ScholarDigital Library
- G. Cugola, M. Migliavacca, and A. Monguzzi. On Adding Replies to Publish-Subscribe. In DEBS'07., 2007. Google ScholarDigital Library
- G. Cugola, E. D. Nitto, and A. Fuggetta. The JEDI Event-Based Infrastructure and Its Application to the Development of the OPSS WFMS. IEEE TSE, 27(9):827--850, 2001. Google ScholarDigital Library
- G. Cugola and G. P. Picco. REDS: a Reconfigurable Dispatching System. In SEM'06., 2006. Google ScholarDigital Library
- R. Douence, P. Fradet, and M. Südholt. Composition, Reuse and Interaction Analysis of Stateful Aspects. In AOSD'04., pages 141--150, 2004. Google ScholarDigital Library
- Ericsson Computer Science Laboratory. The Erlang Pogramming Language. http://www.erlang.org.Google Scholar
- P. Eugster. Type-based Publish/Subscribe: Concepts and Experiences. TOPLAS, 29(1), 2007. Google ScholarDigital Library
- P. Eugster and K. Jayaram. EventJava: An Extension of Java for Event Correlation. In ECOOP'09., pages 570--594, 2009. Google ScholarDigital Library
- P. T. Eugster, P. A. Felber, R. Guerraoui, and A.-M. Kermarrec. The Many Faces of Publish/Subscribe. ACM CSUR, 35:114--131, 2003. Google ScholarDigital Library
- P. Felber. Lightweight Fault Tolerance in CORBA. In DOA'01., 2001. Google ScholarDigital Library
- E. Fidler, H. Jacobsen, G. Li, and S. Mankovski. The PADRES Distributed Publish/Subscribe System. Feature Interactions in Telecommunications and Software Systems, VIII, 2005.Google Scholar
- C. Fournet and C. Gonthier. The Reflexive Chemical Abstract Machine and the Join Calculus. In POPL'96., %pages 372--385, 1996. Google ScholarDigital Library
- V. Gasiunas, L. Satabin, M. Mezini, A. Núnez, and J. Noyé. EScala: Modular Event-driven Object Interactions in Scala. In AOSD 2011., pages 227--240, 2011. Google ScholarDigital Library
- S. Guha, A. Reznichenko, K. Tang, H. Haddadi, and P. Francis. Serving Ads from Localhost for Performance, Privacy, and Profit. In HotNets'09., 2009.Google Scholar
- M. Haahr, R. Meier, P. Nixon, V. Cahill, and E. Jul. Filtering and Scalability in the ECO Distributed Event Model. In PDSE'00., %pages 83--92, 2000. Google ScholarDigital Library
- P. Haller and T. Van Cutsem. Implementing Joins using Extensible Pattern Matching. In COORDINATION'08., %pages 135--152, 2008. Google ScholarDigital Library
- A. Hinze, K. Sachs, and A. Buchmann. Event-based Applications and Enabling Technologies. In DEBS'09., 2009. Google ScholarDigital Library
- A. Holzer, L. Ziarek, K. Jayaram, and P. Eugster. Putting Events in Context: Aspects for Event-based Distributed Programming. In AOSD'11., %pages 241--252, 2011. Google ScholarDigital Library
- A. Holzer, L. Ziarek, K. Jayaram, and P. Eugster. Abstracting Context in Event-based Software. In TAOSD'12., 2012.% To Appear. Google ScholarDigital Library
- N. Jain, D. Kit, P. Mahajan, P. Yalagandula, M. Dahlin, and Y. Zhang. STAR: Self-tuning Aggregation for Scalable Monitoring. In VLDB'07., 2007. Google ScholarDigital Library
- N. Jain, P. Mahajan, D. Kit, P. Yalagandula, M. Dahlin, and Y. Zhang. Network Imprecision: a New Consistency Metric for Scalable Monitoring. In OSDI'08., 2008. Google ScholarDigital Library
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ. In ECOOP 2001., pages 327--353, 2001. Google ScholarDigital Library
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In ECOOP'97., 1997.Google ScholarCross Ref
- R. R. Kompella, J. Yates, A. Greenberg, and A. C. Snoeren. IP Fault Localization via Risk Modeling. In NSDI'05., pages 57--70, 2005. Google ScholarDigital Library
- F. Kon, M. Román, P. Liu, J. Mao, T. Yamane, L. C. Magalhaes, and R. H. Campbell. Monitoring, Security, and Dynamic Configuration with the TAO Reflective ORB. In Middleware 2000., %pages 121--143, 2000. Google ScholarDigital Library
- S. Landis and S. Maffeis. Building Reliable Distributed Systems with CORBA. Theory and Practice of Object Systems, 3(1):31--43, 1997.Google ScholarCross Ref
- S. Meng, S. Kashyap, C. Venkatramani, and L. Liu. Remo: Resource-Aware Application State Monitoring for Large-scale Distributed Systems. In ICDCS'09., 2009. Google ScholarDigital Library
- L. Navarro, M. Südholt, W. Vanderperren, B. D. Fraine, and D. Suvée. Explicitly Distributed AOP using AWED. In AOSD'06., pages 51--62, 2006. Google ScholarDigital Library
- B. Oki, M. Pfluegl, A. Siegel, and D. Skeen. The Information Bus - An Architecture for Extensible Distributed Systems. In SOSP'93., 1993. Google ScholarDigital Library
- Oracle Co. Java Message Service - Specification, version 1.1. http://www.oracle.com/technetwork/java/jms/index.html, 2008Google Scholar
- H. Plociniczak and S. Eisenbach. JErlang: Erlang with Joins. In COORDINATION'10., pages 61--75, 2010. Google ScholarDigital Library
- H. Rajan and G. Leavens. Ptolemy: A Language with Quantified, Typed Events. In ECOOP'08., pages 155--179, 2008. Google ScholarDigital Library
- S. P. Reiss. Connecting Tools Using Message Passing in the Field Environment. IEEE Software, 7(4):57--66, 1990. Google ScholarDigital Library
- M. K. Reiter. A Secure Group Membership Protocol. IEEE TSE, 22(1):31--42, 1996. Google ScholarDigital Library
- J. Sacha, J. Napper, C. Stratan, and G. Pierre. Adam2: Reliable Distribution Estimation in Decentralised Environments. In ICDCS'10, 2010. Google ScholarDigital Library
- B. Snyder, D. Bosanac, and R. Davies. ActiveMQ in Action. Manning Publications Co., 2011. Google ScholarDigital Library
- K. Sullivan and D. Notkin. Reconciling Environment Integration and Software Evolution. ACM TOSEM, 1(3):229--268, July 1992. Google ScholarDigital Library
- M. Sulzmann, E. Lam, and P. V. Weert. Actors with Multi-headed Message Receive Patterns. In COORDINATION'08., %pages 315--330, 2010. Google ScholarDigital Library
- R. Van Renesse, K. P. Birman, and W. Vogels. Astrolabe: A robust and Scalable Technology for Distributed System Monitoring, Management, and Data Mining. ACM TOCS, 21:164--206, May 2003. Google ScholarDigital Library
- E. Wohlstadter, S. Jackson, and P. Devanbu. DADO: Enhancing Middleware to Support Crosscutting Features in Distributed, Heterogeneous Systems. In ICSE'03., pages 174--186, 2003. Google ScholarDigital Library
- P. Yalagandula and M. Dahlin. A Scalable Distributed Information Management System. In SICOMM'04., 2004. Google ScholarDigital Library
Index Terms
- Aggregation for implicit invocations
Recommendations
Middleware Support for Pluggable Non-Functional Properties in Wireless Sensor Networks
SERVICES '08: Proceedings of the 2008 IEEE Congress on Services - Part IWireless sensor networks (WSN) imposes stringent constraints on efficiency, memory footprint and power consumption. Since the need to satisfy these constraints often results in tightly coupled designs, WSN applications tend to be inflexible; it is hard ...
A message-oriented middleware for sensor networks
MPAC '04: Proceedings of the 2nd workshop on Middleware for pervasive and ad-hoc computingThe miniaturization of hardware components has lead to the development of Wireless Sensor Networks (WSN) and networked-applications over them. Meanwhile, middleware systems have also been proposed in order to both facilitating the development of these ...
An approach to monitor application states for self-managing (autonomic) systems
OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsAutonomic Computing has gained widespread attention over the last few years for its vision of developing applications with autonomic or self-managing behaviors[1]. One of the most important aspects of building autonomic systems is the ability to monitor ...
Comments