ICrafter: A Service Framework for Ubiquitous Computing Environments Shankar Ponnekanti, Brian Lee, Armando Fox, Pat Hanrahan, Terry Winograd (Stanford Univ.)
Mar 30, 2015
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?ChallengesContributions
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 operationsClumsy for compound operation: snap-and-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 workspacesO( 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?ArchitectureTechniques
Architecture
NetworkNetwork
Interface Manager
ServiceAppliance
Interface Manager
RequestUI(appl, target services)
Interface Manager
User Appliance
GeneratorProcessor
ReturnUI
GeneratorSelector
Generator Repository
Generator(s)
Example Generator
<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>
<form action=…>
<P> Select one of the following:
<input type=radio>Left screen
<input type=radio>Right screen
….
<//form>
Generators: Handling Appliance HeterogeneityExisting work: two extremes of quality/effort tradeoffUI’s for each service for every appliance
(Jini, UPnP, Hodes et al [Mobicom97] Generic appliance-independent service
descriptions (Roman et al [WMCSA00]
Specialization Hierarchy
HPPrinter
Printer
DataConsumerDevice
Device
Services Appliances
HTML
SUIML
FunkyML More EffortBetter Quality
Generator Spectrum
HPPrinterService HTML Generator
HPPrinterService SUIML Generator
PrinterService HTML
Generator
PrinterService SUIML Generator
DataConsumerDevice
HTML Generator
DataConsumerDevice SUIML Generator
Fully Generic HTML Generator
Fully Generic SUIML Generator
Appliance Specificity
Ser
vice
Spe
cifi
city
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
Exampleslookup_cmx(projector, “source1”)lookup_cmx(light, “location”)
Generators: Handling Aggregation
Generators for multiple servicesEg. {Camera, Display}, {Camera, Display,
Display}
Generators for service patternsEg. {Camera, Display+}, {Projector* }
Generators for service interface patternsEg. {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/