+ All Categories
Home > Technology > Jgroups - Toolkit for Reliable Multicast Communication

Jgroups - Toolkit for Reliable Multicast Communication

Date post: 17-May-2015
Category:
Upload: irfan-aris-nurhakim
View: 821 times
Download: 6 times
Share this document with a friend
Popular Tags:
18
JGROUPS A Toolkit for Reliable Multicast Communication Wednesday, April 24, 13
Transcript

JGROUPSA Toolkit for Reliable Multicast Communication

Wednesday, April 24, 13

• Introduction

• API and Architecture

• Protocols

• Building Blocks

• Group Membership

• Conclusion

OVERVIEW

Wednesday, April 24, 13

INTRODUCTION• What is JGroups?

• Toolkit for Reliable Multicast Communication

• Fragmentation

• Message retransmission

• Ordering

• Group membership, membership change notification, etc.

• LAN or WAN basedWednesday, April 24, 13

INTRODUCTION

• Where JGroups fits in?

Unreliable Reliable

Unicast UDP TCP

Multicast IP Multicast JGroups

Wednesday, April 24, 13

API & ARCHITECTURE

Wednesday, April 24, 13

CHANNEL

• Lower-Level Abstraction to build Multicast Communication Apps provided by JGroups.

• Similar to socket from Java

• Operations :

• Create a channel with a set of properties

• Connect to a group X. Everyone that connects to X will see each other

• Send a message to all members of X Wednesday, April 24, 13

BUILDING BLOCKS

• Group communication pattern

• Layered on top of channels

• More sophisticated APIs

• Applications communicate directly with the building block, rather than the channel.

• Composed with many basic multicast function

Wednesday, April 24, 13

BUILDING BLOCKS

Wednesday, April 24, 13

FLEXIBLE PROTOCOL STACK• The most powerful feature of JGroups!!

• Contains a number of protocol layers in a bidirectional list.

• A message sent by Channel is simply passed to the protocol stack which in turn forwards it to the top most layer.

• Available Protocol :

• Transport: UDP, TCP, TCP_NIO, TUNNEL, JMS, LOOPBACK

• Discovery: PING, TCPPING, TCPGOSSIP, UDPPING

• Reliable delivery & FIFO: NAKACK, SMACK

• Group membership, Failure Detector, Security, Fragmentation, Virtual Synchrony, Ordering, etc.

Wednesday, April 24, 13

GROUP MEMBERSHIP SERVICE• Task :

• Maintain a list of members

• Notify members when a new member joins, or an existing member leaves (or crashes)

• Each member has the same ordered list

• List can be retrieved by Channel.getView()

• First (= oldest) member is coordinator

• If coord crashes, 2nd oldest takes over Wednesday, April 24, 13

VIRTUAL SYNCHRONY

• A View is a list of members (A,B,C,D)

• When members join/leave, a new view will be installed (A,C,D)

• Every healthy member receives the same set of messages between subsequent views

• Messages sent in V1 are received in V1

• All msgs by sender received in same order

Wednesday, April 24, 13

VIRTUAL SYNCHRONY• The FLUSH protocol ensures that all members have received

all msgs in V1 before installing V2

• New members won’t receive messages from previous views

• Member that left won’t receive msgs

Wednesday, April 24, 13

FAILURE DETECTION

• Failure detection protocol sends up SUSPECT event

• VERIFY_SUSPECT double checks

• GMS multicasts new view (not containing crashed member)

• If member resurfaces, it will be shunned

• Has to leave and rejoin group

Wednesday, April 24, 13

FAILURE DETECTION

• Task :

• Detect if a member has crashed and send SUSPECT event up the stack (to be handled by GMS)

• Logical ring over membership

• Each member pings its neighbor to the right

Wednesday, April 24, 13

FAILURE DETECTION

Wednesday, April 24, 13

CONCLUSION

• Jgroups merupakan toolkit yang bisa dipakai saat akan membangun suatu aplikasi yang membutuhkan aspek reliability dalam komunikasi grup.

• Jgroups sangat modular dan mudah untuk dimodifikasi sesuai dengan kebutuhan aplikasi

• Pengembang aplikasi bisa lebih fokus terhadap persoalan apa yang mau dipecahkan oleh aplikasinya.

Wednesday, April 24, 13

REFERENCE

• JavaGroups - Group Communication Patterns in Java, Bela Ban. 1998

• Design and Implementation of a Reliable Group Communication Toolkit for Java, Bela Ban, -

• Jgroup Tutorial and Programmer’s Manual, Albert M. dkk. 2002.

• Reliable and Secure Distributed Programming 2nd Ed, C. Cachin dkk. 2011.

• http://www.jgroups.org

• https://github.com/belaban/JGroups

Wednesday, April 24, 13

Thank you & Question?

Wednesday, April 24, 13


Recommended