28
Appliance Computing Appliance Computing CS 241 Internet Services CS 241 Internet Services © 2001 Benjamin Ling, Andrew Huang © 2001 Benjamin Ling, Andrew Huang {bling, ach}@cs.stanford.edu {bling, ach}@cs.stanford.edu

Appliance Computing CS 241 Internet Services © 2001 Benjamin Ling, Andrew Huang {bling, ach}@cs.stanford.edu

  • View
    216

  • Download
    2

Embed Size (px)

Citation preview

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

IntroductionIntroduction

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

VisionVision

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

ArchitectureArchitecture

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.

ADS ArchitectureADS Architecture

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

ADS ApplicationsADS Applications

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)

Project IdeasProject Ideas

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.

HomeworkHomework

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