![Page 1: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/1.jpg)
Context-Aware Applications
![Page 2: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/2.jpg)
Introduction
Context-aware is ware applications can discover and take advantage of contextual information such as User location, time of day, nearby people
and devices and user activity. There are now quite a few different
examples of context-aware applications but are not widely available.
We will briefly discuss several applications and issues related to defining and maintaining context.
![Page 3: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/3.jpg)
Defining 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 …
Physical context: temperature, lighting, noise, traffic conditions …
In addition there is time context (time of day, week, month, year…) Context history can also be useful
![Page 4: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/4.jpg)
Defining Context
Another view of context: “Context is the set of environmental states and settings that either determines an application’s 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
![Page 5: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/5.jpg)
Defining Context
There are two ways to use context: Automatically adapt the behavior of the
application based on the context (active context).
Present the context to the user on the fly or store the context for the user to retrieve later (passive context).
![Page 6: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/6.jpg)
Defining Context-Aware Computing
Follows from the definition of context
1. Active context awareness: An application automatically adapts to discovered context by changing the application’s behavior.
2. 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.
![Page 7: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/7.jpg)
Example Application: Call Forwarding
Based on a predecessor of Active Bats System called Active Badges
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?
What is the context? The context is the user location which is active. There is no passive context.
![Page 8: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/8.jpg)
Example Application: Teleporting
Teleporting is sometimes called “follow-me” computing
Uses Bats Dynamically maps the user interface
onto the resources of the surrounding computing and communication facilities.
Context User’s location (active) No passive context
![Page 9: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/9.jpg)
Example Application: Active Map
For Xerox Parc Location information is collected directly
from the “Parc Tab system” Individual faces are shown at the
locations of people on the map which is updated every few seconds, allowing people to be located quickly or to notice a meeting one might want to attend.
Context: User’s location (passive) No active context
![Page 10: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/10.jpg)
Example: Shopping Assistant
Scenario: You are at the 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
Context Customer’s location within the store (active) No passive context
![Page 11: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/11.jpg)
Example: Augmented Reality
User’s 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 Location including orientation (active)
![Page 12: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/12.jpg)
Example: Adaptive 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?
Context: User’s activity, light level pressure and proximity of
other people.
![Page 13: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/13.jpg)
Example Application: Office Assistant
The assistant is an agent that interacts with visitors at the office door and manages the office owner’s schedule.
Assistant is activated when visitor approaches (detected by two pressure sensitive mats placed on both sides of the office door).
Assistant adapts behavior based on visitor identity, office owner’s schedule and busy status and willingness of owner to see visitor.
Context Office owner’s current activity and schedule (active).
![Page 14: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/14.jpg)
Example Application: Where am I?
(Active map)
![Page 15: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/15.jpg)
What’s near me? Find this for me
(Resource discovery)
“Print map on a color printer,” and system sends data to nearest available free color printer and tellsyou how to get there Location by “intent”
![Page 16: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/16.jpg)
How do I get to Jorg’s office?
![Page 17: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/17.jpg)
Observations
Location is the most heavily used context A natural consequence of these being mobile
applications?
Why aren’t other contexts used more heavily? Not that useful? Difficult to sense? Need more imagination?
No killer app.; little gizmos of limited use Still to come?
![Page 18: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/18.jpg)
Sensing Low-Level Contexts Beyond Location
Time Easy to collect from the built-in clock of the
computer Nearby objects
If the system records the locations of people and other objects, it is relatively easy to figure out who and what are near us by just querying the location database.
![Page 19: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/19.jpg)
Sensing Low-Level Contexts Beyond Location
Specially designed sensors can sense some low-level types of physical context. Examples include: Photodiode to detect light level IR sensor to detect the proximity of humans A microphone to detect sound Possible to build sensors for temperature
![Page 20: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/20.jpg)
Sensing High-Level Contexts
Raw contextual information includes location, noise level and temperature.
An example of high-level context information is user’s “current activity” Difficult to sense complex social contexts – Example:
Lots of people in a room could indicate a party or a wake.
One approach is based on machine vision which is uses camera technology and image processing.
Another approach is to consult the user’s calendar directly to find out what the user is suppose to be doing.
Yet another approach is to use AI techniques to infer context by combining several simple low-level sensors.
![Page 21: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/21.jpg)
Sensing 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
![Page 22: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/22.jpg)
Modeling Context Information 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
Security and Privacy IssuesDo we really want our location to be
known all the time?
![Page 23: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/23.jpg)
Symbolizing Location
Applications may require a wide variety of location representations. Precise coordinate systems will be needed
for some applications. There may be higher levels of abstraction
needed depending on the application semantics.
![Page 24: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/24.jpg)
Modeling the Environment
Detailed model describing entities in the real world and their possible interactions.
This model sets out the types, names, capabilities and properties of all entities which are relevant to context-aware application.
The extent of the data model defines the limits of the context-aware system’s view of the world and thus the possible applications.
We will now look at one approach described in “The Anatomy of a Context-Aware Application”.
![Page 25: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/25.jpg)
Systems Infrastructure
Use CORBA and databases to implement persistent distributed objects
Objects are stored in the database as rows of data and associated operations are in SQL.
Accessed by a proxy server that receives CORBA calls.
Some information is updated too frequently to be stored in a database (e.g., information from Bat sensors)
Possible for thousands objects; proxies may want to cache.
![Page 26: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/26.jpg)
Updating the Model
To populate the database, information about real world objects and their properties must be gathered.
Elements that frequently change, need to have those changes detected and entered into the database automatically (or as much as possible).
![Page 27: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/27.jpg)
Updating the Model
Example: System information such as keyboard activity or machine load.
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
Used to provide a windowing-system-independent means for a user to access his desktop environment from any networked machine.
![Page 28: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/28.jpg)
Client level event filters
Thought must be put into the design of resource monitors to ensure that the database does not become a bottleneck
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
![Page 29: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/29.jpg)
Location-Aware API
Absolute and relative spatial facts “Person is at (x,y,z) facing in direction ” .vs. “Person
is standing in front of the monitor” Ideally, it is not the task of the application to
translate absolute spatial facts into relative spatial facts.
To automate the process of translation, a simple method of formalizing relative spatial facts is required.
Approach: Express relative spatial facts about objects in terms
of geometric containment relationships between spaces associated with those objects.
![Page 30: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/30.jpg)
Location-Aware API
Geometric containment is used for relative spatial facts
monitor person
Contained(person, screenspace)
![Page 31: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/31.jpg)
Location-Aware API
Scalability With many devices, containment is complex Use a containment tree indexing system (a
quad-tree based approach)
![Page 32: Context-Aware Applications. Introduction r Context-aware is ware applications can discover and take advantage of contextual information such as m User](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649e8e5503460f94b915fb/html5/thumbnails/32.jpg)
Location-Aware API
Interaction between applications and spatial monitors Applications associate a space with an object type Applications register callbacks for given spatial facts
(e.g., when a person space becomes contained by a workstation space)
Location events are generated Location events are associated with objects. The spaces associated with a given object is looked
up which generates a stream of space location events.
This is used as input to an indexing system which generates stream of containment events.