Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline...

125
Context-aware Computing: Basic Concepts 金金金金金 金金金金金金金金金金金金金金 金金金金金金金 金金

Transcript of Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline...

Page 1: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Context-aware Computing:

Basic Concepts

金仲達教授清華大學資訊系統與應用研究所

九十三學年度第一學期

Page 2: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 3: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 4: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 5: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-5

Traditional View of Computer Systems

Computer Systeminput output

Context independent:acts exactly the same

Human in the loop

Page 6: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 7: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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•...

Page 8: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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”

Page 9: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 10: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 11: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 12: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 13: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 14: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 15: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 16: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 17: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 18: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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.

Page 19: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-19

Context-Aware and Pervasive What is the relationship between context-

aware computing and pervasive computing?

Page 20: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 21: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-21

Examples of Context-awareness垃圾郵件過濾

汽車恆溫系統

會議記錄

開會中關閉手機

家裡的老人家跌倒了,叫救護車 !

Situation/high-level contexts

Page 22: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 23: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-23

Active Badges (cont’d) Interface follow-me (location)

Page 24: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 25: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-25

Auto-diaries and Proximate Selection

Page 26: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-26

In/Out Board (Georgia Tech) Context: identity by FRID, time

Page 27: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 28: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 29: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-29

Cyberguide (cont’d)

Page 30: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 31: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-31

GUIDE (University of Lancaster) Context: location through WLAN, user

preference

Page 32: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 33: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 34: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-34

Other Applications Shopping assistant (location) Smart floor, active floor Office assistant from MIT Media Lab.

(activity, schedule)

Page 35: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-35

Summary: A Rough Taxonomy of Context-Aware Apps Triggers Metadata Tagging Reconfiguration and Streamlining Input specification Presentation

Page 36: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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"

Page 37: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 38: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 39: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 40: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 41: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 42: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-42

Design Process: Specification Context to use Context behaviors to perform

Key step in design process: problem specification

Page 43: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 44: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 45: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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,...

Page 46: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 47: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 48: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 49: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-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

Page 50: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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?

Page 51: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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?

Page 52: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 53: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 54: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 55: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 56: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 57: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 58: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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”

Page 59: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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?

Page 60: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 61: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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?

Page 62: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 63: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 64: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 65: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 66: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 67: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 68: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 69: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 70: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 71: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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):

Page 72: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 73: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 74: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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!

Page 75: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 76: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 77: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 78: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 79: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 80: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-80

An Example Scenario 3 entities: people, communication devices,

communication channels

Page 81: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 82: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 83: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-83

Annotated Example

Page 84: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 85: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-85

Dependencies in the Example

Page 86: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 87: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-87

Example with Context Quality

Page 88: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 89: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 90: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 91: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 92: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 93: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-93

Context Widgets Widgets abstract out sensors

GPSActiveBadge

App App

LocationWidget

Cell PhoneLocation

ActiveBadge

Page 94: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 95: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 96: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 97: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 98: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-98

Context Services Perform behaviors that act on the

environment In/outboard

Page 99: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-99

Context Discoverer Registry for context components

In/outboard

Page 100: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 101: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 102: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 103: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-103

Example of Using Context Widgets In/out board:

One IdentityPresence at entrance to building

Page 104: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 105: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 106: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 107: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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)

Page 108: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 109: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 110: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-110

Context-Oriented ProgrammingContext Oriented Programming (COP) for Pervas

ive Computing,Andry Rakotonirainy, University of Queensland,

Australia

Page 111: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-111

Motivating ExampleA portableHello Worldprogram

Page 112: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 113: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-113

Open Term

Like macro expansions

Page 114: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-114

Compared with Traditional Way

Page 115: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 116: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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.

Page 117: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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.

Page 118: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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.

Page 119: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 120: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 121: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Pervasive Computing Context-aware Computing-121

COP Architecture

Page 122: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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; }};

Page 123: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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”);

Page 124: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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

Page 125: Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

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