Context-aware Computing: Basic Concepts - PowerPoint PPT Presentation

About This Presentation
Title:

Context-aware Computing: Basic Concepts

Description:

Context-aware Computing: Basic Concepts Outline Motivation Context and ... – PowerPoint PPT presentation

Number of Views:587
Avg rating:3.0/5.0
Slides: 126
Provided by: ChiuT5
Category:

less

Transcript and Presenter's Notes

Title: Context-aware Computing: Basic Concepts


1
Context-aware ComputingBasic Concepts
  • ?????
  • ??????????????
  • ??????????

2
Outline
  • Motivation
  • Context and Context-aware Computing
  • Context-aware Applications
  • Developing Context-aware Applications
  • Issues and Challenges
  • Special Topics
  • Summary

3
Sources
  • Out of Context Computer Systems That Adapt to,
    and Learn from, Context, H. Lieberman, T.
    Selker, MIT
  • A Survey of Context-Aware Mobile Computing
    Research, by G. Chen, D. Kotz, Dartmouth College
  • Context-Aware Applications Survey, M.
    Korkea-aho, Helsinki University of Technology
  • Slides from Jason I. Hong, Group for User
    Interface Research, U. of California at Berkeley

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

5
Traditional View of Computer Systems
Context independent acts exactly the same
Computer System
input
output
Human in the loop
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)

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

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

9
Why Context-Aware Computing?
Context Types
Existing Examples
Human Concern
10
Why 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
11
Outline
  • Motivation
  • Context and Context-aware Computing
  • Context-aware Applications
  • Developing Context-aware Applications
  • Issues and Challenges
  • Special Topics
  • Summary

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
  • gt context history

13
Definition 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

14
Definition 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

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

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 users context)

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

18
Context-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.

19
Context-Aware and Pervasive
  • What is the relationship between context-aware
    computing and pervasive computing?

20
Outline
  • Motivation
  • Context and Context-aware Computing
  • Context-aware Applications
  • Taxonomy
  • Developing Context-aware Applications
  • Issues and Challenges
  • Special Topics
  • Summary

21
Examples of Context-awareness
  • ??????
  • ??????
  • ????
  • ???????
  • ?????????,????!

22
Active 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
23
Active 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
25
Auto-diaries and Proximate Selection
26
In/Out Board (Georgia Tech)
  • Context identity by FRID, time

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

28
Cyberguide
  • 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
29
Cyberguide (contd)
30
Enhanced 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
31
GUIDE (University of Lancaster)
  • Context location through WLAN, userpreference

32
Fieldwork
  • University of Kent at Canterbury
  • archeological assistant
  • giraffe observation
  • rhino identification
  • (location through PalmPilot, GPS time)
  • Location dependent notes through StickPlate,
    StickEdit, StickMap

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 sensortriggers taking of
    imagesand transmitting to remoteserver

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

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

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"

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

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

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

40
Outline
  • Motivation
  • Context and Context-aware Computing
  • Context-aware Applications
  • Developing Context-aware Applications
  • Issues and Challenges
  • Special Topics
  • Summary

41
Design Process of Typical Context-aware
Applications
  • 1. Specification
  • 2. Acquisition and Representation
  • 3. Delivery/Distribution
  • 4. Reception and Storage
  • 5. Action (the application)

42
Design Process Specification
  • Context to use
  • Context behaviors to perform
  • Key step in design process problem specification

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

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
  • gt Need to deliver and distribute context to
    multiple, remote applications
  • Infrastructure or middleware support
  • App/network-level delivery/routing models and
    transport mechanism

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

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

47
Outline
  • Motivation
  • Context and Context-aware Computing
  • Context-aware Applications
  • Developing Context-aware Applications
  • Issues and Challenges
  • Special Topics
  • Summary

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
    conflicts (sensor fusion)
  • Data vs sensor networks
  • Making mobile devices location-aware

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 gt direct vs. indirect awareness

50
Sensing 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?

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?

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

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

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)

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

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

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

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

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?

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 dont know what is
    being collected and how its used

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?

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

63
Manipulating Multiple Contexts
  • Source
  • Multi-Sensor Context-Awareness in Mobile Devices
    and Smart Artefacts
  • H.W. Gellersen, A. Schmidt, M. Beigl
  • Lancaster University and University of Karlsruhe

Situation
sensor(s)
perceived
Context
64
Direct/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)
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

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

67
Example 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
68
TEA Architecture
  • Cue abstraction of raw data
  • For example, an acceleration sensor can infer
    cues like pattern of movement and current speed
  • Rules from cue to context can be pre-defined or
    use supervised/unsupervised learning

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

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

71
Application
  • Profile activation
  • A user can have many profiles
  • Activate profiles according to the situation
    (in-hand, on-table, in-pocket, outdoors)
  • 87 certainty, 30 sec to calculate (not yet
    optimized)
  • Context sharing (and privacy invasion)

Ask to call B
Request Bs context
A
Provide context
Inform A
Make decision
(Voice or short message)
As phone
Bs phone
72
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

3mm high
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

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!

75
Design Issues (Contd)
  • Region of impact
  • No context-aware application in the environment
  • Context as a common resource

Inside
MEETING
available
Outside
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

77
Context Modeling
  • Source
  • Modeling Context Information in Pervasive
    Computing Systems,
  • Karen Henricksen, Jadwiga Indulska, Andry
    Rakotonirainy
  • School of Information Technology and Electrical
    Engineering, The University of Queensland

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)

79
Core Modeling Concepts
  • Object-based approach
  • Entities a physical or conceptual object
  • Attributes properties of entities
  • Associations linking an entity, its attributes,
    and other entities (uni-directional)
  • Owner of an association
  • As assertions about the owning entity
  • Context description is a set of such assertions

80
An Example Scenario
  • 3 entities people, communication devices,
    communication channels

81
Classifying Associations
  • Static associations relationship fixed during
    lifetime of owner
  • Dynamic association
  • Sensed transformed from raw data, change
    frequently, staleness, sensing errors
  • Derived derivation function from other
    associations, e.g., is located near
  • Profiled supplied by users

82
Structured Constraints on Associations
  • Simple association owner appears only once in
    this role, e.g., named association of Person
  • Composite associations
  • Collection owner can be associated with multiple
    attributes and entities, e.g., people work with
    others
  • Alternative e.g., comm. channel require a device
  • Temporal association for a time interval, e.g.,
    user activities

83
Annotated Example
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

85
Dependencies in the Example
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)

87
Example with Context Quality
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

89
Context Toolkit
  • The Context Toolkit Aiding the Development of
    Context-Enabled Applications
  • D. Salber, A.K. Dey, G.D. Abowd
  • Georgia Institute of Technology
  • Proc. Of CHI99

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
  • gt Lack conceptual model and tools to solve
  • gt Learning from GUI gt context widgets

91
GUI Toolkits
  • Benefits
  • hide specifics of physical interaction devices
  • manage the detail of the interaction
  • provide reusable building blocks
  • Limitation
  • lacking flexibility

92
Context Toolkit
  • Toolkit for distributed context-aware apps
  • Framework for acquiring and handling context
  • Standard components
  • Three key abstractions
  • Widgets, Interpreters, and Aggregators

93
Context Widgets
  • Widgets abstract out sensors

App
App
Location Widget
GPS
Active Badge
Cell Phone Location
Active Badge
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

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., environmental information monitoring)

96
Context Interpreters
  • Convert or interpret context to higher level
    information

App
Location to Street Interpreter
Location to Room Interpreter
Location Widget
97
Context Aggregators
  • Collect contexts relevant to particular entities
  • Further separation, simplifies design

98
Context Services
  • Perform behaviors that act on the environment

In/out board
99
Context Discoverer
  • Registry for context components

In/out board
100
Example 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

101
Example Context Widgets (II)
  • Activitysenses the current activity level at a
    location
  • Generators
  • Microphone, infrared sensor, video image analysis

102
Other 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

103
Example of Using Context Widgets
  • In/out board
  • One IdentityPresence at entrance to building

104
Example 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

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

106
Context Implementation Details
  • Handle composition
  • e.g., IdentityPresence Activity ? Meeting
  • Interpreters can be used to assess validity of
    uncertain information provided by multiple
    generators
  • Server a widget that collects, stores and
    interprets information from other widgets
  • Often used to model context of real world
    entities, e.g., users or places, from elementary
    widgets
  • May include privacy handling

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)

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

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

110
Context-Oriented Programming
  • Context Oriented Programming (COP) for Pervasive
    Computing,
  • Andry Rakotonirainy, University of Queensland,
    Australia

111
Motivating Example
A portable Hello World program
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

113
Open Term
Like macro expansions
114
Compared with Traditional Way
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

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

117
XML 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.

118
Dynamic Scoping
  • COP allows a form of dynamic scoping.
  • Variables in COP can be called (set/get) from
    outside the block of code in which they are
    defined.
  • By default, all internal variable can be bound
    (read/write) to external variables.

I think that this is not a good idea because the
program will lose its readability!
119
COP Architecture (1/2)
  • Objects that contain open terms
  • Objects providing contextualized terms
  • Objects that performs the matching between gaps
    and offering functions

120
COP Architecture (2/2)
Registry
Context aware object with migratable code
Context aware object with gaps
contextawareness
contextawareness
121
COP Architecture
122
My Example (1/2)
  • class Context
  • public
  • virtual int GetValue() 0
  • class Temperature public Context
  • public
  • int GetValue()
  • return 30

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() gt 25)
  • printf(Today is hot!\n)
  • else
  • printf(Today is cold!\n)

124
Outline
  • Motivation
  • Context and Context-aware Computing
  • Context-aware Applications
  • Developing Context-aware Applications
  • Issues and Challenges
  • Special Topics
  • Summary

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
Write a Comment
User Comments (0)
About PowerShow.com