Group Communication

Jgroup is an inte­gra­tion of group tech­no­lo­gy with distri­bu­ted objec­ts. Jgroup sup­ports a pro­gram­ming para­digm cal­led object groups that ena­bles deve­lo­p­ment of relia­ble and highly-avai­la­ble ser­vi­ces based on repli­ca­tion. Clients inte­ract with an object group imple­men­ting some distri­bu­ted ser­vi­ce throu­gh an exter­nal group group method invo­ca­tion (EGMI) faci­li­ty. Jgroup hides the fact that ser­vi­ces may be imple­men­ted as object groups rather than sin­gle objec­ts so that clien­ts using them throu­gh EGMI need not be repro­gram­med. Servers making up the group object, on the other hand, coor­di­na­te their actions so as to achie­ve glo­bal con­si­sten­cy of the sta­te distri­bu­ted among them throu­gh an inter­nal group method invo­ca­tion (IGMI) faci­li­ty. Strong gua­ran­tees pro­vi­ded by Jgroup for both EGMI and IGMI in the pre­sen­ce of fai­lu­res and reco­ve­ries (inclu­ding par­ti­tio­ning and mer­ging of the com­mu­ni­ca­tion net­work) grea­tly sim­pli­fy the task of appli­ca­tion deve­lo­pers.

Jgroup has been hea­vi­ly influen­ced by our pre­vious pro­ject Relacs). The main focus of Relacs was the spe­ci­fi­ca­tion of a par­ti­tio­na­ble group com­mu­ni­ca­tion system for­mu­la­ted in terms of pro­ces­ses inte­rac­ting throu­gh mul­ti­ca­st mes­sa­ges. In par­ti­cu­lar, the pro­per­ties gua­ran­teed for IGMI clo­se­ly resem­ble what is kno­wn as view syn­chro­ny seman­tics for group com­mu­ni­ca­tion. One of the inno­va­tions of Jgroup is the inte­gra­tion of EGMI seman­tics with tho­se of IGMI without requi­ring clien­ts to beco­me full fled­ged mem­bers of the ser­ver object group. This is a fun­da­men­tal requi­re­ment for sca­la­bi­li­ty sin­ce the num­ber of poten­tial clien­ts of a ser­vi­ce may be extre­me­ly lar­ge whi­le a mode­st num­ber of repli­cas is typi­cal­ly suf­fi­cient to achie­ve the desi­red levels of relia­bi­li­ty and avai­la­bi­li­ty for the ser­ver object group. Yet ano­ther novel­ty of Jgroup rests in the fact that a sin­gle para­digm — group method invo­ca­tion — governs both client-to-ser­ver and ser­ver-to-ser­ver inte­rac­tions.

The main publi­ca­tions rela­ted to Jgroup are the fol­lo­wing:

  • The spe­ci­fi­ca­tion for a group mem­ber­ship ser­vi­ce (GMS) and a relia­ble mul­ti­ca­st ser­vi­ce (RMS) for asyn­chro­nous, par­ti­tio­na­ble distri­bu­ted systems [ICDCS98] [ADS99] [TSE01].
  • Integration of the pre­vious spe­ci­fi­ca­tion with Java RMI, an object-orien­ted midd­leware for remo­te method invo­ca­tions. The resul­ting spe­ci­fi­ca­tion and the Jgroup imple­men­ta­tion are descri­bed in [DAIS99] [SPE08] [MAI09].
  • Integration of Jgroup with Jini [ICDCS01].
  • Other resul­ts in group com­mu­ni­ca­tion [WRSM03]

Jgroup has been par­tial­ly fun­ded by Sun Microsystems.


[ICDCS98]   Ozalp Babaoglu, Renzo Davoli, Alberto Montresor, and Roberto Segala. System sup­port for par­ti­tion-aware net­work appli­ca­tions. 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 com­mu­ni­ca­tion in par­ti­tio­na­ble systems: Specification and algo­ri­thms. In Sacha Krakoviak and Santosh Shirivastava, edi­tors, Advances in Distributed Systems, num­ber 1752 in Lecture Notes in Computer Science, pages 48–78. Springer-Verlag, 1999. [PDF][Bibtex].

[DAIS99]   Alberto Montresor. The Jgroup relia­ble distri­bu­ted 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 com­mu­ni­ca­tion in par­ti­tio­na­ble systems: Specification and algo­ri­thms. 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 mes­sa­ge pac­king for group com­mu­ni­ca­tion systems. In Proc. of the Workshop on Reliable and Secure Middleware(WRSM’03), num­ber 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 com­mu­ni­ca­tion. 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 expe­ri­men­tal­ly obtain ser­vi­ce depen­da­bi­li­ty cha­rac­te­ri­stics 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 distri­bu­ted object group plat­form with auto­no­mous repli­ca­tion mana­ge­ment. Software Prac. Exper., 38(9):885–923, July 2008. [PDF][Bibtex].

[MAI09]   Hein Meling and Alberto Montresor. Type-safe dyna­mic pro­to­col com­po­si­tion 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].