Object Eventing Service

27
Object Eventing Service Michael Boyle and Michael Rounding

description

Object Eventing Service. Michael Boyle and Michael Rounding. Today’s Presentation…. Project objectives, motivation Design concepts Hypothetical Walk-through Application Example: IM. Objectives. Design a shared dictionary/notification service architecture - PowerPoint PPT Presentation

Transcript of Object Eventing Service

Page 1: Object Eventing Service

Object Eventing Service

Michael Boyle and Michael Rounding

Page 2: Object Eventing Service

Today’s Presentation…

Project objectives, motivationDesign conceptsHypothetical Walk-through Application Example: IM

Page 3: Object Eventing Service

Objectives

Design a shared dictionary/notification service architectureEmphasis on flexibility, programmabilityPersistency of shared distributed objectsSimplicity of notification service

Page 4: Object Eventing Service

Proposed Applications

Real-time synchronous groupware e.g., Tele-pointers — need speed!

Semi-synchronous groupware e.g., NC — persistent state!

Generic file systemE-mail, IM, other groupware

Page 5: Object Eventing Service

Motivation

Lack of existing toolkitsDeficiencies in existing toolkitsLearning opportunity

Page 6: Object Eventing Service

Design Topics

TreeSubscriptionsNotificationsUPLs, BlockadesSubscription PoolsQualities of service

Page 7: Object Eventing Service

OES Tree

Hierarchy of named nodesLike a file systemGlobal namespaceNodes have values and childrenValues are arbitrary binary data

Hypothetical tree showing logons

Hypothetical tree showing logons

root mikey logons name value

workstation1

workstation2

home_pc

136.159.7.220

136.159.7.220

136.159.7.220

Page 8: Object Eventing Service

Subscriptions

Says what sub-tree to watch for changesSays how far down the tree to watch for changesLeased by clientsGrouped into contracts

Mikey: changes <= 2

levels

Page 9: Object Eventing Service

Notifications

Generated on every actionSubscriptions evaluated up the hierarchyStart at modified nodeOne delivery per action per contract

Value change

d!

I’ll let my subscribers know and pass

it on.

I’ll let my subscribers know and pass

it on.

Sure is quiet

today…

Page 10: Object Eventing Service

Barricades and UPLs

Barricades explicitly block notification passingUpward propagation limit

Says how far up the tree to process subscriptions

No more subscriptions processed

Value change

d!

I’ll let my subscribers know and pass

it on.

Change! Pass it twice, please.

I’ll let my subscribers know and

pass it once…

I’ll let my subscribers know

and that’s it.

I’ll let my subscriber

s know, but it goes no further!

Page 11: Object Eventing Service

Subscription Pools

Arbitrarily re-route subscription processingNon-hierarchical subscription topologies“A common meeting point”

We subscribers need to know

about the same set of

information

As a subscription pool, I can track a specific, custom

set of notifications.

Page 12: Object Eventing Service

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

Page 13: Object Eventing Service

Implementation Preliminaries

Database tablesWire protocol

Page 14: Object Eventing Service

Database Tables

SubscriptionPoolBarricadeQoSUpl

ContentNodenameParent_NodeidNodeid

NODE Table

QoSExpiry

ConnectinfoContractid

CONTRACT Table

Last notif. infoQoS

DepthNodeidContractid

SUBSCRIPTION Table

Page 15: Object Eventing Service

Wire Protocol

Based on HTTPRequest-responseSmall vocabularyXML content bodiesExtensible, portable

Page 16: Object Eventing Service

An Application In Depth

Instant Messaging Buddy list On-line presence status Instant inboxes for exchanging

messages Group on-line presence awareness

Page 17: Object Eventing Service

Hypothetical TreePeople

boylem

Status: Online

Instant Inboxes

rounding

saul

boylem

saul

Status: Idle

Instant Inboxes

Groups

GroupLab

StatusSubscriptio

nPool

IMRoot

rounding

Page 18: Object Eventing Service

Status: offline

When boylem’s Client Starts…

1. Set boylem\Status

2. Lease contract3. List Instant

Inboxes1. For each, place a

subscription on that person’s Status

2. Reflect state in UI

boylem

Status: online

Instant Inboxes

rounding

saul

Status: Idle

roundingSubscribe:

boylem

Page 19: Object Eventing Service

When boylem’s Client Starts

4. Subscribe boylem\Instant Inboxes subtree

5. Subscription pool to \Groups\ GroupLab\ Status

6. Subscribe \Groups\ GroupLab\ Status

boylem

Status: online

Instant Inboxes

rounding

saulSubscribe:

boylem

Groups

GroupLab

StatusSubscriptio

nPool

Subscribe: boylem

Page 20: Object Eventing Service

When rounding IMs boylem…

1. Post to boylem\Instant Inboxes\rounding

2. Guaranteed notification generation

3. Subscription on boylem\Instant Inboxes triggers UI

boylem

Status: online

Instant Inboxes

rounding

saul

rounding says:

“Monkey!”

Page 21: Object Eventing Service

When rounding IMs boylem

4. New window5. Subscribe to

boylem\…\rounding

Mike Boyle Says:

Mike Rounding Says:

Monkey!

Mike Boyle

Subscribe from

boylem to rounding

Page 22: Object Eventing Service

If rounding’s status changes

1. Set rounding\Status

2. Sub. pool to GroupLab\Status

3. Notify boylem4. Reflect in UI

Groups GroupLab

StatusSubscriptio

nPool

rounding\status: idlerounding\status: online

boylem

Mike Boyle

Contacts:

Mike Rounding

Saul Greenberg

Page 23: Object Eventing Service

What this example showed

SubscriptionsNotificationsSubscription pools

Page 24: Object Eventing Service

What wasn’t shown

Upward propagation limitsBarricades/blockadesSubscription depths

These provided to prevent server from being swamped processing

subscriptions!

Page 25: Object Eventing Service

Challenges Not Yet Faced

ImplementationScalabilityRobustnessPerformanceSecurityTransactionality

Page 26: Object Eventing Service

Summary

Goals: flexibility, generalityConcepts: tree, subscriptions, notificationsAdvantages: haven’t cornered ourselvesGood ideas: based on robust platformOutlook: needs implementation

Page 27: Object Eventing Service

Thanks…