Appliance ComputingAppliance Computing
CS 241 Internet ServicesCS 241 Internet Services© 2001 Benjamin Ling, Andrew Huang© 2001 Benjamin Ling, Andrew Huang
{bling, ach}@cs.stanford.edu{bling, ach}@cs.stanford.edu
AgendaAgenda
IntroductionIntroduction
Appliance Computing VisionAppliance Computing Vision
ADS ArchitectureADS Architecture
ADS ApplicationsADS Applications
Project IdeasProject Ideas
HomeworkHomework
What is an appliance?What is an appliance?
Attributes:Attributes: Easy-to-useEasy-to-use Single-purposeSingle-purpose
Examples:Examples: Kitchen appliancesKitchen appliances TelevisionTelevision
PCs are not appliances:PCs are not appliances: Donald Norman: A computer is like a swiss-army Donald Norman: A computer is like a swiss-army
knife. You could use one to cook dinner, but it’s knife. You could use one to cook dinner, but it’s much easier to use several kitchen appliance much easier to use several kitchen appliance especially designed for the task at hand.especially designed for the task at hand.
What makes an appliance useful?What makes an appliance useful?
Infrastructure support augments the utility of Infrastructure support augments the utility of digital appliances.digital appliances.
““Access is the killer app.”Access is the killer app.”
Examples:Examples: Digital cameras: save a trip to the photo storeDigital cameras: save a trip to the photo store
Digital camera + frame: send pictures across the Digital camera + frame: send pictures across the countrycountry
Handspring Visors: web access Handspring Visors: web access
TiVo: records TV shows and gathers viewing TiVo: records TV shows and gathers viewing information from users to intelligently know what to information from users to intelligently know what to recordrecord
Problems with current devicesProblems with current devices
Devices are much too complex:Devices are much too complex: Dan Carp, CEO of Kodak: Dan Carp, CEO of Kodak:
““The industry has made picture-taking more The industry has made picture-taking more difficult and more complicated by cramming difficult and more complicated by cramming onto digital cameras more features, more onto digital cameras more features, more buttons and more bells and whistles than most buttons and more bells and whistles than most people want or need… The one lesson that 100 people want or need… The one lesson that 100 years of consumer marketing should have years of consumer marketing should have taught us: In the picture business, simple taught us: In the picture business, simple trumps megapixels, every time.”trumps megapixels, every time.”
Problems with current devices, Problems with current devices, contcont
Problem: Extracting data is too complexProblem: Extracting data is too complex End users deal with installing, configuring, and End users deal with installing, configuring, and
learning new softwarelearning new software
Maybe learn new paradigms, e.g. file systemMaybe learn new paradigms, e.g. file system
Problem: Lack infrastructure supportProblem: Lack infrastructure support Users have to deal with PCs because of the lack of Users have to deal with PCs because of the lack of
infrastructure supportinfrastructure support
If the infrastructure supported these devices that If the infrastructure supported these devices that allow for content creation and content sharing, allow for content creation and content sharing, devices would be more powerful appliancesdevices would be more powerful appliances
Vision for appliance computingVision for appliance computing
People think of high-level tasks in terms of People think of high-level tasks in terms of concrete artifacts and data residing on themconcrete artifacts and data residing on them ““Display the notes I’ve taken on my Visor on this wall Display the notes I’ve taken on my Visor on this wall
monitor”monitor”
““Put this picture that I just took with my digital Put this picture that I just took with my digital camera on my web page”camera on my web page”
VisionVision
An appliance computing world is An appliance computing world is one in which people move data one in which people move data effortlessly among artifacts to effortlessly among artifacts to accomplish a variety of simple accomplish a variety of simple
and advanced tasksand advanced tasks
Keeping it RealKeeping it Real
Attribute 1: People move data using concrete Attribute 1: People move data using concrete artifactsartifacts E.g. 35mm film cameraE.g. 35mm film camera
Digital devices hard to use because they force users to Digital devices hard to use because they force users to perform too many steps on objects they don’t perform too many steps on objects they don’t understandunderstand
Extracting information usually requires PCExtracting information usually requires PC
Moving data to end destination involves PCMoving data to end destination involves PC
File conversions an unnecessary detail for many File conversions an unnecessary detail for many usersusers
Principle 1: Bring devices to the forefrontPrinciple 1: Bring devices to the forefront
Keep it simple, StupidKeep it simple, Stupid
Attribute 2: Devices are simple, single-purpose Attribute 2: Devices are simple, single-purpose appliancesappliances Some manufacturers push PC experience onto Some manufacturers push PC experience onto
devicesdevices
Results in Mini-PC’s. Complex and hard to use. Results in Mini-PC’s. Complex and hard to use. Drain batteriesDrain batteries
Devices should be easier to use to keep the steps Devices should be easier to use to keep the steps required to accomplish tasks short and simplerequired to accomplish tasks short and simple
Principle 2: Keep the number of user-Principle 2: Keep the number of user-controllable features on devices to a minimumcontrollable features on devices to a minimum
Software in the InfrastructureSoftware in the Infrastructure
Attribute 3: People perform a variety of Attribute 3: People perform a variety of traditional tasks, as well as a new set of traditional tasks, as well as a new set of advanced tasks with their devicesadvanced tasks with their devices Problem: If devices are kept simple, where do hard Problem: If devices are kept simple, where do hard
tasks happen? How to do format conversion or data tasks happen? How to do format conversion or data transformation? transformation?
Tension between first two attrs and thirdTension between first two attrs and third
Principle 3: Place the software required to Principle 3: Place the software required to accomplish tasks in the network infrastructureaccomplish tasks in the network infrastructure Free user from frustrating PC experience, and Free user from frustrating PC experience, and
software installation/upgrade issuessoftware installation/upgrade issues
ADS FrameworkADS Framework
The ADS framework simplifies the creation of The ADS framework simplifies the creation of appliance computing applications and appliance computing applications and provides them with the following attributes:provides them with the following attributes:
1.1. People use artifacts to move dataPeople use artifacts to move data
2.2. Devices are kept simpleDevices are kept simple
3.3. A variety of tasks can be accomplishedA variety of tasks can be accomplished
Basic data unitBasic data unit
ADS operates on the triple: ADS operates on the triple: (userid, cmd-tag, data)(userid, cmd-tag, data)
Application selection: cmd-tag & useridApplication selection: cmd-tag & userid cmd-tag names the high-level application (e.g., “send cmd-tag names the high-level application (e.g., “send
picture to my Web site”)picture to my Web site”) Different users may have different meanings for the same Different users may have different meanings for the same
tag (e.g., “my Web site” maps to different places).tag (e.g., “my Web site” maps to different places).
Access control: useridAccess control: userid User’s public_html directoryUser’s public_html directory Subscription-based servicesSubscription-based services
Other service features: billing, personalization, Other service features: billing, personalization, etc.etc.
Data Receive stageData Receive stage
1
21. 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 stageApplication Control stage
1
2
3
4. 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 stageServices Execution stage
1
2
3
4
5
6
7. Application Dispatcher invokes services on data as specified in the application template
7
Building ADS applicationsBuilding ADS applications
Adding a device adaptor to the Access PointAdding a device adaptor to the Access Point Windows: communicate with the device and write data Windows: communicate with the device and write data
to a shared directory to a shared directory (no knowledge of ADS needed)(no knowledge of ADS needed) Other: communicate with the device and send an HTTP Other: communicate with the device and send an HTTP
POST to the AggregatorPOST to the Aggregator
Adding a new service to the Service Execution Adding a new service to the Service Execution stagestage Use Java to write a Ninja service Use Java to write a Ninja service (few requirements)(few requirements)
Using supported devices and existing servicesUsing supported devices and existing services Create an XML application template describing the Create an XML application template describing the
data required and the services to invoke on the datadata required and the services to invoke on the data Optional: create a user interfaceOptional: create a user interface
Current ADS applicationsCurrent ADS applications
Web Photo AlbumWeb Photo Album1.1. Transfer pictures from a digital camera via IRTransfer pictures from a digital camera via IR
2.2. Enter descriptions via a Web page that displays text Enter descriptions via a Web page that displays text form entries next to the pictures transferredform entries next to the pictures transferred
3.3. Click “add to photo album” button to publish the Click “add to photo album” button to publish the pictures and descriptions to Geocitiespictures and descriptions to Geocities
Guest BookGuest Book1.1. Take a picture of the guest and transfer it via IRTake a picture of the guest and transfer it via IR
2.2. Scan the guest’s business card or beam an Scan the guest’s business card or beam an electronic version using a Palm or WinCE deviceelectronic version using a Palm or WinCE device
3.3. Click “add to guest book” button to add the entry to Click “add to guest book” button to add the entry to the Guest Book the Guest Book (can also be published on Geocities)(can also be published on Geocities)
Ideas for new applicationsIdeas for new applications
SmartBoard ViewerSmartBoard Viewer: “beaming” data to an : “beaming” data to an iRoom wall monitor causes the correct iRoom wall monitor causes the correct Windows application to be started Windows application to be started automatically to display the data.automatically to display the data.
Notes DistributorNotes Distributor: beam meeting notes : beam meeting notes displayed on an iRoom SmartBoard to users’ displayed on an iRoom SmartBoard to users’ PDAs or laptopsPDAs or laptops
Ideas for infrastructure projectsIdeas for infrastructure projects
Device Receiving ServiceDevice Receiving Service: design a service module : design a service module that can be easily extended to output data onto that can be easily extended to output data onto various devices (analogous to the Access Point).various devices (analogous to the Access Point).
User Interface SupportUser Interface Support: design a framework on : design a framework on which applications’ user interfaces can be easily which applications’ user interfaces can be easily built or specified.built or specified.
Template DesignerTemplate Designer: make it easier to create and : make it easier to create and edit templates using a Web (or other GUI) interface.edit templates using a Web (or other GUI) interface.
Feedback LoopFeedback Loop: create a mechanism that enables : create a mechanism that enables ADS to report status information back to the user.ADS to report status information back to the user.
Homework 2Homework 2
Write a simple Ninja service that can be Write a simple Ninja service that can be invoked via Java RMI or HTTP interface.invoked via Java RMI or HTTP interface. Internally, ADS communicates using Java RMI.Internally, ADS communicates using Java RMI.
Externally, communicate with ADS components using Externally, communicate with ADS components using HTTP.HTTP.
Optional: create a more interesting Ninja Optional: create a more interesting Ninja serviceservice
HT
TP
F
ron
ten
d
MyService