21
A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover 04 February 2010

A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 1

A Brief Introduction to Rover

• Spring 2010• 04 February

2010

CMSC818G

• Christian Almazan

Presenter

04 February 2010

Page 2: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 2

ObjectivesHigh level overview of Rover:

◦What is the purpose of Rover?◦What does it do?◦What does it not do?◦How can you use Rover?

Make sure you understand Rover enough to evaluate how to use it in your projects.

04 February 2010

Page 3: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 3

Background: Organizational Units

Finance

Research and

Development

Marketing

Identify Similarities and Differences:◦ Employee Records◦ Schemas /

Ontologies◦ Relationships◦ Services◦ Interactions

04 February 2010

Page 4: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 4

Overall Goals of Rover

Managing and

Mitigating

Context

Data Sources and Services

Messaging Logging

Uniform Access

04 February 2010

Page 5: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 5

What Rover Does Not AddressUsability / Human-Computer

InteractionAuthorizationPrivacy IssuesDissonant InformationMisinformationMethods of ReasoningSchema and Ontology DevelopmentDistributed Version of Rover

04 February 2010

Page 6: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 6

Rover Ecosystem and Entities

04 February 2010

Page 7: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 7

Rover Server

Rover Server

HistoryContextServiceMessage

Message

Call History

Active Context Context Provenance

AuthenticationChecker

MessageHandler

04 February 2010

Page 8: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 8

AuthenticationCredential-Based Authentication

◦Domain◦Username◦Password

Each domain has an associated checker:◦One checker could be used for multiple

Rover ecosystems.◦More than one checker allowed per

server.◦Checkers may be local or remote.

04 February 2010

Page 9: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 9

Authentication Process

Verification Phase Notification Phase

Rov

er S

erve

rC

heck

erE

ntity

Yes

No

No

YesReceive

Credentials

Checker Available for

Domain?

Receive Credentials

Send Remote Object Interface

Receive Remote Object Interface

Input Credentials

Entity Verified, Stay Connected

Not Logged In

Entity Not Verified, Disconnect

Credentials Verified?

Entity Wants to Log Into Rover Server

Logged In

Stored Credentials

Send Credentials

04 February 2010

Page 10: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 10

Context RepresentationSimilar to an RDF triple (forms a

graph):◦{subject, predicate, object}

Our context entries look as follows:

04 February 2010

identifier Each entry on a Rover server has a unique ID.

subject Domain/Username – Who the entry describes.

predicate

Root/Leaf – Relationship between subject/object.

object The value of the entry.

creator Who created the entry.

evidence Supporting data why the entry exists, if available.

timestamp

When the context arrives at the Rover server.

Page 11: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 11

Context Entry Example

04 February 2010

Entity

Root

Leaf Leaf

Root

Leaf Leaf

Christian

Location

GPS Building

Physiological

Hunger Thirst

Page 12: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 12

Context MethodsSubscription to Context

◦Subscribe (WatchContext)◦Unsubscribe (UnwatchContext)

Querying Context◦Field Query (QueryContext)◦By Reference

(QueryContextByReference)Updating Context

◦Your Own (InformContext)◦Others (SupplyContext)

04 February 2010

Page 13: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 13

Quick Note on Active ContextContext that can be query

immediately will be stored as active context.◦The Rover server logs all context updates.

InformContext and SupplyContext has two important parameters:◦pruneRoot – remove tree containing the

root◦removeLeaf – remove leaf if it is there

Example – Location Update04 February 2010

Page 14: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 14

Context Watchers and Providers

04 February 2010

Page 15: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 15

ServicesEntities which provide a service

indicate their availability to the Rover server:◦Publication (PublishService)◦Removal (UnpublishService)

Entities can use services:◦List Services

(ListAllServices/ListRelevantServices)◦Call Services (CallService)

Services may specify required and optional context, which will be forwarded.

04 February 2010

Page 16: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 16

MessagingAn entity may send a message

directly to another entity.◦SendMessage

An entity may send a message to other entities which satisfy certain criteria based on context.◦BroadcastMessage

04 February 2010

Page 17: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 17

Historical InformationThe Rover server stores the

following:◦All context updates:

Query with ObtainContextProvenance

◦All calls to the server: Query with ObtainCallHistory Includes all request and response data.

Use a combination of both to reconstruct a series of events or active context.

04 February 2010

Page 18: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 18

Interfaces

04 February 2010

Perspective Broker (TCP and TLS)◦Python/Twisted (asynchronous)◦Java/TwistedJava Client (not asynchronous)

HTTP and HTTPS (JSON for objects)

PBRover Server

PB

HTTPRoverProxy

Entity

Entity

Entity

Page 19: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 19

Mobility Support

04 February 2010

Mobile devices may disconnect frequently:◦Use a Rover proxy to store context

subscriptions and messages for an entity.

Published services cannot use a proxy.

PBRover Server

PB

HTTPRoverProxy

Entity

Entity

Entity

Page 20: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 20

V911 Example

04 February 2010

Page 21: A Brief Introduction to Rover 1 Spring 2010 04 February 2010 CMSC818G Christian Almazan Presenter A Brief Introduction to Rover04 February 2010

A Brief Introduction to Rover 21

Questions?

04 February 2010

Rover 5◦ Class Implementation◦ Not directly backward

compatible w/Rover 4

Rover 4◦ Demo Implementation◦ If you want to extend

V911, sample code will be made available.