Jgroup/ARM Publications

An Approach to Experimentally Obtain Service Dependability Characteristics of the Jgroup/ARM System

Bjarne E. Helvik, Hein Meling, and Alberto Montresor [To appear]
In Proceedings of the Fifth European Dependable Computing Conference (EDCC), April 2005, Budapest, Hungary.
Abstract: Jgroup/ARM is a middleware framework for operating dependable distributed applications based on Java. Jgroup integrates the distributed object models of Java RMI and Jini with the object group communication paradigm, enabling the construction of groups of replicated server objects that provide dependable services to clients. ARM provides automated mechanisms for distributing replicas to host processors and recovering from replica failures. This paper describes an approach based on stratified sampling combined with fault injections for estimating the dependability attributes of a service deployed using the Jgroup/ARM middleware framework. A first experimental evaluation is performed focusing on a service provided by a triplicated server, and indicative predictions of various dependability attributes of the service are obtained. The evaluation shows that a very high availability and MTBF may be achieved for services based on Jgroup/ARM.

Performance Consequences of Inconsistent Client-side Membership Information in the Open Group Model

Hein Meling and Bjarne E. Helvik [pdf]
In Proceedings of the 23rd International Performance, Computing, and Communications Conference (IPCCC), April 2004, Phoenix, Arizona (USA).
Abstract: In a distributed fault-tolerant server system realized according to the open group model, inconsistency will (temporarily) arise between the dynamic membership of the replicated service and its client-side representation in the event of server failures and recoveries. The paper proposes techniques for maintaining this consistency and discuss their performance implications in failure/recovery scenarios where clients load balance requests on the servers. Comparative performance measurements is carried out for two of the proposed techniques. The results indicate that the performance impact of lacking consistency is easily kept small, and that the cost of the technique is small.

Jgroup/ARM: A Distributed Object Group Platform with Autonomous Replication Management for Dependable Computing

Hein Meling, Alberto Montresor, Ozalp Babaoglu and Bjarne E. Helvik [pdf] [ps.gz]
Technical Report UBLCS 2002-12, October 2002
Abstract: We present the design and implementation of the Jgroup distributed object platform and its replication management framework ARM. Jgroup extends Java RMI through the group communication paradigm and has been designed specifically for application support in partitionable distributed systems. ARM is layered on top of Jgroup and provides extensible replica distribution schemes and application-specific recovery strategies. The combination Jgroup/ARM can reduce significantly the effort necessary for developing, deploying and managing dependable, partition-aware applications.

ARM: Autonomous Replication Management in Jgroup

Hein Meling and Bjarne E. Helvik [pdf]
In Proceedings of the 4th European Research Seminar on Advances in Distributed Systems (ERSADS), Bertinoro, Italy, May 2001.
Abstract: We present the design and implementation of a replication management framework for partition-aware applications based on Jgroup. Jgroup offers an extension to Java RMI based on the group communication paradigm, enabling development of dependable applications in partitionable distributed systems. The replication management framework simplifies the development of fault tolerant applications by providing exchangeable replica distribution schemes and application specific recovery strategies. The framework is extensible to several replication and recovery strategies. The only user interaction required is the creation and removal of object groups, i.e., enabling autonomous replication management.

Enhancing Jini with Group Communication

Alberto Montresor, Renzo Davoli and Ozalp Babaoglu. [pdf] [ps.gz]
In Proceedings of the ICDCS Workshop on Applied Reliable Group Communication (WARGC 2001), April 2001, Phoenix, Arizona (USA). Also appears as Technical Report UBLCS 2000-16, December 2000 (Revised January 2001)
Abstract: Reliable group communication has proven to be an important technology for building fault-tolerant applications. Yet, many frameworks for distributed application development (e.g., Dcom, Jini and Enterprise JavaBeans) do not support it. The only notable exception to this situation is Corba that has been recently extended to include a replication service. We claim that lack of group communication support in other development frameworks constitutes a major obstacle for their wider diffusion among industry. In this paper we discuss issues related to integrating reliable group communication and Jini technologies.

Jgroup Tutorial and Programmer's Manual

Alberto Montresor and Hein Meling [pdf] [ps.gz]
Technical Report UBLCS 2000-13, September 2000 (Revised Febrary 2002)
Abstract: This tutorial gives a brief introduction to Java Remote Method Invocation, an overview and some details of the services provided by the Jgroup Group Communication System and explains how to develop distributed applications using Jgroup. It also gives a brief overview of the Autonomous Replication Management framework.

System Support for Programming Object-Oriented Dependable Applications in Partitionable Systems (Ph.D. Thesis)

Alberto Montresor [pdf] [ps.gz]
Technical Report UBLCS 2000-10, March 2000
Abstract: Distributed computing is one of the major trends in the computer industry. The growing interest in distributed applications, driven primarily by the popularization of the Internet, results in new challenges for software developers. As systems become more distributed, they also become more complex and more difficult to design. In order to deal with this complexity, new middleware systems for supporting the development of distributed applications are required. The last few years have seen the emergence of several programming environments that greatly simplify the development of distributed applications. Among them, notable examples are CORBA and Java Remote Method Invocation (RMI). In order to abstract the complexity of the system and to promote modularity and reusability, these middleware platforms are based on object-oriented concepts like abstraction, encapsulation, inheritanceand polymorphism, and enable client/server interactions among distributed objects. Existing object-oriented middleware environments focus their attention on improving portability, interoperability and reusability of distributed software components and applications. Unfortunately, none of them provides an adequate support for the development of dependable applications in the presence of partial failures. The main problem is the lack of one-to-many interaction primitives allowing clients to reliably invoke the same method on several objects at once. In an effort to fill this void, the object group paradigm has been proposed. In this paradigm, functions of a distributed service are replicated among a collection of logically related server objects gathered together in an object group. A group constitutes a logical addressing facility: clients transparently interact with object groups by remotely invoking methods on them, as if they were single, non-replicated remote objects. In this thesis, we presents the design and the implementation of Jgroup, an extension of the Java distributed object model based on the group communication paradigm. Differently from other group-oriented extensions of existing distributed object models, Jgroup is expressly aimed at supporting the development of reliable and high-available distributed applications in partitionable environments. Jgroup enables the creation of groups of remote objects that cooperate towards some common goal using a partitionable group communication service. Remote object groups simulate the behavior of standard remote objects by implementing a set of remote interfaces and by enabling clients to remotely invoke the methods defined in these interfaces through the standard Java RMI mechanism. For the first time, communication among servers forming a group is based on group method invocations as well, offering a completely object-oriented framework for programmers. Finally, Jgroup is completed by a state merging service, which simplifies the development of state merging protocols needed to re-establish a consistent state after the disappearing of a partitioning.

Middleware for Dependable Network Services in Partitionable Distributed Systems

Alberto Montresor, Renzo Davoli, Ozalp Babaoglu. [pdf] [ps.gz]
In Proceedings of the PODC Middleware Symposium, Portland, OR, July 2000. Also appears in Operating Systems Review, 35(1):73-84, January 2001. Also appears as Technical Report UBLCS 1999-19, October 1999 (Revised April 2000)
Abstract: We describe the design and implementation of Jgroup: a middleware system that integrates group technology with distributed objects and is based on Java RMI. Jgroup supports a programming paradigm called object groups and enables development of dependable network services based on replication. Among the novel features of Jgroup is a uniform object-oriented interface for programming both services and their clients. The fact that Jgroup exposes network effects, including partitions, to applications makes it particularly suitable for developing highly-available services in partitionable distributed systems.

Group-Enhanced Remote Method Invocations

Alberto Montresor, Renzo Davoli, Ozalp Babaoglu. [pdf] [ps.gz]
Technical Report UBLCS 1999-05, April 1999
Abstract: We present a specification for Jgroup, an extension to the Java distributed object model based on group communication. Jgroup is particularly suited for developing dependable network applications that are to be deployed in environments subject to voluntary or involuntary network partitionings. Jgroup adapts view synchrony semantics, typically defined for message-based group communication systems, to remote method invocations on objects. Unlike existing object group systems that mix two different paradigms (message passing within groups and remote method invocations outside), Jgroup presents a single uniform programming interface based entirely on remote method invocations. Furthermore, Jgroup extends view synchrony semantics that govern interactions within the group to external clients of the group without requiring them to become full-fledged members. In this manner, the higher costs associated with providing strong guarantees on method invocations are limited to (typically small number of) group members while guarantees for clients can be light-weight and thus incur smaller costs.

A Reliable Registry for the Jgroup Distributed Object Model

Alberto Montresor [pdf] [ps.gz]
In Proceedings of the Third European Research Seminar on Advances in Distributed Systems (ERSADS '99), Madeira, Portugal, April 1999. Also appears as Technical Report UBLCS 1999-03, March 1999
Abstract: The registry service is a fundamental component of Java RMI. A registry is a repository facility used by remote servers to advertise their availability to provide certain services, and by clients to retrieve remote servers by simple names. Unfortunately, the service provided by the Java RMI registry (as the rest of the Java RMI architecture) is not reliable: partitioned or crashed registries force clients to engage complex recovery protocols in order to locate alternative registry instances. In this paper we present the design and the implementation of the reliable registry service included in Jgroup, an extension of Java RMI based on the group communication paradigm. Aim of Jgroup is to support the development of dependable applications in partitionable distributed systems. The Jgroup registry is based on a set of distributed remote objects that cooperate using the group communication service provided with Jgroup, and may be invoked as they were a single entity using the Jgroup invocation mechanism.

The Jgroup Reliable Distributed Object Model

Alberto Montresor [pdf] [ps.gz]
In Proceedings of the Second IFIP WG 6.1 International Working Conference on Distributed Applications and Interoperable Systems (DAIS '99), Helsinki, Finland, June 1999. Also appears as Technical Report UBLCS 1998-12, December 1998
Abstract: This paper presents the design and the implementation of Jgroup, an extension of the Java distributed object model based on the group communication paradigm. Aim of Jgroup is to support the development of dependable applications in partitionable distributed systems. Jgroup consists of a partitionable group communication service that simplifies the cooperation among groups of replicated server objects, and a client-side mechanism to transparently invoke methods on object groups as if they were single, non-replicated entities.

Group Communication in Partitionable Systems: Specification and Algorithms

Ozalp Babaoglu, Renzo Davoli and Alberto Montresor [pdf] [ps.gz]
In IEEE Transactions on Software Engineering, 27(4):308-336, April 2001. Also appears as Technical Report UBLCS 1998-01, April 1998 (Revised October 1999)
Abstract: We give a formal specification and an implementation for a partionable group communication service in asynchronous distributed systems. Our specification is motivated by the requirements for building "partition-aware" applications that can continue operating without blocking in multiple concurrent partitions and reconfigure themselves dynamically when partitions merge. The specified service is sound in the sense that it guarantees liveness, excludes trivial solutions and is implementable in practical asynchronous distributed systems where certain stability conditions hold.