Title: Context-aware Computing: Basic Concepts
1Context-aware ComputingBasic Concepts
- ?????
- ??????????????
- ??????????
2Outline
- Motivation
- Context and Context-aware Computing
- Context-aware Applications
- Developing Context-aware Applications
- Issues and Challenges
- Special Topics
- Summary
3Sources
- Out of Context Computer Systems That Adapt to,
and Learn from, Context, H. Lieberman, T.
Selker, MIT - A Survey of Context-Aware Mobile Computing
Research, by G. Chen, D. Kotz, Dartmouth College - Context-Aware Applications Survey, M.
Korkea-aho, Helsinki University of Technology - Slides from Jason I. Hong, Group for User
Interface Research, U. of California at Berkeley
4Motivation
- 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
5Traditional View of Computer Systems
Context independent acts exactly the same
Computer System
input
output
Human in the loop
6From 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)
7Context as Implicit Input/Output
explicit input
explicit output
Context-Aware System
- Context
- state of the user
- state of the physical environment
- state of the computing system
- history of user-computer interaction
- ...
8Context-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
9Why Context-Aware Computing?
Context Types
Existing Examples
Human Concern
10Why Context-Aware Computing?
Existing Examples
Context Types
Potential Examples
Human Concern
Activity
Convenience
Identity Time Location Proximity
Activity History
Auto Lights On / Off
Auto Cell Phone Off In Meetings
Activity
Finding Info
File Systems
Tag Photos
Identity
Memory
Calendar Reminders
Proximal Reminders
Identity Time
Safety
Smoke Alarm
Health Alert
Time
Efficiency
Barcode Scanners
Service Fleet Dispatching
11Outline
- Motivation
- Context and Context-aware Computing
- Context-aware Applications
- Developing Context-aware Applications
- Issues and Challenges
- Special Topics
- Summary
12Definition 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
- gt context history
13Definition of Context (2/3)
- Schmidt et al. knowledge about users and IT
devices state, including surroundings,
situation, and to a less extent, location - Dey any information that can be used to
characterize the situation of an entity - Entity person, place, object that is considered
relevant to the interaction between a user and an
application
14Definition of Context (3/3)
- Kotz the set of environmental states and
settings that either determines an applications
behavior or in which an application event occurs
and is interesting to the user - Active context influences behavior of an
application - Passive context relevant to the application, but
not critical
15Examples 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
16Context-aware Computing (1/3)
- Pascoe taxonomy of context-aware features
- contextual sensing
- context adaptation
- contextual resource discovery
- contextual augmentation (associating digital data
with users context)
17Context-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
18Context-aware Computing (3/3)
- Kotz
- Active context awareness - An application
automatically adapts to discovered context, by
changing the applications 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.
19Context-Aware and Pervasive
- What is the relationship between context-aware
computing and pervasive computing?
20Outline
- Motivation
- Context and Context-aware Computing
- Context-aware Applications
- Taxonomy
- Developing Context-aware Applications
- Issues and Challenges
- Special Topics
- Summary
21Examples of Context-awareness
- ??????
- ??????
- ????
- ???????
- ?????????,????!
22Active Badges
- 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
Active Badge Olivetti / ATT Hopper, Harter, et
al
23Active Badges (contd)
- Interface follow-me (location)
24 ParcTabs
- Active badge wireless
- Rough location ID
- Showing information ofthe room the user in
- Help find resources
- Show all files in a directorywhen enter a room
- Locate others
- Different control choices indifferent rooms
- (location, time, nearby devices, file system
state)
ParcTabs Xerox PARC Want, Schilit, et al
25Auto-diaries and Proximate Selection
26In/Out Board (Georgia Tech)
- Context identity by FRID, time
27DUMMBO (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
28Cyberguide
- 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
Cyberguide Georgia Tech Abowd et al
29Cyberguide (contd)
30Enhanced PDA
- 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
Microsoft Research Hinckley et al
31GUIDE (University of Lancaster)
- Context location through WLAN, userpreference
32Fieldwork
- University of Kent at Canterbury
- archeological assistant
- giraffe observation
- rhino identification
- (location through PalmPilot, GPS time)
- Location dependent notes through StickPlate,
StickEdit, StickMap
33Memory 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 sensortriggers taking of
imagesand transmitting to remoteserver
34Other Applications
- Shopping assistant (location)
- Smart floor, active floor
- Office assistant from MIT Media Lab. (activity,
schedule)
35Summary A Rough Taxonomy of Context-Aware Apps
- Triggers
- Metadata Tagging
- Reconfiguration and Streamlining
- Input specification
- Presentation
36A 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"
37A 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
38A 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
39A 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
40Outline
- Motivation
- Context and Context-aware Computing
- Context-aware Applications
- Developing Context-aware Applications
- Issues and Challenges
- Special Topics
- Summary
41Design Process of Typical Context-aware
Applications
- 1. Specification
- 2. Acquisition and Representation
- 3. Delivery/Distribution
- 4. Reception and Storage
- 5. Action (the application)
42Design Process Specification
- Context to use
- Context behaviors to perform
- Key step in design process problem specification
43Design Process Acquisition
- Install relevant sensors
- Sensors infrastructure or personal artifacts
- Where to sense?
- How often to update and report?
- Context representation
- Store context
44Design 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 - gt Need to deliver and distribute context to
multiple, remote applications - Infrastructure or middleware support
- App/network-level delivery/routing models and
transport mechanism
45Design 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,...
46Design 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
47Outline
- Motivation
- Context and Context-aware Computing
- Context-aware Applications
- Developing Context-aware Applications
- Issues and Challenges
- Special Topics
- Summary
48Sensing the Context (1/3)
- Location
- Outdoors GPS
- Indoors IR, RF, ultrasonic, camera(cellular and
non-cellular) - Hybrid IEEE 802.11, Mobile-IP
- Issues
- Heterogeneous sensors with uncertainty and
conflicts (sensor fusion) - Data vs sensor networks
- Making mobile devices location-aware
49Sensing 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 gt direct vs. indirect awareness
50Sensing the Context (3/3)
- High-level contexts users 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?
51Quality 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?
52Modeling 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
53Context 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
54Context 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)
55Context 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
56System 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
57System 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
58Intelligence
- 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
59People 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?
60People 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 dont know what is
being collected and how its used
61Killer 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?
62Outline
- 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
63Manipulating Multiple Contexts
- Source
- Multi-Sensor Context-Awareness in Mobile Devices
and Smart Artefacts - H.W. Gellersen, A. Schmidt, M. Beigl
- Lancaster University and University of Karlsruhe
Situation
sensor(s)
perceived
Context
64Direct/Indirect Context-Awareness
- Indirect context awareness
- Direct context awareness
Situation
device A
Infrastructure
device B
Context
communicate
sensor(s)
perceived
device C
device A
Situation
S(s)
Built-in sensors, context processing
device B
perceived
S(s)
Context
device C
S(s)
65Single 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
66Take 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
67Example TEA
- Technology EnablingAwareness
- Motivation make personalmobile devices smarter
- Specs
- CPU PIC16F877
- Storage 8K EEPROM
- RAM 200 Byte
- Use serial line tocommunicate with the host
host
TEA
68TEA Architecture
- Cue abstraction of raw data
- For example, an acceleration sensor can infer
cues like pattern of movement and current speed - Rules from cue to context can be pre-defined or
use supervised/unsupervised learning
69Initial 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
70Implementation
- 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
71Application
- Profile activation
- A user can have many profiles
- Activate profiles according to the situation
(in-hand, on-table, in-pocket, outdoors) - 87 certainty, 30 sec to calculate (not yet
optimized) - Context sharing (and privacy invasion)
Ask to call B
Request Bs context
A
Provide context
Inform A
Make decision
(Voice or short message)
As phone
Bs phone
72Mediacup 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
3mm high
73Identified 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
74Design 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!
75Design Issues (Contd)
- Region of impact
- No context-aware application in the environment
- Context as a common resource
Inside
MEETING
available
Outside
76Outline
- 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
77Context Modeling
- Source
- Modeling Context Information in Pervasive
Computing Systems, - Karen Henricksen, Jadwiga Indulska, Andry
Rakotonirainy - School of Information Technology and Electrical
Engineering, The University of Queensland
78Characteristics 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)
79Core Modeling Concepts
- Object-based approach
- Entities a physical or conceptual object
- Attributes properties of entities
- Associations linking an entity, its attributes,
and other entities (uni-directional) - Owner of an association
- As assertions about the owning entity
- Context description is a set of such assertions
80An Example Scenario
- 3 entities people, communication devices,
communication channels
81Classifying Associations
- Static associations relationship fixed during
lifetime of owner - Dynamic association
- Sensed transformed from raw data, change
frequently, staleness, sensing errors - Derived derivation function from other
associations, e.g., is located near - Profiled supplied by users
82Structured Constraints on Associations
- Simple association owner appears only once in
this role, e.g., named association of Person - Composite associations
- Collection owner can be associated with multiple
attributes and entities, e.g., people work with
others - Alternative e.g., comm. channel require a device
- Temporal association for a time interval, e.g.,
user activities
83Annotated Example
84Modeling 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
85Dependencies in the Example
86Modeling 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)
87Example with Context Quality
88Outline
- 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
89Context Toolkit
- The Context Toolkit Aiding the Development of
Context-Enabled Applications - D. Salber, A.K. Dey, G.D. Abowd
- Georgia Institute of Technology
- Proc. Of CHI99
90Difficulties 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
- gt Lack conceptual model and tools to solve
- gt Learning from GUI gt context widgets
91GUI Toolkits
- Benefits
- hide specifics of physical interaction devices
- manage the detail of the interaction
- provide reusable building blocks
- Limitation
- lacking flexibility
92Context Toolkit
- Toolkit for distributed context-aware apps
- Framework for acquiring and handling context
- Standard components
- Three key abstractions
- Widgets, Interpreters, and Aggregators
93Context Widgets
- Widgets abstract out sensors
App
App
Location Widget
GPS
Active Badge
Cell Phone Location
Active Badge
94Context 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
95Features
- 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., environmental information monitoring)
96Context Interpreters
- Convert or interpret context to higher level
information
App
Location to Street Interpreter
Location to Room Interpreter
Location Widget
97Context Aggregators
- Collect contexts relevant to particular entities
- Further separation, simplifies design
98Context Services
- Perform behaviors that act on the environment
In/out board
99Context Discoverer
- Registry for context components
In/out board
100Example Context Widgets (I)
- IdentityPresencesenses the presence of people
and their identity - Generators
- Acquires raw information from the sensor(s)
- Could be voice recognition, Active Badges,
video/image recognition, keyboard and login
information - Attributes and callbacks are independent of
generators
101Example Context Widgets (II)
- Activitysenses the current activity level at a
location - Generators
- Microphone, infrared sensor, video image analysis
102Other Context Widgets
- NamePresence
- Provides the users 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
identity, and length of her computing session - GroupURLPresence
- Provides a URL relevant to the research group a
user belongs to when her presence is detected
103Example of Using Context Widgets
- In/out board
- One IdentityPresence at entrance to building
104Example of Using Context Widgets
- Information Display
- Displays information relevant to the users
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
105Example of Using Context Widgets
- DUMMBO (Dynamic Ubiquitous Mobile Meeting Board)
- Digitizing whiteboard to capture and access
informal and spontaneous meetings - Capture ink written to and erased from whiteboard
as well as the recorded audio discussion - Activated when two or more people gathered around
- Context participants identities, time of
arrival at or depart whiteboard, location of
whiteboard - Multiple NamePresence, one for each location
where DUMMBO could be moved to, one on DUMMBO
itself
106Context Implementation Details
- Handle composition
- e.g., IdentityPresence Activity ? Meeting
- Interpreters can be used to assess validity of
uncertain information provided by multiple
generators - Server a widget that collects, stores and
interprets information from other widgets - Often used to model context of real world
entities, e.g., users or places, from elementary
widgets - May include privacy handling
107Context 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)
108Context 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
109Outline
- 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
110Context-Oriented Programming
- Context Oriented Programming (COP) for Pervasive
Computing, - Andry Rakotonirainy, University of Queensland,
Australia
111Motivating Example
A portable Hello World program
112Basic 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
113Open Term
Like macro expansions
114Compared with Traditional Way
115Context 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
116Python
- http//www.python.org/doc/Intros.html
- Python is an interpreted, interactive,
object-oriented programming language. - It is often compared to Tcl, Perl, Scheme or
Java. - It has modules, classes, exceptions, very high
level dynamic data types, and dynamic typing.
117XML Specification of an Open Term
- ltCURRENTgt
- It describes the current context.
- E.g lttaskgt reading lt/taskgt
- ltREQUIREgt
- It describes the required context of such
expression. - E.g ltsecuritygt SSL lt/securitygt
- ltEXCLUDEgt
- If the filling expression features this
context, it shouldnt fill the open terms. - ltOSgt Palm OS lt/OSgt means that an function from a
Palm OS shouldnt fill the current open term.
118Dynamic Scoping
- COP allows a form of dynamic scoping.
- Variables in COP can be called (set/get) from
outside the block of code in which they are
defined. - By default, all internal variable can be bound
(read/write) to external variables.
I think that this is not a good idea because the
program will lose its readability!
119COP Architecture (1/2)
- Objects that contain open terms
- Objects providing contextualized terms
- Objects that performs the matching between gaps
and offering functions
120COP Architecture (2/2)
Registry
Context aware object with migratable code
Context aware object with gaps
contextawareness
contextawareness
121COP Architecture
122My Example (1/2)
- class Context
-
- public
- virtual int GetValue() 0
-
- class Temperature public Context
-
- public
- int GetValue()
- return 30
-
123My Example (2/2)
- Object using the context via common interface
- Context ctx
- //get context prototype (Temperature)
- //download fill context body
-
- if (ctx.GetValue() gt 25)
- printf(Today is hot!\n)
- else
- printf(Today is cold!\n)
124Outline
- Motivation
- Context and Context-aware Computing
- Context-aware Applications
- Developing Context-aware Applications
- Issues and Challenges
- Special Topics
- Summary
125Summary
- 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