Context Free Applications
Download
Report
Transcript Context Free Applications
Context-Aware Applications
Introduction
Context-aware aware 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.
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
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:
application
Influences
the
behavior
of
the
• 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
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.
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.
Example Application:
Teleporting
Teleporting is sometimes called “follow-me”
computing
Dynamically maps the user interface onto
the resources of the surrounding
computing and communication facilities.
Context
User’s location (active)
No passive context
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
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
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)
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.
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).
Example Application: Where am
I?
(Active map)
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 tells
you how to get there
Location by “intent”
How do I get to Jorg’s office?
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?
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.
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
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.
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
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 Issues
Do we really want our location to be
known all the time?
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.
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”.
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 of objects; proxies may
want to cache.
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).
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.
Location-Aware API
Geometric containment is used for relative
spatial facts
monitor
person
Contained(person, screenspace)
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.
Discussion
As we can see even for simple queries
about relationships this can be quite
complex.
How efficient is this?
We haven’t really discussed privacy.