The Narada Event Brokering System: Overview and Extensions

Narada is a distributed event brokering system designed to run on a large network of cooperating broker nodes. Narada supports heterogeneous client configurations that scale to arbitrary size and incorporates efficient routing algorithms to optimize disseminations to clients. Narada is failure resilient and guarantees delivery in the presence of failures. In this paper we provide an overview of the Narada event brokering system. The paper also describes the Java Message Service compliance process and support for peer-to-peer interactions in Narada. Finally, the paper outlines issues and entry points for supporting Web Services within Narada We believe that it is interesting to study the system and software architecture of environments, which integrate the evolving ideas of computational grids, distributed objects, web services, peer-to-peer networks and message oriented middleware. Such peer-to-peer (P2P) Grids should seamlessly integrate users to themselves and to resources, which are also linked to each other. We can abstract such environments as a distributed system of “clients” which consist either of “users” or “resources” or proxies thereto. These clients must be linked together in a flexible fault tolerant efficient high performance fashion. In this paper, we study the messaging or event system – Narada – that is appropriate to link the clients (both users and resources of course) together. For our purposes (registering, transporting and discovering information), events are just messages – typically with time stamps. The event brokering system Narada must scale over a wide variety of devices – from hand held computers at one end to high performance computers and sensors at the other extreme. We have analyzed the requirements of several Grid services that could be built with this model, including computing and education and incorporated constraints of collaboration with a shared event model. We suggest that generalizing the well-known publish-subscribe model is an attractive approach and this is the model that is used in Narada. Industrial strength products in the publish/subscribe domain include solutions like SmartSockets [13] from Talarian and TIB/Rendezvous [14] from TIBCO. Related efforts in the research community include Gryphon [15], Elvin [16] and Sienna [17]. The push by Java to include publish subscribe features into its messaging middleware include efforts like JINI [7] and the Java Message Service (JMS) [8]. One of the goals of JMS is to offer a unified API across publish subscribe implementations. JXTA (from juxta- position) [19] is a set of open, generalized protocols to support peer-to-peer interactions. Narada is designed as event brokering system to support Community Grids [28] and needs to encompass both P2P and the traditional centralized middle tier style of interactions. This is needed for robustness (since JXTA provides no guarantees and interactions are not reliable), scaling (JMS does not scale) and dynamic resources (since JMS is not natural for very dynamic clients and resources). This paper describes the support for these interactions in Narada. Section 1 of this paper provides an overview of Narada. Sections 2 and 3 describe the rationale and the process of providing JMS compliance and support for JXTA interactions respectively. Section 4 outlines entry points for supporting Web Services within Narada.