Title: Context Fabric
1Context Fabric Infrastructure Support for
Context Awareness
Jason I. Hong
2What is Context-Awareness?
- Computers aware of people, places, objects, info,
and activities around them - e.g. Time, Identity, Location
- e.g. Temp, Bandwidth, Current document
- Info about Past, Present, and Future
- With context, computers can have richer forms of
interaction beyond desktop - Structure activities
- Navigate
- Adapt to unusual situations
3What is Context-Awareness?
- Existing examples of context-awareness
- Time ? Calendar events
- Identity ? Personalized desktops, MyYahoo
- Time ID ? File systems
- Mouse clicks ? Desired actions
- Prototype context-aware apps
- Active Badge (teleport and phone forwarding)
- Cyberguide (tour guides)
- ParcTabs (auto-diaries, nearest printers, etc)
4What is Context-Awareness?
- A strategy for improving interaction
- Make better use of info already out there
- An enabling technology for new kinds of
interaction - Stronger ties to our physical world
- "Where are the three nearest ATMs?"
- "Turn off my cell phone when I'm in a library"
- "Remind me to talk to Lucky about Scooby Snacks
the next time I see her"
5Taxonomy of Context-Aware Apps
Q1 Is context just "input we can't handle well
today" or is there something intrinsically
special about it? (Indirect interaction?
Sensors?) Q2 Ideas for better taxonomy?
Virtual
Physical
Tight
Loose
Coupling
6Taxonomy of Context-Aware Apps
- Will focus on loosely coupled, sensor-based
context-awareness
Virtual
Physical
Tight
Loose
7Problems with State of the Art
- Hard to build context-aware applications
- Discovery / Acquisition / Processing / Acting
- Requires lots of low-level knowledge
- Ambiguity is inherent
- Hard to maintain context-aware apps
- Rich diversity of types of context, devices,
sensors, algorithms, data sources, etc. - New ones being developed all the time!
- Privacy concerns
- Need clear, understandable policies
- Need to have good defaults
Context-aware systems are built in an ad hoc
manner, making it hard to address any of these
well
8Proposed Solution
- Infrastructure support for context-awareness
- Context Fabric, a network-accessible middleware
service infrastructure - "Dialtone" for context-awareness accessible from
any device, any application, any where, any time - Separate into sensors, services, and applications
- Make it easier to build loosely coupled,
sensor-based context-aware applications
9Why Infrastructures?
- Analogous to CD-ROM vs Web
- Independent of platform, OS, programming language
- Interoperability depends on app-level network
protocols and data formats only - Smaller applications
- Evolve sensors, services, and apps independently
and dynamically - Share resources
- Push sensors, computation, and data into net
10Research Issues
- Heterogeneity
- Interoperability
- Maintenance and Evolution
- Privacy
- Security
- Distributed systems
- A lot here, but key is minimal set of
functionality and extensibility for other policies
11High-Level Plan (Space Shuttle View)
- Design and implement basic infrastructure
- Programming model for distributed
sensor-based context-aware apps - Middleware interfaces, core services, and
components for common services - Evaluate by implementing several context-aware
applications on top - Measurable reduction of complexity
- Ease of adoption by programmers
- Support for a wide variety of sensors,
services, and apps
12Outline
- Context-awareness Overview
- Proposed Solution
- Context Fabric Architecture Overview
- Evaluation
- Related Work
13Proposed Architecture
- Separate into layers each with different
responsibilities - Go across layers through standardized data
formats and network protocols - Each layer provides a set of services
- Can modify and evolve within a layer as long as
system interface remains same
Application
Context
Logical
Infrastructure
Physical
14Physical Layer
- Physical sensors that gather raw data
- Examples
- GPS (location)
- Active Badge (identity, location)
- Floor sensors
- Cameras and microphones
Application
Context
Logical
Physical
15Logical Layer
- Logical layer is software counterpart to physical
layer - But doesn't have to have physical counterpart
- E.g. Login name
- Need to model
- Precision
- Granularity
- Accuracy
Application
Context
Logical
Physical
16Context Layer
- Transforms sensor data into context data
- Context info is interpreted and fused sensor data
- Combine one or more sensor readings over time
- Shift from precision, granularity, and accuracy
to probability - Can be "beamed" directly in
- "In movie theater"
- "At kiosk on 4th floor"
Application
Context
Logical
Physical
17Application Layer
- Anything that uses data from context layer
Application
Context
Logical
Physical
18Infrastructure Spaces
- Distributed spaces for scalability and
reliability - Need to figure out how these will interact with
each other - Need to figure out core services in each space
Application
Context
Logical
Physical
19Core Service 1 Automatic Path Creation
- Problem hard to refine and transform raw sensor
data into higher-level context data - Requires lots of low-level knowledge
- Burden is on developer
- Solution split computation from monolithic apps
into many small composable services and connect
them
20Core Service 1 Automatic Path Creation
21Core Service 1 Automatic Path Creation
What are the nearby movie theaters?
22Core Service 1 Automatic Path Creation
- Automatically assemble path based on resources
- Developers don't have to know specific sensors
- Easier to create new functionality
- Like SQL for databases
Is there a meeting in this room right now?
wav
Single speaker?
Sensor Input
wav
au
Sound
Context Output
wav
Audible sound?
Probability of Meeting?
mpeg
Motion?
Video
23Core Service 2 Proximity-based Discovery
- Find all nearby sensors
- Lets developers use sensors not on device
24Combining Core Services
- Dynamically link nearby sensors to
"Is there a meeting?"
Peripheral Sensors
Context Output
Probability of Meeting?
25Agent Space
- Make is easy to build class of context-aware
apps, apps that don't live on specific devices
Personal Storage
Diary Agent
Reminders Agent
Notify me of "Buy milk" when I am near the
supermarket.
Tell me about all changes in location and all
people I meet.
Remind me of "Paper deadline" next time John is
near me.
26Outline
- Context-awareness Overview
- Proposed Solution
- Context Fabric Architecture Overview
- Evaluation
- Related Work
27Evaluation
- Infrastructure evaluation
- Two or three non-trivial applications
- Notepals Context
- Auto-diary
28Related Work
- Context Toolkit
- Widgets, Interpreters, Aggregators
- Ubiquitous Computing system
- Device agents, active maps
- Interactive Workspaces
- Event heap, path creation
- MUSE
- Jini services, Bayesian reasoning
- Smart Environments
29Timeline
Done
2002
2003
2061
2062
2063
2001
30Summary