A Context Aware Framework

beansproutscompleteSoftware and s/w Development

Dec 13, 2013 (4 years and 19 days ago)

361 views

A Context Aware Framework

Mark Assad

Supervisor: Bob Kummerfeld

Goals Of The Project


Design a framework for context aware
applications.


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


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


What is Context Aware?


The

term

context
-
awareness

was

introduced

in

1994

to

describe

a

new

class

of

computer

software

application

that

exploits

the

changing

environment

of

a

mobile

computer

user
.



What is Context?


Hard to define.


Been defined as:


location,


identities of the people around the user


the time of day


season


Temperature


etc.


Examples Of Context Systems


“Active Whiteboard”


GUIDE, an intelligent
electronic tourist
guide


IEEE 802.11


Nearest base station
locating.


Guided Tour Of an Art
Museum.



Local Sensors


Bluetooth


People who own a
phone, carry it with
them.


Modern phones
communication with
Bluetooth.


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

2.50m.
3.00m.
0.90m
Local Sensors (cont.)


Location of the Printer


Number of queued jobs


Is there a problem with the printer?

Local Applications


Print Manager


Find the closest printer to me.


Location context of the current user


Location context of the printers


Which printer will be ready soonest?


Number of queued jobs on the printer?


Is the printer jammed/Out of Paper?

Context Tool
-
Kit


Design of a toolkit to support these problems.


Use a simple already developed messaging protocol.


Provide an API to communicate between context
devices.


Security/Authorisation


Store information historically


Highly scalable


lots of context emitting devices in
the world


Defining Context


How do you define what the context
information is?


E.g. The format for the location of the printer,
and the location of the user must be similar
so that they can be compared.

Spread Messaging Systems


WAN Multicast
Network


Reliable and

unreliable message
passing


Efficient Multicast


Group Based


Spread Server
Spread Server
Spread Server
Spread Group Services


Every user has a private group


Every user can connect to a public group.


Any user can join any public group


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


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



How Does this map to Context?


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


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


Example


Interested in knowing when someone
enters g62 in the Madsen Building.


Client joins the group assigned to g62.


Sensors will send messages to the g62 group
when an event occurs.

Example 2


Interested in finding the location of an
entity. Where is Mark?


Client joins the group assigned to “Mark”


Sensors who currently know about “Mark”,
would have also joined the assigned group


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


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?


Lots of different types of Context.


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


Use a similar technique to DNS.

Two types of entities


Fixed Location Items


Desktop Computers


Printers


Rooms


Floating Items


People

Finding Fixed Entities


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


Description to follow a similar plan to
domain names.


Example:


G62.f09.buildings.usyd.sydney.nsw.au

Example (cont.)


G62.f09.buildings.usyd.sydney.nsw.au


1) Find name server for “.au”, then “.nsw”
etc. down to “g62”.


Each server returns the Group ID for the
subgroup below it.


Clients can then cache these Group IDs for
future use.

Finding a floating entity.


Harder!!!


Client who wants to find a user knows it’s
GroupID, so can send a direct query.


What about the sensors?


They need to convert a real world data into a
Spread GroupID.

What does a hierarchical structure
allow?


Allows
subscriptions at a
higher level.

AU

NSW

SYDNEY

USYD

F09

G62

G90

F11

419

Library Overview


Context Toolkit


Name Lookups


Subscription


Callback Interface


Blocking receive


Context Structure

SPREAD

SPREAD C++ Wrapper

Context Toolkit

Python

Binding

???

Binding

APPLICATION