Group Communication Service by Abhijeet Dharmapurikar Jesse Greenwald

Group Communication Service by Abhijeet Dharmapurikar Jesse Greenwald Sapna Gumidyala Shashidhar Rampally Varsha Mahadevan

Introduction ® What is a Group Communication Service? ® Why do we need a Group Communication Service? ® Sample Applications ® Data Replication ® Process Groups

Introduction (contd) ® Existing Group Communication Services ® Java Groups ® Spread ® Configurable protocol stack used by Java Groups ® Scope for utilization of application specific information

Our Group Communication Service ® Using application specific information ® Message Types ® Message Patterns ® Finding best-fit protocol stack for the above application ® Optimization of number of messages

Illustrative Examples ® Tele-teaching Application ® Card Game Application

Tele-Teaching Application <protocol> <roles> <role name="Student" min="1" max="n"/> <role name="Teacher" min="1" max="1"/> </roles> <message-type name="Question"/> <message-type name="Answer"/> <message-type name="Formula"/> <message-type name="Doubt"/> <message-type name="Teacher. Answer"/> </message-types>. . . </protocol>

Tele-Teaching Application (contd) <message-patterns> <pattern> <query type="Question" role="Teacher" receiver="Student" min="1" max="1"/> <response type="Answer" role="Student” receiver="Teacher" min="0" max="#Student" timeout="60 s"/> </pattern> <query type="Formula” min="1" max="1"/> <response type="Doubt" min="0" max="#Student" timeout="120 s"/> </pattern> </message-patterns>

Card Game Application <protocol> <roles> <role name="Player 1" min="1" max="1"/> <role name="Player 2" min="1" max="1"/> <role name="Player 3" min="1" max="1"/> <role name="Player 4" min="1" max="1"/> </roles> <message-type name="Play"/> </message-types>. . . </protocol>

Card Game Application (contd) <message-patterns> <pattern> <message type="Play" role="Player 1" min="1" max="1” receiver="Player 1, Player 2, Player 3, Player 4"/> <message type="Play" role="Player 2" min="1" max="1” receiver="Player 1, Player 2, Player 3, Player 4"/> <message type="Play" role="Player 3" min="1" max="1” receiver="Player 1, Player 2, Player 3, Player 4"/> <message type="Play" role="Player 4" min="1" max="1” receiver="Player 1, Player 2, Player 3, Player 4"/> </pattern> </message-patterns>

Related Concepts ® Proactive Messages ® Reactive Messages

System Design Application Protocol Group Membership Protocol Correlation Protocol Ordering Protocol Filtering Protocol Event Service

Message Send Sequence Diagram

Group Manager Clients

System Design Application Protocol Group Membership Protocol Correlation Protocol Ordering Protocol Filtering Protocol Event Service

CORBA ® Common Object Request Broker Arch. ® Object Management Group (OMG) ® Defines IDL Language ® Defines the API for ORB

Object Services ® Name Service ® Event Service ® Notification Service ® Time Service ® Transaction Service ® Persistent State Service

Event Service Supplier Event Channel Consumer

Push Communication Model Push Supplier Initiative I wish to decide when the data is to be sent Push Consumer Just call my method whenever you have data for me DATA

Pull Communication Model Pull Supplier Initiative Just call my method whenever you want data Pull Supplier I wish to decide when to go for data DATA

System Design Application Protocol Group Membership Protocol Correlation Protocol Ordering Protocol Filtering Protocol Event Service

Filtering Protocol ® Filters based on ® Message Type ® Destination ® Operates in two modes JOIN_MODE ® ONLINE_MODE ®

Filtering Protocol cond. . JOIN_MODE: Allows only JOIN_GROUP messages Allows only Updated. View messages ONLINE_MODE: Allows all the messages Allows all messages except the messages to which its not a destination.

System Design Application Protocol Group Membership Protocol Correlation Protocol Ordering Protocol Filtering Protocol Event Service

Message Format struct Message { long message. Id; long source; long destination; string message; char message. Type; boolean is. Proactive; }; struct Sequence. Message { long message. Id; long source; long destination; long sequence. Id; };

Ordering Protocol ® Sequencer ® Send based algorithm broadcast message to all the members in the group and the sequencer ® Sequencer assigns ids to these broadcast messages in a strictly increasing order ® Member delivers the broadcast messages in the increasing order of sequencer ids

System Design Application Protocol Group Membership Protocol Correlation Protocol Ordering Protocol Filtering Protocol Event Service

Correlation Protocol ® Buffered ordering of reactive messages with respect to proactive messages ® Tele-Teaching Example ® Question (proactive message) ® Answer (reactive message)

Correlator ® Handles relationship between messages ® Could be imagined as a smart treestructured buffer ® Patterns X –Y 5 - Z 2

z z Y z X Y z z Y Y z z z

System Design Application Protocol Group Membership Protocol Correlation Protocol Ordering Protocol Filtering Protocol Event Service

Group Membership Roles ® Roles for the membership protocol ® Groups Administrator ® Group Manager ® Member ® Related ® View Concept

Groups Administrative Class

Membership Message Formats struct Join. Group { long member; }; struct Leave. Group { long member; }; struct Update. View { long message. Id; long source; view. Seq view; };

Group Membership Protocol GManager Join. Group NM M 1 M 2 M 3 GM GM Update. View Event Channel Update. View

Configurable Protocol Stack (1) Down. Queue Protocol 1 Up. Handler Down. Handler Up. Queue Down. Queue Protocol 2 Up. Handler Up. Queue Down. Handler

Configurable Protocol Stack (2)

Configurable Protocol Stack (3)

Optimizations ® Save round trip to sequencer for reactive messages ® Tele-Teaching example ® Card Game example ® Selective build of required layers in the protocol stack

Group Communication Issues ® One channel per group concept ® Atomicity of broadcast messages ® Ordering of membership messages with respect to broadcast messages ® Implicit notion of proactive membership messages ® Support for uni-cast communication

Conclusion ® Possible ® Cross extensions Group Communication ® Fault-Tolerance issues ® Group State Management

References ® Lecture Notes ® http: //www. cis. ksu. edu/~singh/CIS 825/F 02/c is 825. html ® Java Groups ® http: //www. cs. cornell. edu/Info/Projects/Java Groups. New/ ® Event Service Specification ® http: //cgi. omg. org/docs/formal/01 -03 -01. pdf
- Slides: 41