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.