2003 · 481 citations · 16 references
ComputingComputer ScienceComputer SystemsDistributed SystemsFault ToleranceFault-tolerant ComputingDistributed ComputingDistributed Systems ArchitectureFault-tolerant CommunicationReliable Distributed SystemsDistributed MiddlewareFault Tolerance MechanismsFault-tolerant Distributed SystemsFault-tolerant MiddlewareMiddlewarePublish-subscribe SystemsScalable Middleware ArchitecturesScalable Routing
Existing publish/subscribe systems still have limitations compared to invocation-based middlewares. The paper argues for an event‑based middleware to build large‑scale distributed systems and introduces Hermes, a novel type‑ and attribute‑based publish/subscribe architecture. Hermes is a type‑ and attribute‑based publish/subscribe middleware that centers on event types, supports object‑oriented features such as type hierarchies and super‑type subscriptions, uses an overlay routing network with rendezvous nodes to avoid global broadcasts, and integrates fault‑tolerance mechanisms for scalable, robust operation.
In this paper, we argue that there is a need for an event-based middleware to build large-scale distributed systems. Existing publish/subscribe systems still have limitations compared to invocation-based middlewares. We introduce Hermes, a novel event-based distributed middleware architecture that follows a type- and attribute-based publish/subscribe model. It centres around the notion of an event type and supports features commonly known from object-oriented languages like type hierarchies and super-type subscriptions. A scalable routing algorithm using an overlay routing network is presented that avoids global broadcasts by creating rendezvous nodes. Fault-tolerance mechanisms that can cope with different kinds of failures in the middleware are integrated with the routing algorithm resulting in a scalable and robust system.
16
Shelley Zhuang, Ben Y. Zhao, Anthony D. Joseph et al. · 2001 · 723 citations
Tony Ballardie, Paul Francis, Jon Crowcroft · 1993 · 593 citations · Full text