Architecture for Context-Aware Services in Gaia Anand Ranganathan
Why context? Situational information, or context, increases richness of communication in human-computer interaction Makes it possible to produce more useful computational services
Challenges in using context To develop a taxonomy and uniform representation of context types Infrastructure to promote design, implementation and evolution of context- aware applications Discovery of compelling context-aware applications Issues of privacy and security
Different types of context Physical – Location, Time Environmental – Weather, stock quotes, sports scores Social – Activity, Individual & Group dynamics, Moods Application – , websites visited System – network traffic, status of printers
Context-Aware Apps Context-Aware Planner Context-Aware Ambience Generator
Context-Aware Planner Gives suggestions for an individual can plan out his activities Uses context like: Location Time Weather Movie listings Concert/Symphony timings History of what he/she has done
Context-Aware Planner- 2 Group activities can be planned Using social context between two or more people – like similar interests, relationship, etc. Context-Aware Ambience Generator
Based on moods of persons in room, social contexts, festivals, whether there’s a football game going on, etc. suitably changing the ambience of a room Music, lighting, TV/radio
Specifying context Apps must be able to specify what type of context they want and in what format. Context sensors must be able to send context to the apps. Format should be flexible and extensible Standardised?
XML for specifying context Apps to specify context they require Context Type App ID (UCR/IOR) Real Time / History Event based / Polling Time to live Format Boolean expression (for notifications ) Granularity / Reliability
XML for specifying context –2 Context sensors send apps their context Context Type Timestamp SourceID (UCR) Value of context
What do context-aware apps want? Contextual information in a format they can understand (eg in temp in C or F) Want to be notified when a context they are interested in occurs (eg. When temp > 98 F) Want to be able to poll or query certain types of context (eg. What is temp now?) Want to access context history (how did temp change ?) Don’t care about actual context sensor
Infrastructure Context Engine Context Widget Context Provider Context Synthesizer Context History App
Context Widget Actually senses the context Eg. The Ibutton reader, RF badge basestation Gets address of context provider(s) and sends it events
Context Provider Stores subscriptions of context consumers and sends them events Apps can also query them Can do some interpretation / translation of context from one form to another
Context Engine Similar to Trader Service Context providers “advertise” the context they provide, the granularity, real-time/history, etc. with CE Context consumers query CE for appropriate context.
Context Synthesizers Makes use of more than one context to give another contextual cue. Eg. Deducing if a meeting is taking place based on no. of people, sound, whether there’s a powerpoint ppt. Is a context consumer and context provider
Context History Databases that subscribe to contextual information Keep recording specific contexts like the location of a person Is also a context consumer + context producer
More details ContextProvider interface GetContext(XMLFile) GetContext(XMLFile, IOR) ContextConsumer interface SendContext(XMLFile)
Future issues Resolving ambiguous context Where does privacy fit in?