Group Communication Service by Abhijeet Dharmapurikar Jesse Greenwald Sapna Gumidyala Shashidhar...

Preview:

Citation preview

Group Communication Service

by

Abhijeet Dharmapurikar

Jesse Greenwald

Sapna Gumidyala

Shashidhar Rampally

Varsha Mahadevan

IntroductionWhat 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 ExamplesTele-teaching ApplicationCard Game Application

Tele-Teaching Application<protocol> <roles> <role name="Student" min="1" max="n"/> <role name="Teacher" min="1" max="1"/> </roles> <message-types> <message-type name="Question"/> <message-type name="Answer"/> <message-type name="Formula"/> <message-type name="Doubt"/> <message-type name="TeacherAnswer"/> </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="60s"/> </pattern> <pattern> <query type="Formula” min="1" max="1"/> <response type="Doubt" min="0" max="#Student" timeout="120s"/> </pattern> </message-patterns>

Card Game Application<protocol> <roles> <role name="Player1" min="1" max="1"/> <role name="Player2" min="1" max="1"/> <role name="Player3" min="1" max="1"/> <role name="Player4" min="1" max="1"/> </roles> <message-types> <message-type name="Play"/> </message-types> . . .</protocol>

Card Game Application (contd)

<message-patterns> <pattern> <message type="Play" role="Player1" min="1" max="1”

receiver="Player1,Player2,Player3,Player4"/> <message type="Play" role="Player2" min="1" max="1” receiver="Player1,Player2,Player3,Player4"/> <message type="Play" role="Player3" min="1" max="1” receiver="Player1,Player2,Player3,Player4"/> <message type="Play" role="Player4" min="1" max="1” receiver="Player1,Player2,Player3,Player4"/>

</pattern> </message-patterns>

Related ConceptsProactive MessagesReactive Messages

System Design

Application Protocol

Group Membership Protocol

Correlation Protocol

Ordering Protocol

Filtering Protocol

Event Service

Message Send Sequence Diagram

Clients

Group Manager

System Design

Application Protocol

Group Membership Protocol

Correlation Protocol

Ordering Protocol

Filtering Protocol

Event Service

CORBACommon Object Request Broker Arch.Object Management Group (OMG)

Defines IDL LanguageDefines the API for ORB

Object ServicesName ServiceEvent ServiceNotification ServiceTime ServiceTransaction ServicePersistent State Service

Event Service

Event Channel

Supplier Supplier Supplier

Consumer Consumer

Push Communication Model

I wish to decide when the data is to be sent

Just call my methodwhenever you have

data for me

Push Supplier Push ConsumerInitiative

DATA

Pull Communication Model

Just call my method whenever you want data

Pull SupplierInitiative

DATA

I wish to decide whento go for data

Pull Supplier

System Design

Application Protocol

Group Membership Protocol

Correlation Protocol

Ordering Protocol

Filtering Protocol

Event Service

Filtering ProtocolFilters 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 UpdatedView 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 Formatstruct Message

{

long messageId;

long source;

long destination;

string message;

char messageType;

boolean isProactive;

};

struct SequenceMessage

{

long messageId;

long source;

long destination;

long sequenceId;

};

Ordering ProtocolSequencer based algorithm

Send 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 ProtocolBuffered ordering of reactive messages

with respect to proactive messagesTele-Teaching Example

Question (proactive message) Answer (reactive message)

CorrelatorHandles relationship between

messagesCould be imagined as a smart tree-

structured bufferPatterns

X –Y5 - Z2

X

Y

Y

Y

Y

Y

z

z

z

z

z

z

z

z

z

z

System Design

Application Protocol

Group Membership Protocol

Correlation Protocol

Ordering Protocol

Filtering Protocol

Event Service

Group Membership RolesRoles for the membership protocol

Groups Administrator Group Manager Member

Related Concept View

Groups Administrative Class

Membership Message Formats

struct JoinGroup

{

long member;

};

struct LeaveGroup

{

long member;

};

struct UpdateView

{

long messageId;

long source;

viewSeq view;

};

Group Membership Protocol

GManager

NM M1 M2 M3

GM GM GM GM

Event Channel

JoinGroup UpdateView UpdateView UpdateView

Configurable Protocol Stack (1)

DownQueue

DownQueue

UpQueue

UpQueue

UpHandler DownHandler

UpHandler DownHandler

Protocol 1

Protocol 2

Configurable Protocol Stack (2)

Configurable Protocol Stack (3)

OptimizationsSave round trip to sequencer for

reactive messages Tele-Teaching example Card Game example

Selective build of required layers in the protocol stack

Group Communication IssuesOne channel per group conceptAtomicity of broadcast messagesOrdering of membership messages with

respect to broadcast messages Implicit notion of proactive membership

messagesSupport for uni-cast communication

ConclusionPossible extensions

Cross Group Communication Fault-Tolerance issues Group State Management

References

Lecture Notes http://www.cis.ksu.edu/~singh/CIS825/F02/c

is825.htmlJava Groups

http://www.cs.cornell.edu/Info/Projects/JavaGroupsNew/

Event Service Specification http://cgi.omg.org/docs/formal/01-03-01.pdf

Recommended