1 / 40

M2MC: Middleware for Many to Many Communication over broadcast networks

M2MC: Middleware for Many to Many Communication over broadcast networks. Chaitanya Krishna Bhavanasi 03329003 Under the guidance of Prof Sridhar Iyer Kanwal Rekhi School of Information Technology, IIT Bombay, Powai, Mumbai-76, India. B. A. C. D. G2. B . A. E. C. D. A. B. G1.

gwyneth
Download Presentation

M2MC: Middleware for Many to Many Communication over broadcast networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. M2MC: Middleware for Many to Many Communication over broadcast networks Chaitanya Krishna Bhavanasi 03329003 Under the guidance of Prof Sridhar Iyer Kanwal Rekhi School of Information Technology, IIT Bombay, Powai, Mumbai-76, India

  2. B A C D G2 B A E C D A B G1 Introduction B A C • Middleware • Communication Paradigms E D (3) (1) (2) (4)

  3. M2MC middleware data Application Application msg M2MC M2MC packet Broadcast Layer Broadcast Layer

  4. Motivation

  5. Application ApplGrpMngrClass 5 A ApplGrpMngrInterface MSP 7 4 6 B GJLP Group Manager C E 2,3 MOP Message Receiver/Buffer 8 D 1 BroadcastReceiver BroadcastSender Architecture

  6. Components • MOP • GJLP • MSP • GroupManager • Broadcast Layer • Application

  7. Operations • For creating a new group • For joining an existing group • For sending a message to group • On receiving a message from broadcast layer • Member Synchronization

  8. Message Ordering Protocol • Primary objective: • Capturing semantic relationship at sender. • Representing this relationship and conveying it to receiver. • Maintain these relationships with minimum overhead.

  9. Relation between Sb and Hb

  10. Sb Ordering • Definition

  11. Ordering Tree OTR C2 C1 B1 A1

  12. Sb Ordering Properties • Response semantics • Uniqueness • Transitivity

  13. Protocol Briefly • At sender: • Captures and sends Sb information • At receiver: • Maintains Sb order information and determines the action to be taken for received message.

  14. Notation • Gid, pid, seqno,mid • Message Format: midc,midp,gid,data • Data Strucutures • OT • OSMS

  15. State Diagram

  16. State Diagram after delivering RCV_Deliverable In seq RECEIVED Out of order By default RCV_OutofSeq Msg received INITIAL LISTEN For sending msg RESPOND After storing in cache After sending msg

  17. Protocol Illustration

  18. Correctness • MOP preserves Sb ordering • (OTR, A1, A2, …An) be messages in OT. • For n=1, • Hypothesis: MOP delivers (OTR,A1, A2,…,Am) in Sb order. • Induction Step: • If midp is node Am • If midp is any node Ak in OT • If midp is not in OT.

  19. Liveness • MOP is liveness preserving. • Every message sent to the group will be eventually delivered. • Message M and Response R • M delivered. • M not received.

  20. Algorithm and Data structures • Ordering List • InsertInOL(seqnoj) • IsPresent(seqnoj) • OSMT • InsertInOSMT(midc,midp,data) • putOSMsgsInOL(midc)

  21. OSMS

  22. Complexities • Time Complexity: 0(n^2) • Space Complexity: O(m)

  23. Group Join/Leave Protocols • For newly connected processes to know information about the groups. • For reconnected process to know information about new groups.

  24. Protocol Briefly • At Sender • At every process on receiving advertisement • At every process on receiving groups information • For leaving a group.

  25. Notations & Data Structures • <grpInfo>: gid,desc, cMemList, lMemList • <advMsg>: pid • <grpsInfoList>: list of <grpInfo> • <joinMsg>: pid,gid , <leaveMsg>:pid,gid • DataStrucutre: GroupsInfoIndexTable Desc, memlist gid1 gid2 Desc, memlist gid3 Desc, memlist Desc, memlist gid4

  26. CreateNewGrp joinMsg leaveMsg received UpdateGrpInfo for creating new group after updating for advertising SendAdv sentAdv Initial no GrpInfo msg left in the list leave group SendLeaveMsg On received GrpInfoList sent infolist received Adv RecvGrpsInfoList SendGrpInfoList For each GrpInfoMsg in the list after sending if process joins the group SendJoinMsg State Diagram

  27. Member Synchronization Protocol • process that newly joined a group • process that rejoined the group.

  28. Protocol Briefly • At sender • Other processes on receiving SyncReqMsg • Sender on receiving SyncRespMsg • Other processes on receiving SyncRespMsg.

  29. Notations & Data Structures • Notations • SyncSeqno • <SyncMsgId>:<pid, SyncSeqno, gid> • <SyncMsgList>:<list of Msgs> Msg is of the form <midc,midp,data> • <SyncReqMsg>: <SyncMsgId, SyncMsgList> • <SyncRespMsg>: <SyncMsgId, SyncMsgList> • DataStructure • Group Messages List: • Message Identities Repository: • Process Sync Status Index Table:

  30. State Diagram

  31. Protocol Illustration ACB B A m1 m1 m1 m1m2 m1m2 C B A m1m2 m1m2 m1

  32. Application ApplGrpMngrClass 5 A ApplGrpMngrInterface MSP 7 4 6 B GJLP Group Manager C E 2,3 MOP Message Receiver/Buffer 8 D 1 BroadcastReceiver BroadcastSender Architecture

  33. Java Implementation: MOP

  34. GrpJLProtocol AdMsg adMsg GrpInfoMap grpInfoMap GroupManager GrpInfoList grpInfoList LeaveMsg leaveMsg JoinMsg joinMsg sendAdvMsg() adMsgReceived(AdMsg adMsg) createNewGrp(String desc) sendJoinMsg() sendLeaveMsg() grpInfoListRecv(GrpInfoList ) leaveMsgRecv(LeaveMsg leaveMsg) Java Implementation: GJLP

  35. Java Implementation: MSP

  36. Java APIs for Application Developer • Class: GroupManager • Interface: ApplGrpManagerInterface

  37. Threaded Chat Application

  38. ApplGrpMngrClass ApplGrpMgnrInterface ApplGrpMgnrClass void sendMsg2Appl(LinkedList msgList, Gid gid) void displayNewGrpInfo(GrpInfo grpInfo) Void createNewGroup(Gid gid)

  39. Threaded Chat Application • ChatConsole • DynaTree • DynaTreeNode • NewGrpConsole • CreateNewGrpWindow

  40. Demo

More Related