ICrafter: A Service Framework for Ubiquitous Computing Environments

Slides:



Advertisements
Similar presentations
ICrafter: A Service Framework for Ubiquitous Computing Environments Shankar Ponnekanti, Brian Lee, Armando Fox, Pat Hanrahan, Terry Winograd (Stanford.
Advertisements

Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Asa MacWilliams Lehrstuhl für Angewandte Softwaretechnik Institut für Informatik Technische Universität München Dec Software.
Ubiquitous Computing The death of PC?. Ubiquitous Computing ubiquitous = Being or seeming to be everywhere at the same time; omnipresent. Mark Weiser,
Stanford hci group / cs376 research topics in human-computer interaction I/O Toolkits Scott Klemmer 29 November 2005.
MVC pattern and implementation in java
Composing Devices Prasun Dewan Department of Computer Science University of North Carolina
An Introduction to Software Architecture
11.10 Human Computer Interface www. ICT-Teacher.com.
Software Architecture Framework for Ubiquitous Computing Divya ChanneGowda Athrey Joshi.
Pervasive Computing: What is it good for? Andrew C. Huang, Benjamin C. Ling, Shankar Ponnekanti, Armando Fox Stanford University.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
SIEMENS OOPSLA 2000, Jini Pattern Language Workshop Profile-based Serivce Browsing Martin Gitsels, Jochen Sauter.
Justin Tilton uPortal Framework and User Interface Demonstration.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
John Li Jeff Lee Hardware, software, information Technology Hardware --The physical machinery and devices that make up a computer system. Software.
Providing web services to mobile users: The architecture design of an m-service portal Minder Chen - Dongsong Zhang - Lina Zhou Presented by: Juan M. Cubillos.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
2002 年 卒論中間発表 COIN: A Composable Interface masaya
System Software Laboratory Databases and the Grid by Paul Watson University of Newcastle Grid Computing: Making the Global Infrastructure a Reality June.
UK CropNet Software Development. UK CropNet Software Development Goals z Improve user access to data via user- friendly graphical displays. z Development.
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
AUTHOR PRADEEP KUMAR B.tech 1 st year CSE branch Gnyana saraswati college of eng. & technology Dharmaram(b)
Client/Server Technology
Operating Systems & System Software
Human Computer Interaction (HCI)
Support for the Development of Interactive Systems
Chapter 2: Database System Concepts and Architecture - Outline
WWW and HTTP King Fahd University of Petroleum & Minerals
Web Application.
Operating System.
11.10 Human Computer Interface
Cross Platform Development using Software Matrix
Ubiquitous Computing and Augmented Realities
Introduction to Operating System (OS)
Wireless Instant Messaging Using J2ME
Human Computer Interaction (HCI)
Introduction CSE 1310 – Introduction to Computers and Programming
Introduction to client/server architecture
Operating Systems What are they and why do we need them?
Introduction to Cloud Computing
1. 2 VIRTUAL MACHINES By: Satya Prasanna Mallick Reg.No

Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
User Interface(UI) Developer Skills & Responsibilities.
Database Management System (DBMS)
Chapter 12: Automated data collection methods
GEOMATIKA UNIVERSITY COLLEGE CHAPTER 2 OPERATING SYSTEM PRINCIPLES
Personalization in E-commerce Applications
Model-View-Controller Patterns and Frameworks
Lecture 1: Multi-tier Architecture Overview
Web Application Architectures
Recombinant Computing
Document Management Reference Model
Chapter 3 Hardware and software 1.
Principles/Paradigms Of Pervasive Computing
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Computer Basics: How Do Computers Work? Part II
Chapter 3 Hardware and software 1.
Web Application Architectures
Internet Protocols IP: Internet Protocol
E-commerce Infrastructure Web Servers / Web Clients / Web Browsers
I/O Toolkits Scott Klemmer · 16 November 2006.
Map of Human Computer Interaction
Introduction To Distributed Systems
Educational Computing
uPortal Framework and User Interface Demonstration
BoF on A3 Appliance Aggregation Architecture
Web Application Architectures
Presentation transcript:

ICrafter: A Service Framework for Ubiquitous Computing Environments Shankar Ponnekanti, Brian Lee, Armando Fox, Pat Hanrahan, Terry Winograd (Stanford Univ.)

Outline What Why How Example Model and Terminology 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: 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 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 Selector Generator Repository RequestUI(appl, target services) Generator Processor ReturnUI User Appliance

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 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 HTML SUIML FunkyML HPPrinter More Effort Better Quality Printer DataConsumerDevice Device

Appliance Specificity 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 Service Specificity 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/