Document Sample
context-aware Powered By Docstoc
					Context Aware Computing

                             First Paper
   I used mostly “A Survey of Context-Aware Mobile Computing
    Research”, Chen and Kotz, Dartmouth (Tech Report) instead of
    Schilit’s paper (which is the original paper coining the term)

   Context-aware computing
     “Mobile computing application that can discover and take
      advantage of contextual information”
     A first step towards ubiquitous computing?

   What is “contextual information”?
     Example: user profile, location, time, temperature, nearby people or
       facilities, …

   “Instead of adapting systems and applications to mobility so that
    mobility is hidden, explore and support new mobile aware

Part I: Definitions/Taxonomy

                      Defining Context

   Dictionary definition: “the interrelated conditions in
    which something exists or occurs”
   One definition [Schilit]:
     Computing context: connectivity, communication cost,
     bandwidth, nearby resources (printers, displays, PCs)…
    User context: user profile, location, nearby people, social
     situation, activity, mood …
    Physical context: temperature, lighting, noise, traffic
     conditions …
   Author’s add: Time context (time of day, week,
    month, year…)
     Context history can also be useful
                         Context (cont’d)

   Is all this information necessary?

   “Context is the set of environmental states and settings that either
    determines an application’s behavior or in which an application event
    occurs and is interesting to the user”
     Active context: influences the behavior of the application
         •  Location in a call forwarding application
     Passive context: context that is relevant but not critical
         •  Active map application: display location name and other people
            in the room

   Is all this information measurable?
     Temperature? Location? People around? Social situation?

                 Context-Aware computing

   How to take advantage of this context information?
   Schilit’s classification of CA applications:
    1. Proximate selection: user interface where nearby objects
         are emphasized/made easier to choose
    2.   Automatic contextual reconfiguration: a process of
         adding/removing components or changing relationships
         between components based on context change
    3.   Contextual information and commands: produce different
         results according to the context in which they are issued
    4.   Context-triggered actions: rules to specify how the system
         should adapt
   Are these fundamental/inclusive?

        Alternative Taxonomy [Pascoe],[Dey]

   Pascoe: Taxonomy of context-aware features
     Contextual sensing: how to determine the context
     Contextual resource discovery
     Contextual augmentation: how to associate data with the

   Dey maps to “services” for CA apps:
     Presentation of information/services to users
     Execution of services
     Tagging of context to information for later retrieval

                  Author’s classification

   Follows from the definition of context

    1. Active Context Awareness: “an application automatically
       adapts to discovered context by changing the application’s

    1. 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”

Part 2: Survey of Context-aware Applications

                      App. Survey

   10+ applications surveyed, chronologically ordered
     We will look at a few
     Try to notice common threads

   Our second paper is a detailed look at one of these

                       PARCTab System

   Characteristic
     From Xerox Palo Alto Research Center
     12 applications

   Applications
     Active Map
         • Location information           Figure : ParcTab Terminal
         (Room number)
     The others
         Some helps the user find the most convenient local resources
             – e.g. nearest printer
         • An application makes ParcTab as a remote control

                 Active Badge System

   Characteristic
     From Olivetti Research Lab in 90’s
     One of the first context-aware systems
     Office personnel wear badges (IR signal)
   Applications
     Call Forwarding

                                      Figure : Locations of the
                                      office personnel with badges
                       Call Forwarding

   Location of employees is shown to receptionist
     Receptionist forwards calls to the nearest phone
     Eventually, receptionist was removed from the loop; calls
       forwarded automatically

   Is this a good idea?
     What if you were in an important meeting? (or taking a nap!)
     What if a private call is forwarded to a non private room?
     “Context-aware communication”
   What is the context?
     What about an active map application?

                    Mobisaic Web Browser

   Extend browsers to refer to dynamic contextual

   Dynamic URLs with contextual/environment variables
     Variables get bound to current context when the URL is

   Also support active documents
     As the context changes, the document is automatically

   What types of context can be useful here?
    Active or passive?
                      Shopping Assistant

   Scenario: you are at home depot trying to figure out
    what you need to finish your basement

   Shopping assistant can
     Tell you what parts you need
     Where to find them relative to your location in the store
     What is on sale
     Do comparative pricing
     Use your previous profile information to customize shopping
       and delivery

   What context? Active/passive?


   Characteristic
     From Georgia Tech
     Provide information services to a
        •   Direction
        •   Background information
        •   Travel diary (automatically
     Indoor and Outdoor Version
        •   Indoor
            –   Using IR (infrared)
        •   Outdoor
            –   Using GPS                 Figure : Outdoor
                                          Screenshot, etc.
                       Augmented Reality

   User’s view of the real world is augmented with
    additional information
   Scenario 1: you wear sun-glasses with a display and
    headphones and walk in downtown Rome
     As you move around, the glasses can tell you your location
     As you look at the coliseum you get information about it
   Scenario: special ops squad infiltrating an enemy
    complex wearing the same gizmos
     In addition to information as above, the glasses change to
       night vision if lighting is not sufficient

   Context?


   Developed in Lancaster University
     For Lancaster City visitors

   Using WaveLAN as
    communication infrastructure
     A tourist comes to a region(cell), then
       he receives information of the region.   Screenshot of GUIDE

   Information provided using
     Fujitsu TeamPad 7600 portable PC
     Java based http browser

               Adaptive GSM phone/PDA

   PDA: notepad application changes its characteristics
    depending on user activity
     Large font when walking, small font when stationary
     Change the intensity level depending on the lighting

   Phone: decide ring volume or vibration depending on
     In hand, in a suitcase, on a table, in a

   What is the context?
                 Conference Assistant

   Assistant checks out conference schedule and user’s
    interest to highlight which presentations should be

   Automatically present speaker names, title of
    paper/other relevant info

   May record slides, audio, questions, take notes and
    tag them with the appropriate place in the talk for
    later retrieval

        Location Aware Information Delivery

   Generate reminders to users as they enter locations
    Voice synthesis used to generate audio reminders
    “Sorry, dear, I forgot” is going to become obsolete?

   Several projects (MIT, Stanford, GaTech)

   CyberMinder (GaTech) uses a complex context
    including nearby people, weather conditions

   But what is the basic context needed here?


   Human-Computer interaction can be improved with context info
     Intelligent applications?   AI?

   Focus on simple context(s): e.g., location, identity, time

   Why aren’t other contexts used more heavily?
     Not that useful?
     Difficult to sense/model?
     Need more imagination?
     A natural consequence of these being mobile applications?

   No killer app…
     little gizmos of limited use
     Still to come?

   From MIT Media Lab
   Composed with
     Wearable video camera
     Computer
     sensing system
   Save Image when the
     wearer is interested
     By sensing skin conductivity

                                     Figure : StartleCam System

Sensing Context

                How to sense the context
   Sensing Location – Use Global Positioning System

   Some info:
     GPS determines the distance by measuring the time it takes
     a signal to propagate from Satellite to receiver
    Need to have very good synchronization of clocks
    Receive signal from three satellites to determine location
    Need a fourth satellite to estimate elevation
    Satellite GPS accuracy is getting reasonable (10-20 meters)
    Sub-meter accuracy possible with differential GPS

   But what to do indoors?


   GPS doesn’t work because the satellite signal is
    weak or reflected (lowers accuracy)

   Need to build our own location tracking system
     difficult problem

   Use ideas similar to GPS: compute distances from
    known locations that send beacons

                      Location Tracking

   We will look at the Bat system from AT&T labs (as
    part of our second paper)
   Cricket (MIT, Mobicom 2001):
     RF and ultrasonic signals sent from each basestation
     Mobile estimates distance by time interval between the two
      signal arrivals
     Accuracy within a few feet
   RADAR (Microsoft) and other efforts
     Measure signal strength (or SNR) to estimate distance
     A set of static receivers track positions of transmitters
     They are queried for location

           Guide System Location Tracking

   Cellular system with base stations at areas of interest
     Non-overlapping cells

   Coarse Granularity Location
     You only know what area you are from by knowing the
       basestation that you are in range of

   Cells not overlapping; can lose track of location

            Sensing other low level contexts

   Time?
   Physical sensors possible
     Light, acceleration, tilt, sound, temperature, pressure,
       proximity of humans
   Nearby objects?
     If system keeps track of location of objects, query to a
   Bandwidth? Odyssey
   Orientation?
     Orientation sensor based on two mercury switches (Newton
     Directional antennas/directional transmitters?

                   High Level contexts

   This is by far the more difficult problem
     Not just an engineering challenge
     Psychology, sociology, …??

   How does a node know whether this is a party or a
     Check your calendar or detect the cake/coffin?

                Sensing Context changes

   Publish subscribe model?
     Monitor polls the current context
     Notifies subscribers to the context
     Centralized or on a per-node?

   Polling rate is a function of rate of change of context

Modeling Context Information

                        Location Model

   How do we answer questions such as:
     Given an object what is its location
     Given a location, return the set of objects there
     Determining paths between locations
     How does a vehicle navigation system do it?

   Geographical Information Systems/Spatial Databases
    Already pretty mature (part of Oracle, mysql, etc..)
    Model geometry and topology
    Typically locations are organized hierarchically
    Sonal Dedhia’s project

                Security and Privacy Issues

   I personally hate the idea that someone can know my
    location all the time
     I still refuse to get a cell phone, but it looks like I will finally
      cave in!
     Par for the course, many of these systems ignore privacy
      and security issues

             Second Paper

     The Anatomy of a Context-Aware
 Application – Andy Harter, Andy Hopper,
Pete Steggles, Andy Ward and Paul Webster.
     AT&T Labs, Cambridge, UK (cont)

   Paper describes the system components necessary to support
    a context-aware application
            1.   Location system
            2.   Data model
            3.   Distributed object model
            4.   Resource Monitors
            5.   Spatial monitors

   Working system, real details

   So what is the application? Teleporting/follow-me
     Application follows you as you move around a building
     Hmm!! Virtual dog?
        •   Definitely some gaming applications
        •   But what else? Virtual nanny?
        •   Framework not specific to this application
                       Location System

   Would like:
    Fine grained (accurate in space)
    High update rate (accurate in time)
    Works indoors

   Argue for ultrasonic
     Optical: expensive detectors; line of sight limitations
     GPS: dies indoors
     RF: multipath

                               Bat Unit

   Radio transceiver, ultrasonic transducer and control logic

   Each bat has a GUID
     Base station transmits a periodic message with the GUID;
       corresponding bat responds with ultrasound

   Use speed of sound in air (estimated from ambient temperature)
    to estimate location
     Ultrasonic receivers detect the delay and map it to distance

   Use multiple receivers to get 3D location using multilateration

   Reflections of ultrasonic waves – statistical outlier elimination
    (can same techniques be applied to RF multipath?)

Bat (cont’d)

                           Bat Unit (cont.)

   It takes 20 ms between bat readings = 50 timeslots per base
    station per second
     Allow echos to die

   Location can be used to measure orientation
     Attach many bats to the same object. Use the measurements to
      infer the orientation
     If too cumbersome, can check “shadow” of a single bat

   Base station can provide Location Quality-of-service to allocate
    time slots to bats based on the expected update frequency
     Bats carried by people – few times a second
     Bats attached to workstation – once every few minutes

                          Bat Unit (cont.)

   Bats perform handover when moving from one base station to
    another (similar to the cellular networks)
     Hand off decisions can also be made based on the Bat location

   Battery consumption is low, power consumed depends on the
    update frequency and power state
     Several updates a second = several month lifetime

   95% of samples within 9cm’s of actual location
     95% of samples within 25 degrees with multiple bats; within 70
       degrees for a single bat (orientation)

   Bat is good enough to be used as a 3D mouse; it has buttons
    and can communicate with basestation

How well does it work?

               Modeling the environment

   Detailed model describing entities in the real world
    and their possible interactions
     Environment consists of real objects: should use OO
       modeling (agree?)

   Modeling language based on entity relation diagrams
    and multiple inheritance
     Modeled people, computers, keyboards, monitors, networks,
       telephones and furniture

   Use CORBA and databases to implement persistent
    distributed objects
3 Tier Architecture

         Populating and Updating the Model

   Some elements are static (e.g., furniture)
     …but some are dynamic (e.g., is a keyboard in use)
        • need to be updated automatically
   Centralized data repository (to optimize information

   Three classes of resource monitors:
     Machine activity e.g. keyboard activity
     Machine resource e.g. CPU usage, memory usage
     Network point-to-point bandwidth and latency

                   Client level event filters

   Update Frequency
     The frequency at which items are monitored is based on
       how quickly the item tends to change

   Relevancy
     If a value has not changed significantly, it is not sent. This
       value depends on the data being monitored

   Caching
     Caching improves performance at the cost of consistency

                       Location Update

   Each Bat location is tracked
     Translated into object location in a type specific way (e.g.,
       person different than workstation)
   Absolute and relative spatial facts
     “Person is at (x,y,z) facing in direction ” .vs. “Person is
      standing in front of the monitor”
     Geometric containment is used for relative spatial facts


                                       Contained(person, screenspace)

Reasoning about Space


   With many devices, containment is complex

   They use containment tree indexing system (a quad-
    tree based approach)


   BAT teleportation system
     With their earlier active badge based teleportation system,
     they only knew that a user was in the room and so they had
     to cycle between multiple displays in a room
    If a particular display was being use, they would still cycle
     that display because they did not monitor machines
    If a machine is dead, their system would still wait because
     they did not monitor machines
    With the BAT system, they have more accurate location

    Event driven programming style

                  Zones and Buttons



   Action zone triggers teleportation
   Within maintain zone, teleported desktops are