Title: Context Aware Computing
1Context Aware Computing
2First Paper
- I used mostly A Survey of Context-Aware Mobile
Computing Research, Chen and Kotz, Dartmouth
(Tech Report) instead of Schilits paper (which
is the original paper coining the term) - Context-aware computing
- Mobile computing application that can discover
and take advantage of contextual information - A first step towards ubiquitous computing?
- What is contextual information?
- Example user profile, location, time,
temperature, nearby people or facilities, - Instead of adapting systems and applications to
mobility so that mobility is hidden, explore and
support new mobile aware applications
3(No Transcript)
4Part I Definitions/Taxonomy
5Defining Context
- Dictionary definition the interrelated
conditions in which something exists or occurs - One definition Schilit
- Computing context connectivity, communication
cost, bandwidth, nearby resources (printers,
displays, PCs) - User context user profile, location, nearby
people, social situation, activity, mood - Physical context temperature, lighting, noise,
traffic conditions - Authors add Time context (time of day, week,
month, year) - Context history can also be useful
6Context (contd)
- Is all this information necessary?
- Context is the set of environmental states and
settings that either determines an applications
behavior or in which an application event occurs
and is interesting to the user - Active context influences the behavior of the
application - Location in a call forwarding application
- Passive context context that is relevant but not
critical - Active map application display location name and
other people in the room - Is all this information measurable?
- Temperature? Location? People around? Social
situation? Mood?
7Context-Aware computing
- How to take advantage of this context
information? - Schilits classification of CA applications
- Proximate selection user interface where nearby
objects are emphasized/made easier to choose - Automatic contextual reconfiguration a process
of adding/removing components or changing
relationships between components based on context
change - Contextual information and commands produce
different results according to the context in
which they are issued - Context-triggered actions rules to specify how
the system should adapt - Are these fundamental/inclusive?
8Alternative Taxonomy Pascoe,Dey
- Pascoe Taxonomy of context-aware features
- Contextual sensing how to determine the context
- Contextual resource discovery
- Contextual augmentation how to associate data
with the context - Dey maps to services for CA apps
- Presentation of information/services to users
- Execution of services
- Tagging of context to information for later
retrieval
9Authors classification
- Follows from the definition of context
- Active Context Awareness an application
automatically adapts to discovered context by
changing the applications behavior - Passive context awareness an application
presents the new or updated context to an
interested user or makes the context persistent
for the user to retrieve later
10Part 2 Survey of Context-aware Applications
11App. Survey
- 10 applications surveyed, chronologically
ordered - We will look at a few
- Try to notice common threads
- Our second paper is a detailed look at one of
these applications
12PARCTab System
- Characteristic
- From Xerox Palo Alto Research Center
- 12 applications
- Applications
- Active Map
- Location information
- (Room number)
- The others
- Some helps the user find the most convenient
local resources - e.g. nearest printer
- An application makes ParcTab as a remote control
Figure ParcTab Terminal
13Active Badge System
- Characteristic
- From Olivetti Research Lab in 90s
- One of the first context-aware systems
- Office personnel wear badges (IR signal)
- Applications
- Call Forwarding
Figure Locations of the office personnel with
badges
14Call Forwarding
- Location of employees is shown to receptionist
- Receptionist forwards calls to the nearest phone
- Eventually, receptionist was removed from the
loop calls forwarded automatically - Is this a good idea?
- What if you were in an important meeting? (or
taking a nap!) - What if a private call is forwarded to a non
private room? - Context-aware communication
- What is the context?
- What about an active map application?
15Mobisaic Web Browser
- Extend browsers to refer to dynamic contextual
information - Dynamic URLs with contextual/environment
variables - Variables get bound to current context when the
URL is referenced - Also support active documents
- As the context changes, the document is
automatically updated - What types of context can be useful here?
- Active or passive?
16Shopping Assistant
- Scenario you are at home depot trying to figure
out what you need to finish your basement - Shopping assistant can
- Tell you what parts you need
- Where to find them relative to your location in
the store - What is on sale
- Do comparative pricing
- Use your previous profile information to
customize shopping and delivery - What context? Active/passive?
17CyberGuide
- Characteristic
- From Georgia Tech
- Provide information services to a tourist
- Direction
- Background information
- Travel diary (automatically recorded)
- Indoor and Outdoor Version
- Indoor
- Using IR (infrared)
- Outdoor
- Using GPS
Figure Outdoor Cyberguide Screenshot, etc.
18Augmented Reality
- Users view of the real world is augmented with
additional information - Scenario 1 you wear sun-glasses with a display
and headphones and walk in downtown Rome - As you move around, the glasses can tell you your
location - As you look at the coliseum you get information
about it - Scenario special ops squad infiltrating an enemy
complex wearing the same gizmos - In addition to information as above, the glasses
change to night vision if lighting is not
sufficient - Context?
19GUIDE
- Developed in Lancaster University
- For Lancaster City visitors
- Using WaveLAN as communication infrastructure
- A tourist comes to a region(cell), then he
receives information of the region. - Information provided using
- Fujitsu TeamPad 7600 portable PC
- Java based http browser
Screenshot of GUIDE
20Adaptive GSM phone/PDA
- PDA notepad application changes its
characteristics depending on user activity - Large font when walking, small font when
stationary - Change the intensity level depending on the
lighting conditions - Phone decide ring volume or vibration depending
on situation - In hand, in a suitcase, on a table, in a
classroom/conference? - What is the context?
21Conference Assistant
- Assistant checks out conference schedule and
users interest to highlight which presentations
should be attended - Automatically present speaker names, title of
paper/other relevant info - May record slides, audio, questions, take notes
and tag them with the appropriate place in the
talk for later retrieval
22Location Aware Information Delivery
- Generate reminders to users as they enter
locations - Voice synthesis used to generate audio reminders
- Sorry, dear, I forgot is going to become
obsolete? - Several projects (MIT, Stanford, GaTech)
- CyberMinder (GaTech) uses a complex context
including nearby people, weather conditions - But what is the basic context needed here?
23Observations
- Human-Computer interaction can be improved with
context info - Intelligent applications? AI?
- Focus on simple context(s) e.g., location,
identity, time - Why arent other contexts used more heavily?
- Not that useful?
- Difficult to sense/model?
- Need more imagination?
- A natural consequence of these being mobile
applications? - No killer app
- little gizmos of limited use
- Still to come?
24StartleCam
- From MIT Media Lab
- Composed with
- Wearable video camera
- Computer
- sensing system
- Save Image when the
- wearer is interested
- By sensing skin conductivity signal
Figure StartleCam System
25Sensing Context
26How to sense the context
- Sensing Location Use Global Positioning System
(GPS) - Some info http//www.cmtinc.com/gpsbook/index.htm
- GPS determines the distance by measuring the time
it takes a signal to propagate from Satellite to
receiver - Need to have very good synchronization of clocks
- Receive signal from three satellites to determine
location - Need a fourth satellite to estimate elevation
- Satellite GPS accuracy is getting reasonable
(10-20 meters) - Sub-meter accuracy possible with differential GPS
- But what to do indoors?
27Indoors
- GPS doesnt work because the satellite signal is
weak or reflected (lowers accuracy) - Need to build our own location tracking system
- difficult problem
- Use ideas similar to GPS compute distances from
known locations that send beacons
28Location Tracking
- We will look at the Bat system from ATT labs (as
part of our second paper) - Cricket (MIT, Mobicom 2001)
- RF and ultrasonic signals sent from each
basestation - Mobile estimates distance by time interval
between the two signal arrivals - Accuracy within a few feet
- RADAR (Microsoft) and other efforts
- Measure signal strength (or SNR) to estimate
distance - A set of static receivers track positions of
transmitters - They are queried for location
29Guide System Location Tracking
- Cellular system with base stations at areas of
interest - Non-overlapping cells
- Coarse Granularity Location
- You only know what area you are from by knowing
the basestation that you are in range of - Cells not overlapping can lose track of location
completely
30Sensing other low level contexts
- Time?
- Physical sensors possible
- Light, acceleration, tilt, sound, temperature,
pressure, proximity of humans - Nearby objects?
- If system keeps track of location of objects,
query to a database - Bandwidth? Odyssey
- Orientation?
- Orientation sensor based on two mercury switches
(Newton MessagePad) - Directional antennas/directional transmitters?
31High Level contexts
- This is by far the more difficult problem
- Not just an engineering challenge
- Psychology, sociology, ??
- How does a node know whether this is a party or a
wake? - Check your calendar or detect the cake/coffin?
32Sensing Context changes
- Publish subscribe model?
- Monitor polls the current context
- Notifies subscribers to the context
- Centralized or on a per-node?
- Polling rate is a function of rate of change of
context
33Modeling Context Information
34Location Model
- How do we answer questions such as
- Given an object what is its location
- Given a location, return the set of objects there
- Determining paths between locations
- How does a vehicle navigation system do it?
- Geographical Information Systems/Spatial
Databases - Already pretty mature (part of Oracle, mysql,
etc..) - Model geometry and topology
- Typically locations are organized hierarchically
- Sonal Dedhias project
35Security and Privacy Issues
- I personally hate the idea that someone can know
my location all the time - I still refuse to get a cell phone, but it looks
like I will finally cave in! - Par for the course, many of these systems ignore
privacy and security issues
36Second Paper
- The Anatomy of a Context-Aware Application Andy
Harter, Andy Hopper, Pete Steggles, Andy Ward and
Paul Webster. ATT Labs, Cambridge, UK (cont)
37Overview
- Paper describes the system components necessary
to support a context-aware application - Location system
- Data model
- Distributed object model
- Resource Monitors
- Spatial monitors
- Working system, real details
- So what is the application? Teleporting/follow-me
- Application follows you as you move around a
building - Hmm!! Virtual dog?
- Definitely some gaming applications
- But what else? Virtual nanny?
- Framework not specific to this application
38Location System
- Would like
- Fine grained (accurate in space)
- High update rate (accurate in time)
- Inexpensive
- Works indoors
- Argue for ultrasonic
- Optical expensive detectors line of sight
limitations - GPS dies indoors
- RF multipath
39Bat Unit
- Radio transceiver, ultrasonic transducer and
control logic - Each bat has a GUID
- Base station transmits a periodic message with
the GUID corresponding bat responds with
ultrasound - Use speed of sound in air (estimated from ambient
temperature) to estimate location - Ultrasonic receivers detect the delay and map it
to distance - Use multiple receivers to get 3D location using
multilateration - Reflections of ultrasonic waves statistical
outlier elimination (can same techniques be
applied to RF multipath?)
40Bat (contd)
41Bat Unit (cont.)
- It takes 20 ms between bat readings 50
timeslots per base station per second - Allow echos to die
- Location can be used to measure orientation
- Attach many bats to the same object. Use the
measurements to infer the orientation - If too cumbersome, can check shadow of a single
bat - Base station can provide Location
Quality-of-service to allocate time slots to bats
based on the expected update frequency - Bats carried by people few times a second
- Bats attached to workstation once every few
minutes
42Bat Unit (cont.)
- Bats perform handover when moving from one base
station to another (similar to the cellular
networks) - Hand off decisions can also be made based on the
Bat location - Battery consumption is low, power consumed
depends on the update frequency and power state - Several updates a second several month lifetime
- 95 of samples within 9cms of actual location
- 95 of samples within 25 degrees with multiple
bats within 70 degrees for a single bat
(orientation) - Bat is good enough to be used as a 3D mouse it
has buttons and can communicate with basestation
43How well does it work?
44Modeling the environment
- Detailed model describing entities in the real
world and their possible interactions - Environment consists of real objects should use
OO modeling (agree?) - Modeling language based on entity relation
diagrams and multiple inheritance - Modeled people, computers, keyboards, monitors,
networks, telephones and furniture - Use CORBA and databases to implement persistent
distributed objects
453 Tier Architecture
46Populating and Updating the Model
- Some elements are static (e.g., furniture)
- but some are dynamic (e.g., is a keyboard in
use) - need to be updated automatically
- Centralized data repository (to optimize
information access) - Three classes of resource monitors
- Machine activity e.g. keyboard activity
- Machine resource e.g. CPU usage, memory usage
- Network point-to-point bandwidth and latency
47Client level event filters
- Update Frequency
- The frequency at which items are monitored is
based on how quickly the item tends to change - Relevancy
- If a value has not changed significantly, it is
not sent. This value depends on the data being
monitored - Caching
- Caching improves performance at the cost of
consistency
48Location Update
- Each Bat location is tracked
- Translated into object location in a type
specific way (e.g., person different than
workstation)
49API
- Absolute and relative spatial facts
- Person is at (x,y,z) facing in direction ? .vs.
Person is standing in front of the monitor - Geometric containment is used for relative
spatial facts
monitor
person
Contained(person, screenspace)
50Reasoning about Space
51Scalability
- With many devices, containment is complex
- They use containment tree indexing system (a
quad-tree based approach)
52Implementation
- BAT teleportation system
- With their earlier active badge based
teleportation system, they only knew that a user
was in the room and so they had to cycle between
multiple displays in a room - If a particular display was being use, they would
still cycle that display because they did not
monitor machines - If a machine is dead, their system would still
wait because they did not monitor machines - With the BAT system, they have more accurate
location information - Event driven programming style
53Zones and Buttons
Action
monitor
Maintain
- Action zone triggers teleportation
- Within maintain zone, teleported desktops are
maintained