a context aware framework mark assad supervisor: bob kummerfeld

23
A Context Aware A Context Aware Framework Framework Mark Assad Mark Assad Supervisor: Bob Supervisor: Bob Kummerfeld Kummerfeld

Post on 18-Dec-2015

218 views

Category:

Documents


1 download

TRANSCRIPT

A Context Aware A Context Aware FrameworkFramework

Mark AssadMark Assad

Supervisor: Bob KummerfeldSupervisor: Bob Kummerfeld

Goals Of The ProjectGoals Of The Project

• Design a framework for context Design a framework for context aware applications.aware applications.

• Design and implement a small Design and implement a small number of sensors for context aware number of sensors for context aware applications.applications.

• Write a small collection of context Write a small collection of context aware applications for the aware applications for the framework.framework.

What is Context Aware?What is Context Aware?

• The term context-awareness was The term context-awareness was introduced in 1994 to describe a new introduced in 1994 to describe a new class of computer software class of computer software application that exploits the application that exploits the changing environment of a mobile changing environment of a mobile computer user.computer user.

What is Context?What is Context?

• Hard to define.Hard to define.

• Been defined as:Been defined as:

• location,location,

• identities of the people around the useridentities of the people around the user

• the time of daythe time of day

• seasonseason

• TemperatureTemperature

• etc.etc.

Examples Of Context Examples Of Context SystemsSystems• ““Active Whiteboard”Active Whiteboard”

• GUIDE, an GUIDE, an intelligent electronic intelligent electronic tourist guidetourist guide– IEEE 802.11IEEE 802.11– Nearest base station Nearest base station

locating.locating.

• Guided Tour Of an Guided Tour Of an Art Museum.Art Museum.

Local SensorsLocal Sensors

• BluetoothBluetooth– People who own a People who own a

phone, carry it with phone, carry it with them.them.

– Modern phones Modern phones communication with communication with Bluetooth. Bluetooth.

– Can be used to Can be used to detect if someone is detect if someone is in a room.in a room.

2.50

m.

3.00m.

0.90m

Local Sensors (cont.)Local Sensors (cont.)

• Location of the PrinterLocation of the Printer

• Number of queued jobsNumber of queued jobs

• Is there a problem with the printer?Is there a problem with the printer?

Local ApplicationsLocal Applications

• Print ManagerPrint Manager– Find the closest printer to me.Find the closest printer to me.

•Location context of the current userLocation context of the current user

•Location context of the printersLocation context of the printers

– Which printer will be ready soonest?Which printer will be ready soonest?•Number of queued jobs on the printer?Number of queued jobs on the printer?

• Is the printer jammed/Out of Paper?Is the printer jammed/Out of Paper?

Context Tool-KitContext Tool-Kit

• Design of a toolkit to support these Design of a toolkit to support these problems.problems.– Use a simple already developed messaging Use a simple already developed messaging

protocol.protocol.– Provide an API to communicate between Provide an API to communicate between

context devices. context devices. – Security/AuthorisationSecurity/Authorisation– Store information historicallyStore information historically– Highly scalable – lots of context emitting Highly scalable – lots of context emitting

devices in the worlddevices in the world

Defining ContextDefining Context

• How do you define what the context How do you define what the context information is?information is?– E.g. The format for the location of the E.g. The format for the location of the

printer, and the location of the user printer, and the location of the user must be similar so that they can be must be similar so that they can be compared. compared.

Spread Messaging SystemsSpread Messaging Systems

• WAN Multicast WAN Multicast NetworkNetwork

• Reliable and Reliable and unreliable message unreliable message passingpassing

• Efficient MulticastEfficient Multicast

• Group BasedGroup Based Spread Server

Spread Server

Spread Server

Spread Group ServicesSpread Group Services

• Every user has a private groupEvery user has a private group• Every user can connect to a public Every user can connect to a public

group.group.• Any user can join any public group Any user can join any public group

– Once you have joined a group you will Once you have joined a group you will receive all messages to that groupreceive all messages to that group

• Can send a message to more than one Can send a message to more than one group at a time.group at a time.

How Does this map to How Does this map to Context?Context?

• Every “item” that can have context Every “item” that can have context must be represented on the network. must be represented on the network. (by it’s own group)(by it’s own group)

• That way you join a group to That way you join a group to subscribe to events for each item.subscribe to events for each item.

ExampleExample

• Interested in knowing when someone Interested in knowing when someone enters g62 in the Madsen Building.enters g62 in the Madsen Building.– Client joins the group assigned to g62.Client joins the group assigned to g62.– Sensors will send messages to the g62 Sensors will send messages to the g62

group when an event occurs. group when an event occurs.

Example 2Example 2

• Interested in finding the location of an Interested in finding the location of an entity. Where is Mark?entity. Where is Mark?– Client joins the group assigned to “Mark”Client joins the group assigned to “Mark”– Sensors who currently know about Sensors who currently know about

“Mark”, would have also joined the “Mark”, would have also joined the assigned groupassigned group

– Client sends a query to the group, Client sends a query to the group, appropriate sensors would then send a appropriate sensors would then send a reply to the clients private group.reply to the clients private group.

Example 2 (cont.)Example 2 (cont.)

Client MARK

Sensor

1. Query?

2. Query (sent to all sensors that have registered to know about Mark)

Answer

Client Program

Spread Group

How do I find these groups?How do I find these groups?

• Lots of different types of Context.Lots of different types of Context.

• Need to be able to mange the Need to be able to mange the addition and removing of entities addition and removing of entities from the network.from the network.

• Use a similar technique to DNS.Use a similar technique to DNS.

Two types of entitiesTwo types of entities

• Fixed Location ItemsFixed Location Items– Desktop ComputersDesktop Computers– Printers Printers – RoomsRooms

• Floating ItemsFloating Items– PeoplePeople

Finding Fixed EntitiesFinding Fixed Entities

• Needs a mapping from a fixed Needs a mapping from a fixed description to a Spread group.description to a Spread group.

• Description to follow a similar plan to Description to follow a similar plan to domain names.domain names.

• Example:Example:– G62.f09.buildings.usyd.sydney.nsw.auG62.f09.buildings.usyd.sydney.nsw.au

Example (cont.)Example (cont.)

• G62.f09.buildings.usyd.sydney.nsw.aG62.f09.buildings.usyd.sydney.nsw.auu– 1) Find name server for “.au”, then 1) Find name server for “.au”, then

“.nsw” etc. down to “g62”. “.nsw” etc. down to “g62”. – Each server returns the Group ID for the Each server returns the Group ID for the

subgroup below it. subgroup below it. – Clients can then cache these Group IDs Clients can then cache these Group IDs

for future use.for future use.

Finding a floating entity.Finding a floating entity.

• Harder!!!Harder!!!– Client who wants to find a user knows Client who wants to find a user knows

it’s GroupID, so can send a direct query.it’s GroupID, so can send a direct query.

• What about the sensors?What about the sensors?– They need to convert a real world data They need to convert a real world data

into a Spread GroupID. into a Spread GroupID.

What does a hierarchical What does a hierarchical structure allow?structure allow?

• Allows Allows subscriptions subscriptions at a higher at a higher level.level.

AUAU

NSWNSW

SYDNEYSYDNEY

USYDUSYD

F09F09

G62G62 G90G90

F11F11

419

Library OverviewLibrary Overview

• Context ToolkitContext Toolkit– Name LookupsName Lookups– SubscriptionSubscription

• Callback InterfaceCallback Interface

• Blocking receiveBlocking receive

– Context StructureContext Structure

SPREAD

SPREAD C++ Wrapper

Context Toolkit

PythonBinding

???Binding

APPLICATION