Appliance Computing CS 241 Internet Services © 2001 Benjamin Ling, Andrew Huang {bling,
Agenda n Introduction n Appliance Computing Vision n ADS Architecture n ADS Applications n Project Ideas n Homework
Introduction
What is an appliance? n Attributes: l Easy-to-use l Single-purpose n Examples: l Kitchen appliances l Television n PCs are not appliances: l Donald Norman: A computer is like a swiss-army knife. You could use one to cook dinner, but it’s much easier to use several kitchen appliance especially designed for the task at hand.
What makes an appliance useful? n Infrastructure support augments the utility of digital appliances. n “Access is the killer app.” n Examples: l Digital cameras: save a trip to the photo store l Digital camera + frame: send pictures across the country l Handspring Visors: web access l TiVo: records TV shows and gathers viewing information from users to intelligently know what to record
Problems with current devices n Devices are much too complex: l Dan Carp, CEO of Kodak: “The industry has made picture-taking more difficult and more complicated by cramming onto digital cameras more features, more buttons and more bells and whistles than most people want or need… The one lesson that 100 years of consumer marketing should have taught us: In the picture business, simple trumps megapixels, every time.”
Problems with current devices, cont n Problem: Extracting data is too complex l End users deal with installing, configuring, and learning new software l Maybe learn new paradigms, e.g. file system n Problem: Lack infrastructure support l Users have to deal with PCs because of the lack of infrastructure support l If the infrastructure supported these devices that allow for content creation and content sharing, devices would be more powerful appliances
Vision
Vision for appliance computing n People think of high-level tasks in terms of concrete artifacts and data residing on them l “Display the notes I’ve taken on my Visor on this wall monitor” l “Put this picture that I just took with my digital camera on my web page”
Vision An appliance computing world is one in which people move data effortlessly among artifacts to accomplish a variety of simple and advanced tasks
Keeping it Real n Attribute 1: People move data using concrete artifacts l E.g. 35mm film camera l Digital devices hard to use because they force users to perform too many steps on objects they don’t understand n Extracting information usually requires PC n Moving data to end destination involves PC n File conversions an unnecessary detail for many users n Principle 1: Bring devices to the forefront
Keep it simple, Stupid n Attribute 2: Devices are simple, single-purpose appliances l Some manufacturers push PC experience onto devices n Results in Mini-PC’s. Complex and hard to use. Drain batteries l Devices should be easier to use to keep the steps required to accomplish tasks short and simple n Principle 2: Keep the number of user-controllable features on devices to a minimum
Software in the Infrastructure n Attribute 3: People perform a variety of traditional tasks, as well as a new set of advanced tasks with their devices l Problem: If devices are kept simple, where do hard tasks happen? How to do format conversion or data transformation? l Tension between first two attrs and third n Principle 3: Place the software required to accomplish tasks in the network infrastructure l Free user from frustrating PC experience, and software installation/upgrade issues
Architecture
ADS Framework The ADS framework simplifies the creation of appliance computing applications and provides them with the following attributes: The ADS framework simplifies the creation of appliance computing applications and provides them with the following attributes: 1. People use artifacts to move data 2. Devices are kept simple 3. A variety of tasks can be accomplished
Basic data unit n ADS operates on the triple: (userid, cmd-tag, data) n Application selection: cmd-tag & userid l cmd-tag names the high-level application (e.g., “send picture to my Web site”) l Different users may have different meanings for the same tag (e.g., “my Web site” maps to different places). n Access control: userid l User’s public_html directory l Subscription-based services n Other service features: billing, personalization, etc.
ADS Architecture
Data Receive stage data sent to Access Point 2.Aggregator receives data, which completes the triple: (userid, cmd- tag, data) 3. completed triple sent to next stage 3
Application Control stage Canonicalizer converts cmd-tag to plaintext 5.(userid, cmd-tag) looked up in Template Database to find matching application template 6.application template and data sent to next stage when required data is received 4 5 6
Services Execution stage Application Dispatcher invokes services on data as specified in the application template 7
ADS Applications
Building ADS applications n Adding a device adaptor to the Access Point l Windows: communicate with the device and write data to a shared directory (no knowledge of ADS needed) l Other: communicate with the device and send an HTTP POST to the Aggregator n Adding a new service to the Service Execution stage l Use Java to write a Ninja service (few requirements) n Using supported devices and existing services l Create an XML application template describing the data required and the services to invoke on the data l Optional: create a user interface
Current ADS applications n Web Photo Album 1. Transfer pictures from a digital camera via IR 2. Enter descriptions via a Web page that displays text form entries next to the pictures transferred 3. Click “add to photo album” button to publish the pictures and descriptions to Geocities n Guest Book 1. Take a picture of the guest and transfer it via IR 2. Scan the guest’s business card or beam an electronic version using a Palm or WinCE device 3. Click “add to guest book” button to add the entry to the Guest Book (can also be published on Geocities)
Project Ideas
Ideas for new applications n SmartBoard Viewer: “beaming” data to an iRoom wall monitor causes the correct Windows application to be started automatically to display the data. n Notes Distributor: beam meeting notes displayed on an iRoom SmartBoard to users’ PDAs or laptops
Ideas for infrastructure projects n Device Receiving Service: design a service module that can be easily extended to output data onto various devices (analogous to the Access Point). n User Interface Support: design a framework on which applications’ user interfaces can be easily built or specified. n Template Designer: make it easier to create and edit templates using a Web (or other GUI) interface. n Feedback Loop: create a mechanism that enables ADS to report status information back to the user.
Homework
Homework 2 n Write a simple Ninja service that can be invoked via Java RMI or HTTP interface. l Internally, ADS communicates using Java RMI. l Externally, communicate with ADS components using HTTP. n Optional: create a more interesting Ninja service HTTP Frontend My Service