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/