Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline...
-
Upload
janelle-keathley -
Category
Documents
-
view
259 -
download
0
Transcript of Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline...
Context-aware Computing:
Basic Concepts
金仲達教授清華大學資訊系統與應用研究所
九十三學年度第一學期
Pervasive Computing Context-aware Computing-2
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-3
Sources “Out of Context: Computer Systems That Ada
pt 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. Korkea-aho, Helsinki University of Technology
Slides from Jason I. Hong, Group for User Interface Research, U. of California at Berkeley
Pervasive Computing Context-aware Computing-4
Motivation Modern computers are divorced from
reality Unaware of who, where, and what around them Leads to mismatch
Computers have extremely limited input 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-5
Traditional View of Computer Systems
Computer Systeminput output
Context independent:acts exactly the same
Human in the loop
Pervasive Computing Context-aware Computing-6
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-7
Context as Implicit Input/Output
Context-AwareSystem
explicitinput
explicitoutput
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-8
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-9
Why Context-Aware Computing?
Context TypesExisting Examples Human Concern
Room ActivitySmoke Alarm Safety
Room ActivityAuto Lights On / Off Convenience
Object IdentityBarcode Scanners Efficiency
Personal Identity & Time
File Systems Finding Info
TimeCalendar Reminders Memory
Pervasive Computing Context-aware Computing-10
Existing Examples
Why Context-Aware Computing?
Context Types Potential Examples Human Concern
Activity Convenience
Activity Finding Info
Identity Memory
Identity & Time Safety
Time Efficiency
Identity
Time
Location
Proximity
Activity
History
…
Smoke Alarm
Auto Lights On / Off
Barcode Scanners
File Systems
Calendar Reminders
Health Alert
Auto Cell Phone Off In Meetings
Service FleetDispatching
Tag Photos
Proximal Reminders
Pervasive Computing Context-aware Computing-11
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-12
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-13
Definition of Context (2/3) Schmidt et al.: “knowledge about user’s an
d 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 rele
vant to the interaction between a user and an application
Pervasive Computing Context-aware Computing-14
Definition of Context (3/3) Kotz: “the set of environmental states an
d 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 applic
ation Passive context: relevant to the application, bu
t not critical
Pervasive Computing Context-aware Computing-15
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-16
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-17
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-18
Context-aware Computing (3/3)Kotz: Active context awareness - An application auto
matically 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-19
Context-Aware and Pervasive What is the relationship between context-
aware computing and pervasive computing?
Pervasive Computing Context-aware Computing-20
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-21
Examples of Context-awareness垃圾郵件過濾
汽車恆溫系統
會議記錄
開會中關閉手機
家裡的老人家跌倒了,叫救護車 !
Situation/high-level contexts
Pervasive Computing Context-aware Computing-22
Active Badges
Active BadgeOlivetti / AT&T
Hopper, Harter, et al
Badges emit infrared signals Gives rough location + ID
Teleport Redirect screen output from
"home" computer to nearby computer
Phone forwarding Automatically forward phone
calls to nearest phone
Pervasive Computing Context-aware Computing-23
Active Badges (cont’d) Interface follow-me (location)
Pervasive Computing Context-aware Computing-24
ParcTabs
ParcTabsXerox PARC
Want, Schilit, et al
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)
Pervasive Computing Context-aware Computing-25
Auto-diaries and Proximate Selection
Pervasive Computing Context-aware Computing-26
In/Out Board (Georgia Tech) Context: identity by FRID, time
Pervasive Computing Context-aware Computing-27
DUMMBO (Georgia Tech) Dynamic Ubiquitous Mobile Meeting Board:
Digitizing whiteboard to capture and access informal and spontaneous meetings
Capture ink written toand erased fromwhiteboard, andaudio discussion
Activated when twoor more peoplegathered around
Context: ID, time,location of whiteboard
Pervasive Computing Context-aware Computing-28
Cyberguide
CyberguideGeorgia TechAbowd et al
GPS or infrared tracking Fairly precise location
Display location on screen Predefined points of
interest Automatically pop up if
nearby Travel journal
Keep log of places seen and photographs taken
Context: location, time
Pervasive Computing Context-aware Computing-29
Cyberguide (cont’d)
Pervasive Computing Context-aware Computing-30
Voice memo Hold like phone
near mouth to start recording
Portrait/Landscape Physically rotate
screen Tilt scrolling
Tilt instead of scrollbars
Power management Turn on if being
held and tilted
Enhanced PDA
Microsoft ResearchHinckley et al
Pervasive Computing Context-aware Computing-31
GUIDE (University of Lancaster) Context: location through WLAN, user
preference
Pervasive Computing Context-aware Computing-32
Fieldwork University of Kent at Canterbury:
archeological assistant giraffe observation rhino identification(location through PalmPilot, GPS; time) Location dependent notes through StickPlate, Stic
kEdit, StickMap
Pervasive Computing Context-aware Computing-33
Memory Aids Forget-Me-Not: Rank Xerox
ParcTab recording where itsuser 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 imagesand transmitting to remoteserver
Pervasive Computing Context-aware Computing-34
Other Applications Shopping assistant (location) Smart floor, active floor Office assistant from MIT Media Lab.
(activity, schedule)
Pervasive Computing Context-aware Computing-35
Summary: A Rough Taxonomy of Context-Aware Apps Triggers Metadata Tagging Reconfiguration and Streamlining Input specification Presentation
Pervasive Computing Context-aware Computing-36
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-37
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-38
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-39
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-40
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-41
Design Process of Typical Context-aware Applications1. Specification 2. Acquisition and Representation 3. Delivery/Distribution 4. Reception and Storage 5. Action (the application)
Pervasive Computing Context-aware Computing-42
Design Process: Specification Context to use Context behaviors to perform
Key step in design process: problem specification
Pervasive Computing Context-aware Computing-43
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-44
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-45
Design Process: Reception Application locates relevant
sensors/contexts Service discovery
Requests contexts via queries, polls, notifications Query language, event-notification mechanism How often to request?
Additional interpretation/abstraction/processing Collection, aggregation, filtering, correlation,
fusion,...
Pervasive Computing Context-aware Computing-46
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-47
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-48
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 confli
cts (sensor fusion) Data vs sensor networks Making mobile devices location-aware
Pervasive Computing Context-aware Computing-49
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-50
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-51
Quality of Contexts What context is important? Always and in
different situations? Quality:
Coverage, resolution, accuracy, confidence, reliability, frequency, timeliness
Self-contained vs. infrastructure-supported PDA doesn't need location sensors if it can ask
nearby sensors to approximate Need standards for sharing components?
Pervasive Computing Context-aware Computing-52
Modeling Contexts Location model:
Symbolic: Active Badge, symbols Geometric: GPS, coordinates
Environmental model: relationship between ... 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-53
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-54
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-55
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-56
System Issues (1/2) Programming model
Programming the physical world Unreliable sensors, recognition algorithms,
plus standard distributed computing issues Interoperability
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-57
System Issues (2/2) May need a middleware layer to decouple
applications and context sensing Collect raw context, translate to application-
understandable format, disseminate it Centralized context server Distributed architecture
Pervasive Computing Context-aware Computing-58
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-59
People Issues Avoiding embarrassing situations
Active Badges + bathrooms Inconvenient phone forwarding
Avoiding dangerous situations 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-60
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-61
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-62
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-63
Manipulating Multiple Contexts Source:“Multi-Sensor Context-Awareness in Mobile Dev
ices and Smart Artefacts”H.W. Gellersen, A. Schmidt, M. BeiglLancaster University and University of Karlsruhe
Situation
Contextsensor(s)perceived
Pervasive Computing Context-aware Computing-64
Direct/Indirect Context-Awareness Indirect context awareness:
Direct context awareness:
Situation
ContextInfrastructure
sensor(s)
device A
device B
device C
Situation
Context
device A
device B
device C
communicateperceived
S(s)
S(s)
S(s)
perceived
Built-in sensors, context
processing
Pervasive Computing Context-aware Computing-65
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-66
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-67
TEA
host
Example: TEA Technology Enabling
Awareness Motivation: make personal
mobile devices smarter Specs:
CPU: PIC16F877 Storage: 8K EEPROM RAM: 200 Byte Use serial line to
communicate with the host
Pervasive Computing Context-aware Computing-68
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
TEA Architecture
Pervasive Computing Context-aware Computing-69
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-70
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-71
A
Ask to call BRequest B’s context
Provide contextInform A
Make decision
(Voice or short message) A’s phone B’s phone
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):
Pervasive Computing Context-aware Computing-723mm high
Mediacup: An Active Artifact Spec:
1Mhz CPU, 15K storage,384 byte RAM
Digital temperature sensor 3-ball switch
Detect movement A switch
Detect whether placedon surface
Infrared diode for comm. Capacitors charged wirelessly
Pervasive Computing Context-aware Computing-73
Identified Contexts Movement 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
Temperature context: 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-74
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-75
availableMEETINGInside
Outside
Design Issues (Cont’d) Region of impact
No context-aware application in the environment
Context as a common resource
Pervasive Computing Context-aware Computing-76
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-77
Context Modeling Source:“Modeling Context Information in Pervasive Co
mputing Systems,”Karen Henricksen, Jadwiga Indulska, Andry Rak
otonirainySchool of Information Technology and Electrical
Engineering, The University of Queensland
Pervasive Computing Context-aware Computing-78
Characteristics of Context Information Exhibits a range of temporal characteristics
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) May be incorrect, inconsistent, incomplete
Failure, faulty info, transmission delay, ... Has many alternative representations
at different level of abstraction, relations between representations
Is highly interrelated (by derivation rules)
Pervasive Computing Context-aware Computing-79
Core Modeling Concepts Object-based approach:
Entities: a physical or conceptual object Attributes: properties of entities Associations: linking an entity, its attributes, and ot
her 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-80
An Example Scenario 3 entities: people, communication devices,
communication channels
Pervasive Computing Context-aware Computing-81
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
Classifying Associations
Pervasive Computing Context-aware Computing-82
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
Structured Constraints on Associations
Pervasive Computing Context-aware Computing-83
Annotated Example
Pervasive Computing Context-aware Computing-84
Modeling Dependencies A dependency is a special type of relationship
that exists between associations Capture the reliance of one association on another
An association, a1, dependsOn, a2, iff a change to a2 has the potential to cause a change in a1 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-85
Dependencies in the Example
Pervasive Computing Context-aware Computing-86
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-87
Example with Context Quality
Pervasive Computing Context-aware Computing-88
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-89
Context Toolkit“The Context Toolkit: Aiding the Development
of Context-Enabled Applications”D. Salber, A.K. Dey, G.D. AbowdGeorgia Institute of TechnologyProc. Of CHI’99
Pervasive Computing Context-aware Computing-90
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-91
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-92
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-93
Context Widgets Widgets abstract out sensors
GPSActiveBadge
App App
LocationWidget
Cell PhoneLocation
ActiveBadge
Pervasive Computing Context-aware Computing-94
Context Widget A software component that
provides applications with access to context information from their operating environment
insulates applications from context acquisition Analogy to GUI widget
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-95
Features Context widgets have a state and a behavior
State: a set of attributes that can be queries or subscribed (via widget triggers) by applicationse.g., IdentityPresence (location and identity of a user)
Are basic blocks managing sensing of context 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., en
vironmental information monitoring)
Pervasive Computing Context-aware Computing-96
Context Interpreters Convert or interpret context to higher level
information
App
LocationWidget
Location to Room
Interpreter
Location to Street
Interpreter
Pervasive Computing Context-aware Computing-97
App
PersonAggregator
ActivityWidget
AffectWidget
App
LocationWidget
Location to Room
Interpreter
Context Aggregators Collect contexts relevant to particular
entities Further separation, simplifies design
Pervasive Computing Context-aware Computing-98
Context Services Perform behaviors that act on the
environment In/outboard
Pervasive Computing Context-aware Computing-99
Context Discoverer Registry for context components
In/outboard
Pervasive Computing Context-aware Computing-100
Example Context Widgets (I) IdentityPresence:
senses the presence of people and their identity
Generators Acquires raw informatio
n from the sensor(s) Could be voice recognit
ion, Active Badges, video/image recognition, keyboard and login information
Attributes and callbacks are independent of generators
Pervasive Computing Context-aware Computing-101
Example Context Widgets (II) Activity:
senses the current activity level at a location
Generators: Microphone, infrared
sensor, video image analysis
Pervasive Computing Context-aware Computing-102
Other Context Widgets NamePresence:
Provides the user’s actual name PhoneUse:
Whether a phone is being used and the length of use
MachineUse: When a user logs onto or off of a computer, his iden
tity, 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 Computing-103
Example of Using Context Widgets In/out board:
One IdentityPresence at entrance to building
Pervasive Computing Context-aware Computing-104
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 Computing-105
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 a
s well as the recorded audio discussion Activated when two or more people gathered aroun
d Context: participants’ identities, time of arrival at o
r 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 Computing-106
Context Implementation Details Handle composition:
e.g., IdentityPresence + Activity Meeting Interpreters can be used to assess validity of uncert
ain 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 Computing-107
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 Computing-108
Context Implementation Details Handle dynamism:
Environment changes application adapt Need: to access information and to access only
desired information, also need to access context history
Use a subscription mechanism to notify an application of context changes and a polling mechanism to allow an application to inquire
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 Computing-109
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-110
Context-Oriented ProgrammingContext Oriented Programming (COP) for Pervas
ive Computing,Andry Rakotonirainy, University of Queensland,
Australia
Pervasive Computing Context-aware Computing-111
Motivating ExampleA portableHello Worldprogram
Pervasive Computing Context-aware Computing-112
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 Computing-113
Open Term
Like macro expansions
Pervasive Computing Context-aware Computing-114
Compared with Traditional Way
Pervasive Computing Context-aware Computing-115
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 Computing-116
Python http://www.python.org/doc/Intros.html Python is an interpreted, interactive, object-or
iented programming language. It is often compared to Tcl, Perl, Scheme or Ja
va. It has modules, classes, exceptions, very high l
evel dynamic data types, and dynamic typing.
Pervasive Computing Context-aware Computing-117
XML Specification of an Open Term <CURRENT>
It describes the current context. E.g <task> reading </task>
<REQUIRE> 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 Computing-118
I think that this is not a good idea because the program will lose its readability!
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.
Pervasive Computing Context-aware Computing-119
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 Computing-120
COP Architecture (2/2)
Contextaware object
with migratablecode
Registry
Contextaware object
with gaps
register function
1
lookup matchingfunction2 3
migrate code4
contextawareness
contextawareness
Pervasive Computing Context-aware Computing-121
COP Architecture
Pervasive Computing Context-aware Computing-122
My Example (1/2)class Context{public: virtual int GetValue() = 0;};
class Temperature : public Context{public: int GetValue() { return 30; }};
Pervasive Computing Context-aware Computing-123
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 Computing-124
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-125
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