JMS Compliance in the Narada Event Brokering System.

Narada is a distributed event brokering system based on the publish/subscribe paradigm and is designed to run on a very large network of broker nodes. This paper describes the process of achieving Java Message Service (JMS) compliance in the Narada system. The paper also describes our strategy for bringing Narada’s benefits – scaling, availability, routing efficiencies and failure resiliency – to existing JMS compliant systems. Finally, we also include performance data from our JMS compliant system. Messaging systems based on queuing include products such as IBM's MQSeries [1] and Microsoft's MSMQ [2]. The queuing model with their store-and-forward mechanisms come into play when the sender of the message expects someone to handle the message while imposing asynchronous communication and guaranteed delivery constraints. A widely used standard in messaging is the Message Passing Interface Standard (MPI) [3]. MPI is designed for high performance on both massively parallel machines and workstation clusters. Messaging frameworks based on the classical remote procedure calls include CORBA [4] from OMG, DCOM [5] from Microsoft and Java RMI [6] from Sun Microsystems. In publish/subscribe systems the routing of messages from the publisher to the subscriber is within the purview of the message oriented middleware (MOM), which is responsible for routing the right content from the producer to the right consumers. Industrial strength solutions in the publish/subscribe domain include products like TIB/Rendezvous [20] from TIBCO and SmartSockets [19] from Talarian. Other related efforts in the research community include Gryphon [21], Elvin [22] and Sienna [23]. The push by Java to include publish subscribe features into its messaging middleware include efforts like JINI [13] and JMS [14]. One of the goals of JMS is to offer a unified API across publish subscribe implementations. Various JMS implementations include solutions like SonicMQ [15] from Progress, JMQ [16] from iPlanet and FioranoMQ [17] from Fiorano. Narada [8,9,10,11,12] is a distributed event brokering system based on the publish/subscribe paradigm and is designed to run on a very large network of broker nodes. The distributed cluster architecture, which results in the creation of “small world networks” [7], allows Narada to support large heterogeneous client configurations that scale to arbitrary size. Protocols controlling the addition of broker nodes in Narada ensure that brokers being added do not result in bandwidth degradation because of their interconnectivity. Changes to the Narada broker network include addition/removal of broker nodes and communication channels between brokers. Narada incorporates a scheme for the controlled propagation of information pertaining to changes to the broker network to relevant sections of the broker network. The propagation scheme in tandem with the broker organization makes the creation of efficient broker network maps (BNM) an efficient one. The paths computed, to reach any given destination, from these BNMs tend to be very efficient since the protocols controlling the addition of brokers and associated connections have ensured that these connections do not result in bandwidth degradations. Clients interested in using Narada can attach themselves to one of the broker nodes. Clients specify an interest in the type of events that they are interested in and the service routes events, which satisfy the constraints specified by the clients. Clients can have prolonged disconnects from the broker network and can also roam the network (in response to failure suspicions or for better response times) and attach themselves to any other node in the broker network. Events published during the intervening period, of prolonged disconnects and roams, must still be delivered to clients that originally had an interest in these events. The delivery constraints are satisfied in the presence of broker and connection failures. Narada provides for a hierarchical dissemination scheme for the delivery of events to relevant clients. The system provides for an efficient calculation of routes for disseminations, based on BNMs, while ensuring that paths computed comprise only those brokers and connections that have not failed or have not been failure suspected. Narada is designed as an event brokering system to support Community Grids [27] and needs to encompass both peer to peer (P2P) [24] and the traditional centralized middle tier style of interactions. We base support for P2P interactions through JXTA [19], which is a set of open, generalized protocols to support P2P style communications. Details pertaining to the JXTA integration can be found in [26]. This paper describes the process of achieving JMS compliance in the Narada system and strategies that bring Narada functionality to JMS clients. This paper is organized as follows. In section 1 we describe JMS compliance and what the compliance implies. Section 2 provides the rationale for achieving JMS compliance in Narada, while section 3 describes our strategy to do so. Section 4 describes the applications that were used to test Narada’s JMS compliance. Section 5 presents our strategy to help JMS clients leverage Narada functionality in large distributed settings in addition to the guarantees accorded to these clients based on their conformance to the JMS specification. Section 6 provides performance data from our JMS compliant system.