Analysis of Versatility Trade-offs of Publish/subscribe Infrastructures



Concepts: 

Introduction |

Approach |

Infrastructures | Results |

Code |

 

 

Introduction

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 versatility approaches. 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. In this project we perform a multi-dimensional analysis of these design approaches according to different factors, including: flexibilty (extensibility and configurabilty), reusability and development effort in  support of different applications.  With the lessons learned in this work, we expect to broaden the understanding of the factors that permeate the development of flexible middleware. We also expect  to derive more precise trade-offs, principles, metrics and guidelines that can better support developers in the construction of middleware in general, and publish/subscribe infrastructures specifically.

Approach

  1. Selection of a sublcass of infrastructures representing existing publish/subscribe flexibilty approaches by means of a literature survey;
  2. Selection of different application domains based on different event-driven projects developed at UCI, named: awareness (CASSIUS), usability monitoring (EDEM) and synchronous peer-to-peer file sharing (IMPROMPTU);
  3. The development of a benchmark in the form of an ideal APIs that publish/subscribe infrastructure must provide for each application domain;
  4. The implementation of these APIs using representative infrastructures of each versatility approach, according to three different reuse approaches: whitebox, blackbox and greybox (YANCEES being the only greybox approach);
  5. The evaluation of the infrastructures according to different metrics,focusing on development effort, flexibility, maintainability and performance;
  6. The comparison of the results;
  7. The derivation of principles and guidelines.

Selected Infrastructures

In a previous survey of publish/subscribe infrastructures versatility approaches, we identified different strategies adopted by existing industry and research infrastructures in the support of an increasing set of event-driven applications. These strategies are:

1.        Build from scratch. Very often, publish/subscribe infrastructures have been recreated to support specific application domains. Examples include: Khronika built to support groupware applications, and JEDI employed in the support for workflow management systems and mobile applications.

2.        Adopt minimal core systems as Siena or Scribe , that provide simple but optimized services. These infrastructures are designed to be reused as publish/subscribe cores in different applications;

3.        Adopt coordination languages such as Linda , that provide a primitive vocabulary with which more complex coordination mechanisms can be built.

4.        Adopt one-size-fits-all infrastructures. as for example, CORBA-NS , that supports a broad set of user selectable subscription, notification, routing and QoS options;

5.        Or reuse novel reconfigurable compositional approaches (as those provided by GREEN , YANCEES and FACET ). These infrastructures adopt compositional frameworks based on plug-ins (as with GREEN and YANCEES) or Aspects  (as the case with FACET), allowing the generation of application-specific infrastructures out of a existing or new components.

The approaches above present increasing levels of configurability,  extensibility, generality and reusability. Apart from build-from-scratch approaches, that are, in their majority, monolithic and tailored for specific application domains, all other approaches strive to be versatile, supportting a broader set of applications from different domains.

The selected infrastructures for our experiments were: Siena, JavaSpaces, CORBA-NS (Community OpenORB) and YANCEES.

While Siena, JavaSpaces and CORBA-NS  represent coarse-grained components that can be used as either white boxes or black boxes, YANCEES support a novel form of reuse: grey-box, where the partially-implemented publish/susbcribe functionality can be customized and extended to support applicattion-specific requirements.

Results

The quantitatieve and qualitative results of our experiments, with the derived principles and guidelines are presented in the following ISR Technical Report: An Analysis of Publish/Subscribe Middleware Versatility

Click here to download the excel spreadsheets with the data collected in our analysis (size: 2MB).

Code

Click here to download the source code used in our case studies (size: 90MB). It includes ConcernTagger and ConcernMapper configurations, in the /src directories of each project.

Acknowledgements

This research has been sponsored by NSF (grants 0133749, 0205724, 0326105, 0527729,0524033), an IBM Eclipse technology exchange grant, and the Intel Corporation.


Research Staff: Roberto Silveira Silva Filho
Professor: David F. Redmiles
Institute for Software Research
Information and Computer Science
University of California, Irvine CA 92697-3425





This page was last updated on May 2nd, 2008