ICrafter: A Service Framework for Ubiquitous Computing Environments

advertisement
ICrafter: A Service
Framework for
Ubiquitous Computing
Environments
Shankar Ponnekanti, Brian Lee,
Armando Fox, Pat Hanrahan,
Terry Winograd (Stanford Univ.)
Outline
What


Example
Model and Terminology
Why


Challenges
Contributions
How


Architecture
Techniques
Example
Example (Contd.)
Model and Terminology
Workspace: A physically confined
environment intended for
collaboration
Model and Terminology
(contd.)
Service



A h/w or s/w resource
Provides a useful function to end-users
Example: Light, projector, browser, ppt
Appliance


Facility used for interaction with services
Example: Laptop, PDA
SUIML

Swing UI Markup Language
Outline
What?
Why?
Challenges
 Contributions

How?
Appliance
Heterogeneity
Must accommodate a variety of UI
languages/ modalities.
Workspace
Heterogeneity
UI’s must reflect workspace
configuration
Aggregation
May seem individual UI’s can be
combined. However ….
UI(S1+S2) !=
UI(S1)+UI(S2)
Good for individual operations
Clumsy for compound operation: snapand-display
UI(S1+S2) != UI(S1) +
UI(S2)
Transfer = snap and display in one click
Where We Stand
Suppose n services, m appliances and
w workspaces
O( F(n) × m × w ) UI’s
 F(n) is some combinatorial function of n

Existing ad-hoc interaction systems:
Jini, UPnP, Hodes et al (Mobicom97,
USITS99), Roman et al (WMCSA00)
Mostly focus on appliance heterogeneity
Results
Offload UI selection to third-party (i.e,
non-service, non-appliance)
Generalize existing approaches to
appliance heterogeneity
Frameworks for handling workspace
heterogeneity and
Techniques for aggregation
Outline
What?
Why?
How?
Architecture
 Techniques

Architecture
Interface Manager
Network
Service
Appliance
Interface Manager
Generator Repository
Interface Manager
Generator Generator(s) Generator
Selector
Processor
RequestUI(appl, target services)
User Appliance
ReturnUI
Example Generator
<form action=… >
<form action=…>
{
S1 = lookup_cmx (“Proj1”, “src1”)
S2 = lookup_cmx(“Proj1”, “src2”)
}
<P> Select one of the following:
<input type=radio .. >{print $S1}
<input type=radio .. >{print $S2}
….
</form>
<P> Select one of the following:
<input type=radio>Left screen
<input type=radio>Right screen
….
<//form>
Generators: Handling
Appliance
Heterogeneity
Existing work: two extremes of
quality/effort tradeoff
UI’s for each service for every appliance
(Jini, UPnP, Hodes et al [Mobicom97]
 Generic appliance-independent service
descriptions (Roman et al [WMCSA00]

Specialization Hierarchy
Services
Appliances
HPPrinter
FunkyML
Printer
SUIML
DataConsumerDevice
HTML
Device
More Effort
Better Quality
Service Specificity
Generator Spectrum
HPPrinterService
HTML Generator
HPPrinterService
SUIML Generator
PrinterService HTML
Generator
DataConsumerDevice
HTML Generator
Fully Generic HTML
Generator
PrinterService SUIML
Generator
DataConsumerDevice
SUIML Generator
Fully Generic SUIML
Generator
Appliance Specificity
Generators: Workspace
Heterogeneity
All workspace configuration stored in a
centralized "context memory" (Winograd, HCI
’01)
Generators access configuration information
using fixed APIs

lookup_cmx(service, configuration property)
Advantages of centralized configuration


easier to administer
flexible, powerful queries
Examples
lookup_cmx(light, “location”)
lookup_cmx(projector, “source1”)
Generators: Handling
Aggregation
Generators for multiple services

Eg. {Camera, Display}, {Camera, Display,
Display}
Generators for service patterns

Eg. {Camera, Display+}, {Projector* }
Generators for service interface
patterns

Eg. {DataProducer, DataDisplayer+}
Simplified Example
Request for {Camera, Display}
Matches Camera generator, Display generator, and
{DataProducer, DataDisplayer} generator
Simplified Example
Aggregated using panels
Outline
What?
Why?
How?
Bootstrapping
Future Work
Authentication and synchronization
Aggregation: more intelligent generator
set selection:

Eg. Eliminate a {DataProducer,
DataDisplayer} generator if a {Camera,
Display} generator exists
Interactive Workspaces
Project Info
Some software already available
Major release (including ICrafter) due
this month
For software and other info:
http://iwork.stanford.edu/
Download