Siena (Scalable Internet Event
Notification Architectures) is a research project aimed
at designing and constructing a generic scalable event-notification
service. The technical basis of Siena is an innovative
type of network service called content-based routing.
Keywords: events, content-based routing, publish/subscribe,
scalability, distributed system, middleware.
Overview
The asynchrony, heterogeneity, and inherent loose coupling that
characterize applications in a wide-area network promote event
interaction as a natural design abstraction for a growing class of
software systems. An emerging building block for such systems is an
infrastructure called an event notification service.
Software systems of a significant dimension, especially those that are
distributed over a computer network, are often engineered by means of
the integration of components. A promising approach to support
component-based software architectures is the so-called event-based
style whereby the interaction of components is modeled with
events. Components emit events to inform other components of a
change in their internal state or to request services from other
components. Upon detecting the occurrence of events, components react
by executing some actions and possibly emitting other events. The glue
that ties components together in an event-based architecture is an
infrastructure that we call event service. The event service
registers the interests of components and then dispatches event
notifications accordingly. The advantage of using an event service
instead of other "classical" integration mechanisms such as direct
or remote invocation is that this method increases the degree of
de-coupling among components thus eliminating static dependencies and
improving interoperability.
We envision a ubiquitous event notification service accessible from
every site on a wide-area network and suitable for supporting highly
distributed applications requiring component interactions ranging in
granularity from fine to coarse. Conceptually, the service is
implemented as a network of servers that provide access points to
clients. Clients use the access points to advertise the
information about events that they generate and to publish
notifications containing that information. They also use the access
points to subscribe for notifications of interest. The service
uses the access points to then notify clients by delivering any
notifications of interest. Clearly, an event notification service
complements other general-purpose middleware services, such as
point-to-point and multicast communication mechanisms, by offering a
many-to-many communication and integration facility.
Given that the primary purpose of an event notification service is to
support notification selection and delivery, the challenge we face in
a wide-area setting is maximizing expressiveness in the
selection mechanism without sacrificing scalability in the
delivery mechanism. Expressiveness refers to the ability of the event
notification service to provide a powerful data model with which to
capture information about events, to express filters and patterns on
notifications of interest, and to use that data model as the basis for
optimizing notification delivery. In terms of scalability, we are
referring not simply to the number of event generators, the number of
event notifications, and the number of notification recipients, but
also to the need to discard many of the assumptions made for
local-area networks, such as low latency, abundant bandwidth,
homogeneous platforms, continuous and reliable connectivity, and
centralized control.
Intuitively, a simple event notification service that provides no
selection mechanism can be reduced to a multicast routing and
transport mechanism for which there are numerous scalable
implementations. However, once the service provides a selection
mechanism, then the overall efficiency of the service and its routing
of notifications are affected by the power of the language used to
construct notifications and to express filters and patterns.
As the power of the language increases, so does the
complexity of the processing. Thus, in practice, scalability and
expressiveness are two conflicting goals that must be traded off.
Siena is an event notification service that we have designed
and implemented to maximize both expressiveness and scalability. A prototype implementation of
Siena is available.
People
Events
Documents
Please read the copyright
notice before downloading any document. These documents are
provided in Portable Document Format (PDF)
or PostScript®
format and some of them are compressed with gzip.
Papers
-
A. Carzaniga, D.S. Rosenblum, and A.L. Wolf
"Achieving Expressiveness and Scalability in an Internet-Scale
Event Notification Service". Nineteenth ACM Symposium on
Principles of Distributed Computing (PODC2000), Portland OR. July, 2000.
-
A. Carzaniga, D. S. Rosenblum, and A. L. Wolf
"Content-Based Addressing and Routing: A General Model and its
Application". Technical Report CU-CS-902-00, Department of
Computer Science, University of Colorado, January, 2000.
-
A. Carzaniga, D. S. Rosenblum, and A. L. Wolf
"Interfaces and Algorithms for a Wide-Area Event Notification
Service". Technical Report CU-CS-888-99, Department of
Computer Science, University of Colorado, October, 1999 (revised May
2000).
- A. Carzaniga
"Architectures for an Event Notification Service Scalable to
Wide-area Networks".
PhD Thesis. Politecnico di Milano. December, 1998.
-
A. Carzaniga, D. S. Rosenblum, and A. L. Wolf
"Challenges for Distributed Event Services: Scalability
vs. Expressiveness". Engineering Distributed Objects
(EDO '99), ICSE 99 Workshop, Los Angeles CA. May, 1999.
-
A. Carzaniga, E. Di
Nitto, D. S. Rosenblum,
and A. L. Wolf
"Issues in Supporting Event-Based Architectural
Styles". 3rd International Software
Architecture Workshop (ISAW3). Orlando, FL. November, 1998.
-
A. Carzaniga, D. S. Rosenblum, and A. L. Wolf
"Design of a Scalable Event Notification Service:
Interface and Architecture". Technical Report
CU-CS-863-98, Department of Computer Science, University of
Colorado, August, 1998.
-
D. S. Rosenblum and A. L. Wolf
"A Design Framework for Internet-Scale Event Observation and
Notification". 6th European Software
Engineering Conference. Lecture Notes in Computer Science 1301,
Springer, Berlin, 1997, pages 344-360.
- D. S. Rosenblum, A. L. Wolf and
A. Carzaniga
"Critical Considerations and Designs for Internet-Scale,
Event-Based Compositional Architectures". Workshop on
Compositional Software Architectures. Monterey, CA. January, 1998.
Other Documents
- Poster (1 page). June, 1999.
- Brochure (2 pages). June, 1999.
-
Presentation at the Workshop on Internet Scale Event Notification
(WISEN)
(pp. 16). July, 1998.
-
Presentation at the IBM Workshop on Distributed Publish/Subscribe
Systems (pp. 16). April, 1999.
-
Presentation at the Workshop on Engineering Distributed Objects (EDO'99). May, 1999.
Acknowledgments
This work was supported in part by the Air Force Materiel Command,
Rome Laboratory, and the Defense Advanced Research Projects Agency
under Contract Numbers F30602-94-C-0253, F30602-97-2-0021,
F30602-98-2-0163, and F30602-99-C-0174; by the Air Force Office of
Scientific Research, Air Force Materiel Command, USAF, under grant
number F49620-98-1-0061; and by the National Science Foundation under
Grant Number CCR-9701973.
The content of the information does not necessarily reflect the
position or the policy of the US Government and no official
endorsement should be inferred.
We thank Dennis Heimbigner, Richard S. Hall, and André van der
Hoek of the Software Engineering Research Laboratory, University of
Colorado at Boulder, and Giampaolo Cugola, Elisabetta Di Nitto, and
Alfonso Fuggetta of Politecnico di Milano for their contributions to
this work.