A Survey of Context-Aware Mobile Computing Research

advertisement
Context-aware Computing:
Basic Concepts
金仲達教授
清華大學資訊系統與應用研究所
九十三學年度第一學期
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics
 Summary

Pervasive Computing
Context-aware Computing-1
Sources
“Out of Context: Computer Systems That Adapt
to, and Learn from, Context,” H. Lieberman, T.
Selker, MIT
 “A Survey of Context-Aware Mobile Computing
Research,” by G. Chen, D. Kotz, Dartmouth
College
 “Context-Aware Applications Survey,” M. Korkeaaho, Helsinki University of Technology
 Slides from Jason I. Hong, Group for User
Interface Research, U. of California at Berkeley

Pervasive Computing
Context-aware Computing-2
Motivation

Modern computers are divorced from reality



Computers have extremely limited input



Unaware of who, where, and what around them
Leads to mismatch
Aware of explicit input only
Can take a lot of effort to do simple things
Context-Aware Computing


Making computers more aware of the physical and
social worlds we live in
Breaking computers out of the box
Pervasive Computing
Context-aware Computing-3
Traditional View of Computer
Systems
Context independent:
acts exactly the same
input
Computer System
output
Human in the loop
Pervasive Computing
Context-aware Computing-4
From Abstraction to Context
Sensitivity
Traditional black box view comes from the desire
for abstraction
 This is based on several assumptions:




Explicit input/output: slow, intrusive, requiring user
attention
Sequential input-output loop
Move away from the black box model and into
context-sensitivity


human out-of-the-loop (as much as possible)
reduce explicit interaction (as much as possible)
Pervasive Computing
Context-aware Computing-5
Context as Implicit Input/Output
explicit
input
Context-Aware
System
explicit
output
Context:
• state of the user
• state of the physical environment
• state of the computing system
• history of user-computer interaction
•...
Pervasive Computing
Context-aware Computing-6
Context-Aware Computing

Let computer systems sense automatically,
remember history, and adapt to changing
situations


Reduced explicit interaction, more responsive
Need to draw a boundary around the system
under consideration

To define “explicit” and “implicit”
Pervasive Computing
Context-aware Computing-7
Why Context-Aware Computing?
Existing Examples
Context Types
Human Concern
Auto Lights On / Off
Room Activity
Convenience
File Systems
Personal Identity
& Time
Finding Info
Calendar Reminders
Time
Memory
Smoke Alarm
Room Activity
Safety
Barcode Scanners
Object Identity
Efficiency
Pervasive Computing
Context-aware Computing-8
Why Context-Aware Computing?
Potential
Existing Examples
Examples
Context Types
Human Concern
Auto Cell Phone
Auto Lights On / Off
Off In Meetings
Activity
Identity
Convenience
File
TagSystems
Photos
Time
Activity
Location
Finding Info
Calendar
Proximal Reminders
Proximity
Identity
Memory
Smoke
Health Alarm
Alert
Activity
Identity & Time
History
Safety
Service Fleet
Barcode Scanners
Dispatching
…
Time
Efficiency
Pervasive Computing
Context-aware Computing-9
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics
 Summary

Pervasive Computing
Context-aware Computing-10
Definition of Context (1/3)

Schilit divides context into three categories:




Computing context
User context
Physical context
Time is also important and natural context

Time context
=> context history
Pervasive Computing
Context-aware Computing-11
Definition of Context (2/3)

Schmidt et al.: “knowledge about user’s and IT
device’s state, including surroundings, situation,
and to a less extent, location”
 Dey: “any information that can be used to
characterize the situation of an entity”

Entity: person, place, object that is considered
relevant to the interaction between a user and an
application
Pervasive Computing
Context-aware Computing-12
Definition of Context (3/3)

Kotz: “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 behavior of an
application
Passive context: relevant to the application, but
not critical
Pervasive Computing
Context-aware Computing-13
Examples of Context
Identity
 Spatial: location, orientation, speed
 Temporal: date, time of day, season
 Environmental: temperature, light, noise
 Social: people nearby, activity, calendar
 Resources: nearby, availability
 Physiological: blood pressure, heart rate, tone of
voice

Pervasive Computing
Context-aware Computing-14
Context-aware Computing (1/3)

Pascoe: taxonomy of context-aware features




contextual sensing
context adaptation
contextual resource discovery
contextual augmentation (associating digital data with
user’s context)
Pervasive Computing
Context-aware Computing-15
Context-aware Computing (2/3)

Dey: context-aware features



presentation of information/services to a user
according to current context
automatic execution of a service when in a certain
context
tagging context to information for later retrieval
Pervasive Computing
Context-aware Computing-16
Context-aware Computing (3/3)
Kotz:
 Active context awareness - An application
automatically adapts to discovered context, by
changing the application’s 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.
Pervasive Computing
Context-aware Computing-17
Context-Aware and Pervasive

What is the relationship between context-aware
computing and pervasive computing?
Pervasive Computing
Context-aware Computing-18
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications


Taxonomy
Developing Context-aware Applications
 Issues and Challenges
 Special Topics
 Summary

Pervasive Computing
Context-aware Computing-19
Examples of Context-awareness

垃圾郵件過濾

汽車恆溫系統

會議記錄
Situation/
high-level contexts

開會中關閉手機

家裡的老人家跌倒了,叫救護車!
Pervasive Computing
Context-aware Computing-20
Active Badges

Badges emit infrared signals


Teleport

Active Badge
Olivetti / AT&T
Hopper, Harter, et al
Pervasive Computing

Gives rough location + ID
Redirect screen output from
"home" computer to nearby
computer
Phone forwarding

Automatically forward phone
calls to nearest phone
Context-aware Computing-21
Active Badges (cont’d)

Interface follow-me (location)
Pervasive Computing
Context-aware Computing-22
ParcTabs

Active badge + wireless
Rough location + ID
 Showing information of
the room the user in
 Help find resources
 Show all files in a directory
when enter a room
 Locate others
 Different control choices in
different rooms
(location, time, nearby devices,
file system state)

ParcTabs
Xerox PARC
Want, Schilit, et al
Pervasive Computing
Context-aware Computing-23
Auto-diaries and Proximate Selection
Pervasive Computing
Context-aware Computing-24
In/Out Board (Georgia Tech)

Context: identity by FRID, time
Pervasive Computing
Context-aware Computing-25
DUMMBO (Georgia Tech)

Dynamic Ubiquitous Mobile Meeting Board:




Digitizing whiteboard to capture and access informal
and spontaneous meetings
Capture ink written to
and erased from
whiteboard, and
audio discussion
Activated when two
or more people
gathered around
Context: ID, time,
location of whiteboard
Pervasive Computing
Context-aware Computing-26
Cyberguide

GPS or infrared tracking

Fairly precise location
Display location on screen
 Predefined points of interest



Georgia Tech
Abowd et al
Pervasive Computing
Travel journal

Cyberguide

Automatically pop up if nearby
Keep log of places seen and
photographs taken
Context: location, time
Context-aware Computing-27
Cyberguide (cont’d)
Pervasive Computing
Context-aware Computing-28
Enhanced PDA

Voice memo


Portrait/Landscape


Tilt instead of
scrollbars
Power management

Microsoft Research
Pervasive Computing
Hinckley et al
Physically rotate
screen
Tilt scrolling


Hold like phone near
mouth to start
recording
Turn on if being held
and tilted
Context-aware Computing-29
GUIDE (University of Lancaster)

Context: location through WLAN, user
preference
Pervasive Computing
Context-aware Computing-30
Fieldwork

University of Kent at Canterbury:
archeological assistant
 giraffe observation
 rhino identification
(location through PalmPilot, GPS; time)
 Location dependent notes through StickPlate,
StickEdit, StickMap

Pervasive Computing
Context-aware Computing-31
Memory Aids

Forget-Me-Not: Rank Xerox


ParcTab recording where its
user is, who they are with,
whom they phone, etc. in a
database for later retrieval
StartleCam: MIT Media lab.

Skin conductivity sensor
triggers taking of images
and transmitting to remote
server
Pervasive Computing
Context-aware Computing-32
Other Applications
Shopping assistant (location)
 Smart floor, active floor
 Office assistant from MIT Media Lab. (activity,
schedule)

Pervasive Computing
Context-aware Computing-33
Summary: A Rough Taxonomy of
Context-Aware Apps
Triggers
 Metadata Tagging
 Reconfiguration and Streamlining
 Input specification
 Presentation

Pervasive Computing
Context-aware Computing-34
A Rough Taxonomy
of Context-Aware Apps

Triggers



On X do Y
"Notify doctor and nearby ambulances if serious
health problem detected"
"Remind me to talk to Chris about user studies next
time I see him"
Pervasive Computing
Context-aware Computing-35
A Rough Taxonomy
of Context-Aware Apps

Metadata Tagging




"Where was this picture taken?"
"Find all notes taken while Mae was talking"
Memory prosthesis
Stick-e notes: University of Kent
Stick-e note: attaching notes to a context, later trigger
the node when context occurs again
 Programming environment based on stick-e:

 Triggering, execution, and sensor components
Pervasive Computing
Context-aware Computing-36
A Rough Taxonomy
of Context-Aware Apps

Reconfiguration and Streamlining






Telephone forwarding and Teleport
Turn off cell phone in theaters
Automatically adjust brightness / volume
Automatic file pre-caching
Select modes in multimodal interaction
Multimedia / Bandwidth adaptation
Pervasive Computing
Context-aware Computing-37
A Rough Taxonomy
of Context-Aware Apps

Input specification




Send mail only to people in building now
Print to nearest printer
"Find gas stations nearest me"
Presentation of plain contexts





Current location
Idle?
Currently in?
Contextual info about objects
Proximate selection
Pervasive Computing
Context-aware Computing-38
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics
 Summary

Pervasive Computing
Context-aware Computing-39
Design Process of Typical Contextaware Applications
1.
2.
3.
4.
5.
Specification
Acquisition and Representation
Delivery/Distribution
Reception and Storage
Action (the application)
Pervasive Computing
Context-aware Computing-40
Design Process: Specification
Context to use
 Context behaviors to perform

Key step in design process: problem specification
Pervasive Computing
Context-aware Computing-41
Design Process: Acquisition

Install relevant sensors



Sensors: infrastructure or personal artifacts
Where to sense?
How often to update and report?
Context representation
 Store context

Pervasive Computing
Context-aware Computing-42
Design Process:
Delivery/Distribution
Contexts typically captured remotely from
applications at different time
 Context captured in sensor-rich environment or
device may need to serve multiple applications
=> Need to deliver and distribute context to
multiple, remote applications



Infrastructure or middleware support
App/network-level delivery/routing models and
transport mechanism
Pervasive Computing
Context-aware Computing-43
Design Process: Reception

Application locates relevant sensors/contexts


Requests contexts via queries, polls, notifications



Service discovery
Query language, event-notification mechanism
How often to request?
Additional interpretation/abstraction/processing

Collection, aggregation, filtering, correlation, fusion,...
Pervasive Computing
Context-aware Computing-44
Design Process: Action
Combine received contexts with previous
contexts and system/application states for
further analysis
 Perform actions based on the analysis results
 May treat context collection/processing as a
separate service

Pervasive Computing
Context-aware Computing-45
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics
 Summary

Pervasive Computing
Context-aware Computing-46
Sensing the Context (1/3)

Location:




Outdoors: GPS
Indoors: IR, RF, ultrasonic, camera
(cellular and non-cellular)
Hybrid: IEEE 802.11, Mobile-IP
Issues:



Heterogeneous sensors with uncertainty and conflicts
(sensor fusion)
Data vs sensor networks
Making mobile devices location-aware
Pervasive Computing
Context-aware Computing-47
Sensing the Context (2/3)

Low-level contexts beyond location






Time: time-of-day (with calendar)
Nearby objects
Network bandwidth
Orientation
Others: photodiode (light), accelerometer (tilt,
vibration), microphone, sensors for temperature,
pressure, gas, etc.
Issue: sensors in mobile devices or infrastructure
=> direct vs. indirect awareness
Pervasive Computing
Context-aware Computing-48
Sensing the Context (3/3)

High-level contexts: user’s activity





Camera technology and image processing
Consult calendar for what user is to do
Combine low-level sensors, e.g., using rules
How about emotional contexts?
Context changes: subscription-notification

Polling rate?
Pervasive Computing
Context-aware Computing-49
Quality of Contexts
What context is important? Always and in
different situations?
 Quality:



Self-contained vs. infrastructure-supported


Coverage, resolution, accuracy, confidence, reliability,
frequency, timeliness
PDA doesn't need location sensors if it can ask nearby
sensors to approximate
Need standards for sharing components?
Pervasive Computing
Context-aware Computing-50
Modeling Contexts

Location model:



Environmental model: relationship between ...




Symbolic: Active Badge, symbols
Geometric: GPS, coordinates
Locations: hierarchical, containment, distance
People: friend, family, hierarchy
Devices?
Context representation:



Key-value pairs, tagged encoding
Object-oriented model: contexts as object states
Logic-based model: facts in rule-based system
Pervasive Computing
Context-aware Computing-51
Context Specification
Need to express context about and relationships
between People, Places, Things
 Predicates






Identity (Who is…? What is…? Is with…?)
Location (Near? Nearest? Distance? Path?)
Activity (Is busy? Is in meeting? Current task?)
Time (In past? In present? In future? On date?)
Some of this vocabulary done by Schilit
Implicitly encoded in his APIs
 One goal is to extend his work in spec language
 Another is to make it extensible for future context
types
Pervasive Computing
Context-aware Computing-52

Context Specification

Common parameters






Max number of results wanted
Return name
Return data type (e.g. String, List, Table)
Minimal probability of correctness desired
Relevant sensor input requestor has
Event parameters




Event rate (e.g. at most 1 event per second)
Event callback (e.g. RPC, socket port)
Max number of events desired
Granularity of change (e.g. 1 meter)
Pervasive Computing
Context-aware Computing-53
Context Interpretation

Sophisticated applications require higher level
forms of context


Fusion
Ambiguity:



Sensors not 100% reliable, e.g. confidence value
Precision / Accuracy / Granularity
Different ways to deal:
Improve inference
 Probability/fuzzy model
 Bring the user into the loop

Pervasive Computing
Context-aware Computing-54
System Issues (1/2)

Programming model



Interoperability





Programming the physical world
Unreliable sensors, recognition algorithms, plus
standard distributed computing issues
Sensors, services, and devices
Useless if everyone has proprietary / custom systems
Need standard data formats, protocols, and
frameworks
Varying capabilities of sensors, services, and devices
Evaluation
Pervasive Computing
Context-aware Computing-55
System Issues (2/2)

May need a middleware layer to decouple
applications and context sensing

Collect raw context, translate to applicationunderstandable format, disseminate it
Centralized context server
 Distributed architecture

Pervasive Computing
Context-aware Computing-56
Intelligence
Who is smart? User or system or both
 Who makes the decisions on what actions to
take?
 Tradeoff between user cognitive load and effort
to make system “smart”

Pervasive Computing
Context-aware Computing-57
People Issues

Avoiding embarrassing situations



Avoiding dangerous situations





Active Badges + bathrooms
Inconvenient phone forwarding
Need to take into consideration cost of mistake
Smoke alarms when cooking
Lights that turn off when you're still there
Woman locked in "smart toilet stall"
Will adding more context really help here?
Pervasive Computing
Context-aware Computing-58
People Issues

Making it predictable and understandable




Setting preferences
"I want my cell phone to ring except in theaters and
when I'm in a meeting unless…"
Why the heck did it do that?
Privacy



What does the computer know about me? What do
others know about me?
Capturing/collecting lots of information about people,
places and devices
People uncomfortable when don’t know what is being
collected and how it’s used
Pervasive Computing
Context-aware Computing-59
Killer Applications?
Need something to focus and drive the research
 Need something to put in the hands of real
people
 Business model: how to make money from it?

Pervasive Computing
Context-aware Computing-60
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics





Handling Multiple Contexts
Context Modeling
Context Programming
Summary
Pervasive Computing
Context-aware Computing-61
Manipulating Multiple Contexts
Source:
“Multi-Sensor Context-Awareness in Mobile Devices
and Smart Artefacts”
H.W. Gellersen, A. Schmidt, M. Beigl
Lancaster University and University of Karlsruhe

Situation
Context
Pervasive Computing
perceived
sensor(s)
Context-aware Computing-62
Direct/Indirect Context-Awareness

Indirect context awareness:
device A
Situation
Context

Infrastructure
perceived
sensor(s)
device B
communicate
device C
Direct context awareness:
Situation
Context
Pervasive Computing
perceived
S(s)
device A
S(s)
device B
S(s)
device C
Built-in sensors,
context
processing
Context-aware Computing-63
Single Sensor vs. Multiple Sensors

Single but powerful
sensor:
Position sensor, video
sensor (camera)
Useful information is
inferred from what is
perceived
Prior knowledge is needed
for information useful




Simple but cheap sensors:

Each sensor captures one
facet of the context
Pervasive Computing
Context-aware Computing-64
Take Multiple-Sensor Approach

Need to combine multiple simple sensors vs. one
camera with powerful recognition capability


Gain rich data to infer useful context with little
computation
Real world situations: situations and sensors
Pervasive Computing
Context-aware Computing-65
Example: TEA
Technology Enabling
Awareness
 Motivation: make personal
mobile devices smarter
 Specs:





host
CPU: PIC16F877
Storage: 8K EEPROM
RAM: 200 Byte
Use serial line to
communicate with the host
TEA
Pervasive Computing
Context-aware Computing-66
TEA Architecture

Cue: abstraction of raw data


For example, an acceleration sensor can infer cues
like pattern of movement and current speed
Rules from cue to context: can be pre-defined or
use supervised/unsupervised learning
Pervasive Computing
Context-aware Computing-67
Initial Exploration
Tried on both PDA and mobile phone, and found
it more useful on mobile telephony
 Two analysis strategies:




Analyze how well a sensor contributes to a given
context
Analyze which sensors relate to which context
Finding: audio, motion and light are useful
globally, and other sensors are only useful in
specific contexts
Pervasive Computing
Context-aware Computing-68
Implementation
Some data are directly analyzed and not stored
(audio)
 Some data are stored and processed
(acceleration, light)
 Some data are cues itself; no need to process
(temperature, skin conductance)
 Rules from cue to context are extracted offline
and hardwired

Pervasive Computing
Context-aware Computing-69
Application

Profile activation:




A user can have many profiles
Activate profiles according to the situation (in-hand,
on-table, in-pocket, outdoors)
87% certainty, 30 sec to calculate (not yet optimized)
Context sharing (and privacy invasion):
Ask to call B
A
Request B’s context
Provide context
Inform A
Make decision
(Voice or short message)
Pervasive Computing
A’s phone
B’s phone
Context-aware Computing-70
Mediacup: An Active Artifact

Spec:



1Mhz CPU, 15K storage,
384 byte RAM
Digital temperature sensor
3-ball switch


A switch



Detect movement
Detect whether placed
on surface
Infrared diode for comm.
Capacitors charged wirelessly
Pervasive Computing
3mm highContext-aware Computing-71
Identified Contexts

Movement context:



Temperature context:



Cup is stationary, drinking out of the cup, cup is
played with, cup is carried around
Computed by rule based heuristics with a short
history of movements
Filled up, cooled off, current temperature
Updated every 2 seconds
The cups broadcast their context to an overhead
transceiver using the infrared diode
Pervasive Computing
Context-aware Computing-72
Design Issues

Power management




System kept very low-end
Motion detection uses interrupt instead of polling to
enable sleep mode in 99% of the time
Put the cup on the saucer to recharge wirelessly (15
minute for 12 hour)
Transparency


Hiding the technology does not suffice
In the battery-charged prototype, users forget to
replace the battery because the effect of technology
is invisible!
Pervasive Computing
Context-aware Computing-73
Design Issues (Cont’d)

Region of impact


No context-aware application in the environment
Context as a common resource
Inside
MEETING
available
Outside
Pervasive Computing
Context-aware Computing-74
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics





Handling Multiple Contexts
Context Modeling
Context Programming
Summary
Pervasive Computing
Context-aware Computing-75
Context Modeling
Source:
“Modeling Context Information in Pervasive
Computing Systems,”
Karen Henricksen, Jadwiga Indulska, Andry
Rakotonirainy
School of Information Technology and Electrical
Engineering, The University of Queensland

Pervasive Computing
Context-aware Computing-76
Characteristics of Context
Information

Exhibits a range of temporal characteristics




May be incorrect, inconsistent, incomplete


Failure, faulty info, transmission delay, ...
Has many alternative representations


Static vs. dynamic (highly variable in persistence)
Static (birth day) may be obtained from user, but
dynamic often from indirect means, e.g. sensors
Context histories (past and future)
at different level of abstraction, relations between
representations
Is highly interrelated (by derivation rules)
Pervasive Computing
Context-aware Computing-77
Core Modeling Concepts

Object-based approach:



Entities: a physical or conceptual object
Attributes: properties of entities
Associations: linking an entity, its attributes, and
other entities (uni-directional)
Owner of an association
 As assertions about the owning entity


Context description is a set of such assertions
Pervasive Computing
Context-aware Computing-78
An Example Scenario

3 entities: people, communication devices,
communication channels
Pervasive Computing
Context-aware Computing-79
Classifying Associations
Static associations: relationship fixed during
lifetime of owner
 Dynamic association:




Sensed: transformed from raw data, change
frequently, staleness, sensing errors
Derived: derivation function from other associations,
e.g., is located near
Profiled: supplied by users
Pervasive Computing
Context-aware Computing-80
Structured Constraints on
Associations
Simple association: owner appears only once in
this role, e.g., named association of Person
 Composite associations:




Collection: owner can be associated with multiple
attributes and entities, e.g., people work with others
Alternative: e.g., comm. channel require a device
Temporal: association for a time interval, e.g., user
activities
Pervasive Computing
Context-aware Computing-81
Annotated Example
Pervasive Computing
Context-aware Computing-82
Modeling Dependencies

A dependency is a special type of relationship
that exists between associations


An association, a1, dependsOn, a2, iff a change
to a2 has the potential to cause a change in a1


Capture the reliance of one association on another
e.g., battery life dependsOn network bandwidth
A dependency can be qualified by a participation
constraint, e.g., engaged in and located at are
dependent if they describe the same person
Pervasive Computing
Context-aware Computing-83
Dependencies in the Example
Pervasive Computing
Context-aware Computing-84
Modeling Context Quality

Quality support: annotate associations with a
number of quality parameters




Each parameter is described by one or more quality
metrics, which represent precise ways of measuring
context quality with respect to the parameter
Application dependent:
e.g., user location: accuracy, freshness
e.g., user activity: certainty, accuracy (both prob.
values)
Pervasive Computing
Context-aware Computing-85
Example with Context Quality
Pervasive Computing
Context-aware Computing-86
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics





Handling Multiple Contexts
Context Modeling
Context Programming
Summary
Pervasive Computing
Context-aware Computing-87
Context Toolkit
“The Context Toolkit: Aiding the Development of
Context-Enabled Applications”
D. Salber, A.K. Dey, G.D. Abowd
Georgia Institute of Technology
Proc. Of CHI’99
Pervasive Computing
Context-aware Computing-88
Difficulties in Using Context
Is acquired from unconventional sensors
 Must be abstracted to make sense for the
applications
 May be acquired from multiple distributed and
heterogeneous sources
 Is dynamic


Need to detect changes in real time and adapt to
constant changes, history information is valuable
=> Lack conceptual model and tools to solve
=> Learning from GUI => context widgets
Pervasive Computing
Context-aware Computing-89
GUI Toolkits

Benefits




hide specifics of physical interaction devices
manage the detail of the interaction
provide reusable building blocks
Limitation

lacking flexibility
Pervasive Computing
Context-aware Computing-90
Context Toolkit

Toolkit for distributed context-aware apps



Framework for acquiring and handling context
Standard components
Three key abstractions

Widgets, Interpreters, and Aggregators
Pervasive Computing
Context-aware Computing-91
Context Widgets

Widgets abstract out sensors
App
App
Location
Widget
Active
Badge
Pervasive Computing
Active
Badge
GPS
Cell Phone
Location
Context-aware Computing-92
Context Widget

A software component that



Analogy to GUI widget



provides applications with access to context
information from their operating environment
insulates applications from context acquisition
Separation, callbacks, attributes, encapsulation,
abstraction
e.g. GUI button
Why: Responsible for acquiring and abstracting
data from particular sensor, separation of
concerns, storage
Pervasive Computing
Context-aware Computing-93
Features

Context widgets have a state and a behavior


Are basic blocks managing sensing of context



State: a set of attributes that can be queries or
subscribed (via widget triggers) by applications
e.g., IdentityPresence (location and identity of a user)
need means for composing widgets
3 components: generator, interpreter, server
Differences from GIU widgets:


Distributed, acquired from multiple sources
Alive always, not activated by applications (e.g.,
environmental information monitoring)
Pervasive Computing
Context-aware Computing-94
Context Interpreters

Convert or interpret context to higher level
information
App
Location
to Room
Interpreter
Location
to Street
Interpreter
Location
Widget
Pervasive Computing
Context-aware Computing-95
Context Aggregators
Collect contexts relevant to particular entities
 Further separation, simplifies design

App
App
Location
to Room
Interpreter
Person
Aggregator
Location
Widget
Pervasive Computing
Activity
Widget
Affect
Widget
Context-aware Computing-96
Context Services

Perform behaviors that act on the environment
In/out
board
Pervasive Computing
Context-aware Computing-97
Context Discoverer

Registry for context components
In/out
board
Pervasive Computing
Context-aware Computing-98
Example Context Widgets (I)


IdentityPresence:
senses the presence of
people and their identity
Generators



Acquires raw information
from the sensor(s)
Could be voice
recognition, Active
Badges, video/image
recognition, keyboard
and login information
Attributes and callbacks
are independent of
generators
Pervasive Computing
Context-aware Computing-99
Example Context Widgets (II)


Activity:
senses the current
activity level at a location
Generators:

Microphone, infrared
sensor, video image
analysis
Pervasive Computing
Context-aware Computing100
Other Context Widgets

NamePresence:


PhoneUse:


Whether a phone is being used and the length of use
MachineUse:


Provides the user’s actual name
When a user logs onto or off of a computer, his
identity, and length of her computing session
GroupURLPresence:

Provides a URL relevant to the research group a user
belongs to when her presence is detected
Pervasive Computing
Context-aware Computing101
Example of Using Context Widgets

In/out board:

One IdentityPresence at entrance to building
Pervasive Computing
Context-aware Computing102
Example of Using Context Widgets

Information Display:




Displays information relevant to the user’s location
and identity on a display adjacent to the user
Activates itself as someone approaches it, and the
information it displays changes to match the user, her
research group, and location.
Context : location of the display, the identity of the
user, the research group the user belongs to and
information that is interesting to that research group
GroupURLPresence or IdentityPresence
Pervasive Computing
Context-aware Computing103
Example of Using Context Widgets

DUMMBO (Dynamic Ubiquitous Mobile Meeting
Board)





Digitizing whiteboard to capture and access informal
and spontaneous meetings
Capture ink written to and erased from whiteboard as
well as the recorded audio discussion
Activated when two or more people gathered around
Context: participants’ identities, time of arrival at or
depart whiteboard, location of whiteboard
Multiple NamePresence, one for each location where
DUMMBO could be moved to, one on DUMMBO itself
Pervasive Computing
Context-aware Computing104
Context Implementation Details

Handle composition:



e.g., IdentityPresence + Activity  Meeting
Interpreters can be used to assess validity of
uncertain information provided by multiple generators
Server: a widget that collects, stores and interprets
information from other widgets
Often used to model context of real world entities, e.g.,
users or places, from elementary widgets
 May include privacy handling

Pervasive Computing
Context-aware Computing105
Context Implementation Details

Handle communicating across heterogeneous
components:



Assume that the underlying system supports TCP/IP
Communication model uses the HTTP protocol
Language model uses the ASCII-based Extensible
Markup Language (XML)
Pervasive Computing
Context-aware Computing106
Context Implementation Details

Handle dynamism:

Environment changes  application adapt


Use a subscription mechanism to notify an application
of context changes and a polling mechanism to allow
an application to inquire


Need: to access information and to access only desired
information, also need to access context history
Allow conditions to be specified before the widgets will
be notified  filtering unwanted info at infrastructure
All widgets store historical data in a database for
applications or interpreters to retrieve
Pervasive Computing
Context-aware Computing107
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics





Handling Multiple Contexts
Context Modeling
Context Programming
Summary
Pervasive Computing
Context-aware Computing108
Context-Oriented Programming
Context Oriented Programming (COP) for Pervasive
Computing,
Andry Rakotonirainy, University of Queensland,
Australia
Pervasive Computing
Context-aware Computing109
Motivating Example
A portable
Hello World
program
Pervasive Computing
Context-aware Computing110
Basic Idea

“open term” expression:



Printer: print_on_printer(v)
Speaker: ascii2voice(v)
Monitor: display(v)
Open terms, also called “gaps” or “holes”, are
the core programming construct of COP
 Open term filling


Open terms allow us to create new terms and bind
them dynamically within the scope of a program.
Dynamic binding
 Dynamic scoping

Pervasive Computing
Context-aware Computing111
Open Term
Like macro
expansions
Pervasive Computing
Context-aware Computing112
Compared with Traditional Way
Pervasive Computing
Context-aware Computing113
Context Oriented Programming

Formalization



A process P is adapted to a process Q when P enters
a context m.
The open term “output” in P is filled with an
expression ascii2voice from the context m.
Implementations


Use Python as a language to express COP
Use XML to describe context
Pervasive Computing
Context-aware Computing114
Python
http://www.python.org/doc/Intros.html
 Python is an interpreted, interactive, objectoriented programming language.
 It is often compared to Tcl, Perl, Scheme or Java.
 It has modules, classes, exceptions, very high
level dynamic data types, and dynamic typing.

Pervasive Computing
Context-aware Computing115
XML Specification of an Open Term

<CURRENT>



<REQUIRE>



It describes the current context.
E.g <task> reading </task>
It describes the required context of such expression.
E.g <security> SSL </security>
<EXCLUDE>


If the “filling expression” features this context, it
shouldn’t fill the open terms.
<OS> Palm OS </OS> means that an function from a
Palm OS shouldn’t fill the current open term.
Pervasive Computing
Context-aware Computing116
Dynamic Scoping
COP allows a form of dynamic scoping.
 Variables in COP can be called (set/get) from
outside the block of code in which they are
defined.
 By default, all internal variable can be bound
(read/write) to external variables.

I think that this is not a good idea because
the program will lose its readability!
Pervasive Computing
Context-aware Computing117
COP Architecture (1/2)

Objects that contain open terms

Objects providing contextualized terms

Objects that performs the matching between
gaps and offering functions
Pervasive Computing
Context-aware Computing118
COP Architecture (2/2)
lookup
matching
function2
Context
aware object
with gaps
context
awareness
Pervasive Computing
Registry
migrate
code4
register
function
1
3
Context
aware object
with migratable
code
context
awareness
Context-aware Computing119
COP Architecture
Pervasive Computing
Context-aware Computing120
My Example (1/2)
class Context
{
public:
virtual int GetValue() = 0;
};
class Temperature : public Context
{
public:
int GetValue() {
return 30;
}
};
Pervasive Computing
Context-aware Computing121
My Example (2/2)
Object: using the context via common interface
Context ctx;
//get context prototype (Temperature)
//download & fill context body
…
if (ctx.GetValue() > 25)
printf(“Today is hot!\n”);
else
printf(“Today is cold!\n”);
Pervasive Computing
Context-aware Computing122
Outline
Motivation
 Context and Context-aware Computing
 Context-aware Applications
 Developing Context-aware Applications
 Issues and Challenges
 Special Topics
 Summary

Pervasive Computing
Context-aware Computing123
Summary
Strides in sensors, recognition, and wireless are
enabling new context applications
 Still need to lower barriers to entry
 Lots of systems issues, even more people issues
 Lots of potential here for new kinds of
interaction and applications

Pervasive Computing
Context-aware Computing124
Download