231 likes | 434 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.
E N D
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.
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 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.) 1. Query? MARK Client 2. Query (sent to all sensors that have registered to know about Mark) Answer Sensor 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? AU • Allows subscriptions at a higher level. NSW SYDNEY USYD F09 F11 G62 G90 419
Library Overview • Context Toolkit • Name Lookups • Subscription • Callback Interface • Blocking receive • Context Structure SPREAD SPREAD C++ Wrapper Context Toolkit Python Binding ??? Binding APPLICATION