|
Analysis of Versatility Trade-offs of Publish/subscribe
Infrastructures
|
|
|
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
- Selection of a sublcass of infrastructures representing
existing publish/subscribe flexibilty approaches by means of a literature survey;
- 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);
- The
development of a benchmark in the form of an ideal APIs that
publish/subscribe infrastructure must provide for each application
domain;
- 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);
- The evaluation of the infrastructures according to
different metrics,focusing on development effort, flexibility, maintainability and performance;
- The comparison of the results;
- 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