Jgroup is an integration of group technology with distributed objects. Jgroup supports a programming paradigm called object groups that enables development of reliable and highly-available services based on replication. Clients interact with an object group implementing some distributed service through an external group group method invocation (EGMI) facility. Jgroup hides the fact that services may be implemented as object groups rather than single objects so that clients using them through EGMI need not be reprogrammed. Servers making up the group object, on the other hand, coordinate their actions so as to achieve global consistency of the state distributed among them through an internal group method invocation (IGMI) facility. Strong guarantees provided by Jgroup for both EGMI and IGMI in the presence of failures and recoveries (including partitioning and merging of the communication network) greatly simplify the task of application developers.
Jgroup has been heavily influenced by our previous project Relacs). The main focus of Relacs was the specification of a partitionable group communication system formulated in terms of processes interacting through multicast messages. In particular, the properties guaranteed for IGMI closely resemble what is known as view synchrony semantics for group communication. One of the innovations of Jgroup is the integration of EGMI semantics with those of IGMI without requiring clients to become full fledged members of the server object group. This is a fundamental requirement for scalability since the number of potential clients of a service may be extremely large while a modest number of replicas is typically sufficient to achieve the desired levels of reliability and availability for the server object group. Yet another novelty of Jgroup rests in the fact that a single paradigm — group method invocation — governs both client-to-server and server-to-server interactions.
The main publications related to Jgroup are the following:
- The specification for a group membership service (GMS) and a reliable multicast service (RMS) for asynchronous, partitionable distributed systems [ICDCS98] [ADS99] [TSE01].
- Integration of the previous specification with Java RMI, an object-oriented middleware for remote method invocations. The resulting specification and the Jgroup implementation are described in [DAIS99] [SPE08] [MAI09].
- Integration of Jgroup with Jini [ICDCS01].
- Other results in group communication [WRSM03]
Jgroup has been partially funded by Sun Microsystems.
[ICDCS98] Ozalp Babaoglu, Renzo Davoli, Alberto Montresor, and Roberto Segala. System support for partition-aware network applications. In Proc. of the 18th Int. Conference on Distributed Computing Systems (ICDCS’98), pages 184–191. IEEE, Amsterdam, The Netherlands, May 1998. [PDF], [Bibtex] .
[ADS99] Ozalp Babaoglu, Renzo Davoli, and Alberto Montresor. Group communication in partitionable systems: Specification and algorithms. In Sacha Krakoviak and Santosh Shirivastava, editors, Advances in Distributed Systems, number 1752 in Lecture Notes in Computer Science, pages 48–78. Springer-Verlag, 1999. [PDF], [Bibtex].
[DAIS99] Alberto Montresor. The Jgroup reliable distributed object model. In Proc. of the 2nd IFIP Int. Working Conference on Distributed Applications and Interoperable Systems (DAIS’99), pages 389–402. Kluwer, Helsinki, Finland, June 1999.[PDF], [Bibtex].
[TSE01] Ozalp Babaoglu, Renzo Davoli, and Alberto Montresor. Group communication in partitionable systems: Specification and algorithms. IEEE Transactions on Software Engineering, 27(4):308–336, April 2001. [PDF], [Bibtex].
[WRSM03] Alberto Bartoli, Cosimo Calabrese, Milan Prica, Etienne Antoniutti Di Muro, and Alberto Montresor. Adaptive message packing for group communication systems. In Proc. of the Workshop on Reliable and Secure Middleware(WRSM’03), number 2889 in Lecture Notes in Computer Science, pages 912–925. Springer-Verlag, 2003. [PDF], [Bibtex].
[ICDCS01] Alberto Montresor, Renzo Davoli, and Ozalp Babaoglu. Enhancing jini with group communication. In Proc. of the 21st International Conference on Distributed Computing Systems Workshops (ICDCS’01). IEEE, Phoenix, AZ, USA, April 2001. [PDF], [Bibtex].
[EDCC05] Bjarne Helvik, Hein Meling, and Alberto Montresor. An approach to experimentally obtain service dependability characteristics of the Jgroup/ARM system. In Proc. of the 5th European Dependable Computing Conference (EDCC’05). Springer, Budapest, Hungary, April 2005. [PDF] , [Bibtex].
[SPE08] Hein Meling, Alberto Montresor, Bjarne Helvik, and Ozalp Babaoglu. Jgroup/ARM: A distributed object group platform with autonomous replication management. Software Prac. Exper., 38(9):885–923, July 2008. [PDF], [Bibtex].
[MAI09] Hein Meling and Alberto Montresor. Type-safe dynamic protocol composition in Jgroup/ARM. In Proc. of the 3rd Int. DiscCoTec Workshop on Middleware-Application Interaction (MAI’09), pages 1–6. ACM, Lisbon, Portugal, June 2009. ISBN 978–1-60558–489-8. [PDF], [Bibtex].