Download
object eventing service n.
Skip this Video
Loading SlideShow in 5 Seconds..
Object Eventing Service PowerPoint Presentation
Download Presentation
Object Eventing Service

Object Eventing Service

184 Views Download Presentation
Download Presentation

Object Eventing Service

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Object Eventing Service Michael Boyle and Michael Rounding

  2. Today’s Presentation… • Project objectives, motivation • Design concepts • Hypothetical Walk-through • Application Example: IM

  3. Objectives • Design a shared dictionary/notification service architecture • Emphasis on flexibility, programmability • Persistency of shared distributed objects • Simplicity of notification service

  4. Proposed Applications • Real-time synchronous groupware • e.g., Tele-pointers — need speed! • Semi-synchronous groupware • e.g., NC — persistent state! • Generic file system • E-mail, IM, other groupware

  5. Motivation • Lack of existing toolkits • Deficiencies in existing toolkits • Learning opportunity

  6. Design Topics • Tree • Subscriptions • Notifications • UPLs, Blockades • Subscription Pools • Qualities of service

  7. OES Tree root mikey logons name value workstation1 136.159.7.220 • Hierarchy of named nodes • Like a file system • Global namespace • Nodes have values and children • Values are arbitrary binary data workstation2 136.159.7.220 home_pc 136.159.7.220 Hypothetical tree showing logons

  8. Subscriptions Mikey: changes <= 2 levels • Says what sub-tree to watch for changes • Says how far down the tree to watch for changes • Leased by clients • Grouped into contracts

  9. Notifications • Generated on every action • Subscriptions evaluated up the hierarchy • Start at modified node • One delivery per action per contract I’ll let my subscribers know and pass it on. I’ll let my subscribers know and pass it on. Value changed! Sure is quiet today…

  10. I’ll let my subscribers know, but it goes no further! Barricades and UPLs I’ll let my subscribers know and pass it on. • Barricades explicitly block notification passing • Upward propagation limit • Says how far up the tree to process subscriptions • No more subscriptions processed Value changed! I’ll let my subscribers know and that’s it. I’ll let my subscribers know and pass it once… Change! Pass it twice, please.

  11. Subscription Pools • Arbitrarily re-route subscription processing • Non-hierarchical subscription topologies • “A common meeting point” As a subscription pool, I can track a specific, custom set of notifications. We subscribers need to know about the same set of information

  12. Qualities of Service • Notification generation • Two puts but only notification for most recent • Notification delivery • Clients know of delivery failures • Notification receipt • Cache latest notification for partially disconnected clients

  13. Implementation Preliminaries • Database tables • Wire protocol

  14. NODE Table Nodeid Parent_Nodeid Nodename Content Upl QoS Barricade SubscriptionPool CONTRACT Table Contractid Connectinfo SUBSCRIPTION Table Expiry QoS Contractid Nodeid Depth QoS Last notif. info Database Tables

  15. Wire Protocol • Based on HTTP • Request-response • Small vocabulary • XML content bodies • Extensible, portable

  16. An Application In Depth • Instant Messaging • Buddy list • On-line presence status • Instant inboxes for exchanging messages • Group on-line presence awareness

  17. Hypothetical Tree IMRoot People boylem Status: Online Instant Inboxes rounding saul rounding Status: Idle Instant Inboxes boylem saul Groups GroupLab Status Subscription Pool

  18. When boylem’s Client Starts… • Set boylem\Status • Lease contract • List Instant Inboxes • For each, place a subscription on that person’s Status • Reflect state in UI boylem Status: offline Status: online Instant Inboxes rounding saul Subscribe: boylem rounding Status: Idle

  19. When boylem’s Client Starts • Subscribe boylem\Instant Inboxes subtree • Subscription pool to \Groups\ GroupLab\ Status • Subscribe \Groups\ GroupLab\ Status boylem Status: online Instant Inboxes rounding Subscribe: boylem saul Groups GroupLab Status Subscription Pool Subscribe: boylem

  20. When rounding IMs boylem… • Post to boylem\Instant Inboxes\rounding • Guaranteed notification generation • Subscription on boylem\Instant Inboxes triggers UI boylem rounding says: “Monkey!” Status: online Instant Inboxes rounding saul

  21. Mike Boyle Mike Boyle Says: Mike Rounding Says: Monkey! Subscribe from boylem to rounding When rounding IMs boylem • New window • Subscribe to boylem\… \rounding

  22. If rounding’s status changes • Set rounding\Status • Sub. pool to GroupLab\Status • Notify boylem • Reflect in UI rounding\status: idle rounding\status: online Groups GroupLab Status Subscription Pool boylem Mike Boyle Contacts: Mike Rounding Saul Greenberg

  23. What this example showed • Subscriptions • Notifications • Subscription pools

  24. What wasn’t shown • Upward propagation limits • Barricades/blockades • Subscription depths These provided to prevent server from being swamped processing subscriptions!

  25. Challenges Not Yet Faced • Implementation • Scalability • Robustness • Performance • Security • Transactionality

  26. Summary • Goals: flexibility, generality • Concepts: tree, subscriptions, notifications • Advantages: haven’t cornered ourselves • Good ideas: based on robust platform • Outlook: needs implementation

  27. Thanks…