Reusing Existing Publish/Subscribe Infrastructures: An Empirical Study of Middleware Reusability Costs
Student: Roberto Silveira Silva Filho, UC Irvine/ISR
Advisor: David F. Redmiles, UC Irvine/ISR
Abstract:
Publish/subscribe infrastructures are a special class of middleware that supports the development of event-based applications. In order to support a broader set of application domains and their requirements, these infrastructures have been developed according to different reuse strategies. For example, generalization: the development of minimal core APIs or coordination languages as tuple spaces; variability: the use of configurable one-size-fits-all infrastructures, and, more recently, compositional strategies: the built of application-specific infrastructures out of existing or new components. This broad spectrum of options have implicit trade-offs that are not always obvious for both middleware developers and users. Few empirical studies are available that analyzes the reusability benefits and limitations of different middleware implementation strategies in realistic scenarios. This poster reports a quantitative and qualitative study that uses four different publish/subscribe infrastructures, representing different reusability strategies, in the support of a software monitoring application scenario. The resulting implementations are compared with one another and with a reference built-from-scratch implementation. Our investigation focused on a multi-perspective analysis of the reusability trade-offs in terms of cognitive distance, adaptation costs and performance.
Bio:
Roberto Silva Filho is Ph.D. candidate in Software Engineering at the Department of Informatics of the Donald Bren School of Information and Computer Sciences at University of California, Irvine, and member of the Institute for Software Research. He holds a M.S. degree in Information and Computer Science from UC, Irvine and another one from the Institute of Computing at UNICAMP, University of Campinas, Brazil. His research interests crosscut the areas of distributed systems, middleware, software engineering and groupware.
|