Group Communication Service - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Group Communication Service

Description:

Configurable protocol stack used by Java Groups ... Finding best-fit protocol stack for the above application. Optimization of number of messages ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 42
Provided by: sap761
Category:

less

Transcript and Presenter's Notes

Title: Group Communication Service


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

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

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

4
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

5
Illustrative Examples
  • Tele-teaching Application
  • Card Game Application

6
Tele-Teaching Application
  • ltprotocolgt
  • ltrolesgt
  • ltrole name"Student" min"1" max"n"/gt
  • ltrole name"Teacher" min"1" max"1"/gt
  • lt/rolesgt
  • ltmessage-typesgt
  • ltmessage-type name"Question"/gt
  • ltmessage-type name"Answer"/gt
  • ltmessage-type name"Formula"/gt
  • ltmessage-type name"Doubt"/gt
  • ltmessage-type name"TeacherAnswer"/gt
  • lt/message-typesgt
  • . . .
  • lt/protocolgt

7
Tele-Teaching Application (contd)
  • ltmessage-patternsgt
  • ltpatterngt
  • ltquery type"Question" role"Teacher"
    receiver"Student"
  • min"1" max"1"/gt
  • ltresponse type"Answer" role"Student
    receiver"Teacher"
  • min"0" max"Student"
    timeout"60s"/gt
  • lt/patterngt
  • ltpatterngt
  • ltquery type"Formula min"1" max"1"/gt
  • ltresponse type"Doubt" min"0"
    max"Student"
  • timeout"120s"/gt
  • lt/patterngt
  • lt/message-patternsgt

8
Card Game Application
  • ltprotocolgt
  • ltrolesgt
  • ltrole name"Player1" min"1" max"1"/gt
  • ltrole name"Player2" min"1" max"1"/gt
  • ltrole name"Player3" min"1" max"1"/gt
  • ltrole name"Player4" min"1" max"1"/gt
  • lt/rolesgt
  • ltmessage-typesgt
  • ltmessage-type name"Play"/gt
  • lt/message-typesgt
  • . . .
  • lt/protocolgt

9
Card Game Application (contd)
  • ltmessage-patternsgt
  • ltpatterngt
  • ltmessage type"Play" role"Player1" min"1"
    max"1 receiver"Player1,Player2,Player3
    ,Player4"/gt
  • ltmessage type"Play" role"Player2" min"1"
    max"1 receiver"Player1,Player2,Player3
    ,Player4"/gt
  • ltmessage type"Play" role"Player3" min"1"
    max"1 receiver"Player1,Player2,Player3
    ,Player4"/gt
  • ltmessage type"Play" role"Player4" min"1"
    max"1 receiver"Player1,Player2,Player3
    ,Player4"/gt
  • lt/patterngt
  • lt/message-patternsgt

10
Related Concepts
  • Proactive Messages
  • Reactive Messages

11
System Design
Application Protocol
Group Membership Protocol
Correlation Protocol
Ordering Protocol
Filtering Protocol
Event Service
12
Message Send Sequence Diagram
13
Group Manager
Clients
14
System Design
Application Protocol
Group Membership Protocol
Correlation Protocol
Ordering Protocol
Filtering Protocol
Event Service
15
CORBA
  • Common Object Request Broker Arch.
  • Object Management Group (OMG)
  • Defines IDL Language
  • Defines the API for ORB

16
Object Services
  • Name Service
  • Event Service
  • Notification Service
  • Time Service
  • Transaction Service
  • Persistent State Service

17
Event Service
Supplier
Supplier
Supplier
Event Channel
Consumer
Consumer
18
Push Communication Model
Push Supplier
Push Consumer
Initiative
I wish to decide when the data is to be sent
Just call my method whenever you have data for me
DATA
19
Pull Communication Model
Pull Supplier
Pull Supplier
Initiative
I wish to decide when to go for data
Just call my method whenever you want data
DATA
20
System Design
Application Protocol
Group Membership Protocol
Correlation Protocol
Ordering Protocol
Filtering Protocol
Event Service
21
Filtering Protocol
  • Filters based on
  • Message Type
  • Destination
  • Operates in two modes
  • JOIN_MODE
  • ONLINE_MODE

22
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.

23
System Design
Application Protocol
Group Membership Protocol
Correlation Protocol
Ordering Protocol
Filtering Protocol
Event Service
24
Message Format
  • struct Message
  • long messageId
  • long source
  • long destination
  • string message
  • char messageType
  • boolean isProactive
  • struct SequenceMessage
  • long messageId
  • long source
  • long destination
  • long sequenceId

25
Ordering Protocol
  • Sequencer 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

26
System Design
Application Protocol
Group Membership Protocol
Correlation Protocol
Ordering Protocol
Filtering Protocol
Event Service
27
Correlation Protocol
  • Buffered ordering of reactive messages with
    respect to proactive messages
  • Tele-Teaching Example
  • Question (proactive message)
  • Answer (reactive message)

28
Correlator
  • Handles relationship between messages
  • Could be imagined as a smart tree-structured
    buffer
  • Patterns
  • X Y5 - Z2

29
z
Y
z
z
Y
z
z
Y
X
z
z
Y
z
z
Y
z
30
System Design
Application Protocol
Group Membership Protocol
Correlation Protocol
Ordering Protocol
Filtering Protocol
Event Service
31
Group Membership Roles
  • Roles for the membership protocol
  • Groups Administrator
  • Group Manager
  • Member
  • Related Concept
  • View

32
Groups Administrative Class
33
Membership Message Formats
  • struct JoinGroup
  • long member
  • struct LeaveGroup
  • long member
  • struct UpdateView
  • long messageId
  • long source
  • viewSeq view

34
Group Membership Protocol
NM
M1
M2
M3
GManager
GM
GM
GM
GM
JoinGroup
UpdateView
UpdateView
UpdateView
Event Channel
35
Configurable Protocol Stack (1)
DownQueue
UpHandler
DownHandler
Protocol 1
UpQueue
DownQueue
UpHandler
DownHandler
Protocol 2
UpQueue
36
Configurable Protocol Stack (2)
37
Configurable Protocol Stack (3)
38
Optimizations
  • Save round trip to sequencer for reactive
    messages
  • Tele-Teaching example
  • Card Game example
  • Selective build of required layers in the
    protocol stack

39
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

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

41
References
  • Lecture Notes
  • http//www.cis.ksu.edu/singh/CIS825/F02/cis825.ht
    ml
  • Java Groups
  • http//www.cs.cornell.edu/Info/Projects/JavaGroups
    New/
  • Event Service Specification
  • http//cgi.omg.org/docs/formal/01-03-01.pdf
Write a Comment
User Comments (0)
About PowerShow.com