see that we can classify appliances along a degree-of-sharing axis: mobile .... ferent areas of computer science research focus their effort. For example, the area ...
What is Appliance Computing? Andrew C. Huang, Benjamin C. Ling, Armando Fox Computer Science Department Stanford University {ach, bling, fox}@cs.stanford.edu
ABSTRACT In this paper, we present an overview of the Appliance Data Services project by defining the term appliance computing, presenting an approach for exploring the subspace of usercentric appliance computing, discussing the issues we have encountered in this problem space, and describing a framework that addresses the issues in this space.
1.
DEFINING THE SPACE
We begin the discussion of our work by systematically defining the space we term appliance computing.
1.1 What is an appliance? The term “digital appliance” evokes different images for different people. For some, network-enabled household appliances like the NetFridge come to mind. For others, an appliance is a single-purpose computing facility, such as a storage server, that can simply be plugged in and used with minimal configuration. Still others see appliances as being single-purpose handheld devices such as digital cameras and PDAs. The common attribute of these three views is that appliances are single-purpose devices. Thus, an appliance is generally thought of as being a single-purpose “something.” However, these three differing views reveal that what that “something” is varies depending on whom you talk to. Given the differing views on what appliances are, it is helpful to classify the different types of appliances. Having such a classification makes it is easier for people to describe what class of appliances they are dealing with when they use the term “appliance computing.” Examining the different types of appliances from an end-user’s perspective, we see that we can classify appliances along a degree-of-sharing axis: mobile
environmental
enterprise
servers, which are shared among many people. This rough classification allows one to identify an appliance as a mobile, environmental, or enterprise-class device that is used for a single purpose.
1.2 What does single-purpose mean? The term “single-purpose” is not as vague as “appliance.” Nonetheless, people have different ideas about what singlepurpose means. For example, is a PDA single-purpose? The basic applications on PDAs are analogous to those on a traditional planner: calendar, address book, and to-do list. However, when one starts adding other applications like a Web browser to the PDA, is it still considered singlepurpose? Some would argue that even the basic PDA, with three main applications, is not a single-purpose device. Debates like this indicate that there is no clear definition of “single-purpose,” and instead, one should consider devices to lie somewhere along an axis that contains general-purpose devices like PCs, special-purpose devices like digital cameras, and embedded/invisible devices like wearables. Notice that these three technology classifications differ in the degree to which everyday users are aware of the computation. For example, when using a general-purpose device like a PC, people know they are using a computer. However, using a well-designed special-purpose device like a digital photo frame should free users from having to deal with anything computer-like; in fact, as is the case with digital photo frames, the device may only have a single on/off switch. Finally, with embedded/invisible technologies, people may not even be aware of the computational devices involved in the tasks they perform because the devices are in the periphery or are embedded in clothing [6]. Based on this observation, we can place devices along a computation-visibility axis: general-purpose
more shared
At the left-most extreme lie mobile devices such as PDAs that have very little or no sharing. As we head to the right of the axis, we see devices that reside in the environment that are explicitly shared, usually among a few people. Devices in this middle region include the NetFridge, which is shared by a small number of people, and a Web kiosk, which is explicitly multiplexed among many people. Finally, at the right-most extreme lie enterprise-class devices like storage Presented at the Workshop on Application Models and Programming Tools for Ubiquitous Computing (UbiTools’01), in conjunction with Ubicomp 2001, September 2001, Atlanta, Georgia.
special-purpose
embedded
computation less visible
Appliances lie between the two extremes of general-purpose and embedded devices. These special-purpose devices are less computer-like than general-purpose PCs, but are explicitly used by users as devices. Thus, rather than trying to decide which devices fit into the category of singlepurpose devices, one can define appliances as being devices that lie between general-purpose and embedded devices on the computation-visibility axis. An important observation is that the degree to which a device is aided by or dependent on software infrastructure is correlated to the device’s computation-visibility. For example, a general-purpose PCs is more useful when connected to
the Internet, but PCs are also very useful in their own right. In contrast, an ActiveBadge is virtually useless without infrastructure software. Again, appliances fall between the two extremes; they do not totally depend on infrastructure support, but such support can greatly increase their usefulness. This observation can help determine the best approach to take when dealing with devices of different types.
as “appliance computing.” Although work in this subfield of appliance computing is done at the device and network levels, it is driven by the need for a good user experience, so most of the research focuses on the user experience and application levels. Ubiquitous computing Appliance computing
user experience
1.3 Drawing the boundaries By combining the degree-of-sharing and computationvisibility axes, one can draw a rough map of computing technologies and how they relate to each another: mobile (personal) gemeralpurpose specialpurpose
environmental personal shared
laptop
PC
PDA
NetFridge
TM
digital camera
embedded ActiveBadge or invisible wearable Mobile computing
[4]
TM
TiVO
enterprise (shared)
computer lab
ASP
Web kiosk
storage server
ATM machine
smart home Web cache sensor network Mark Weiser’s ubiquitous computing
Appliance computing
This table can also be used to identify where people in different areas of computer science research focus their effort. For example, the area of mobile computing generally focuses on technologies in the left-most column (mobile devices), as indicated in the table. Mark Weiser’s vision of ubiquitous computing gave rise to research that deals with the bottom row (invisible technologies) [5]. It should be noted, however, that the terms ubiquitous and pervasive computing have been used to describe work in all areas of the table. Finally, appliance computing focuses on the technologies in the middle row (special-purpose devices). One aspect not captured by the table is the level at which the research effort is focused: hardware, network, application, or user experience. For example, mobile computing is mostly focused on the hardware, network, and application levels. Ubiquitous computing, although it uses many of the advances in mobile computing hardware and network, focuses on the user experience and application levels. Appliance computing deals with issues at all levels making it a broad field with a large problem space. Therefore, it is helpful to separate the field based on these levels. A natural way to partition the field to look at the end-user of the technologies. The target market of mobile and environmental appliances is everyday consumers, whereas the target market for enterprise-class appliances is IT professionals who want off-the-shelf, minimal-configuration devices to reduce administration costs. Thus, appliance computing can be split into user-centric and enterprise-class subfields: mobile (personal) specialpurpose
environmental personal shared
User-centric
enterprise (shared)
application network
Mobile computing
hardware
Given this definition of appliance computing, we propose that the mission statement for appliance computing be: to improve the user experience of special-purpose, mobile and environmental devices to the point where everyday users feel as comfortable with digital appliances as they do with non-digital ones. In the following sections, we provide an overview of our research in the area of appliance computing and present the model we have developed for moving data using appliances.
2. RESEARCH OVERVIEW In the Appliance Data Services (ADS) research effort, our focus is on improving the user experience of moving data among appliances using the network infrastructure [1].
2.1 The problem space In ADS, we constrain the general appliance computing problem space by limiting our exploration to certain types of appliances used in a single application domain. Our work in ADS focuses on the application space of data movement. The goal is the simplify the task of moving data from appliances to endpoints like Web pages, wall-screen displays, PDAs, and other appliances that can display digital data. We have also constrained the type of data handled in ADS to data that is discrete and viewable. Thus, we currently do not focus on handling streamed data (e.g., streaming video from digital camcorders) and control information (e.g., controlling a VCR from a PDA). The appliances we target are mobile devices that produce digital data, such as digital cameras, PDAs, and handheld scanners. While environmental appliances that display digital data (e.g., wall-screen displays and digital photo frames) are also used in ADS, we simply use them as off-the-shelf tools. For example, in ADS, a wall-screen display is treated the same way as a image conversion service; data sent into the network infrastructure from a digital camera can be routed through any number of services and can end up at any one of the supported endpoints.
specialpurpose
mobile (personal)
environmental personal shared
Focus of ADS
Tools used by ADS
Enterpriseclass
In the rest of this paper, we will focus on the user-centric subfield; for brevity, we will refer to this subfield simply
Although we do not focus on the user experience of environmental appliances, it is likely that many of the ideas and lessons learned from dealing with the more-constrained, mobile appliances will carry over to environmental ones.
Our vision of an appliance computing world is closely tied to this problem space: An appliance computing world is one in which people move data effortlessly among devices and endpoints to accomplish a variety of tasks.
2.2 Why focus on this subspace? Appliance computing is less general than ubiquitous computing, and ADS focuses on an even more specific problem: data movement using mobile appliances. We focus on this subspace of appliance computing because mobile appliances are quickly penetrating the consumer market and addressing this small class of devices makes the problem more tractable. Mobile appliances like digital cameras are gaining popularity among everyday consumers. A recent study released by Infotrends Research Group predicts that by next year, digital cameras sales will exceed those of conventional cameras in North America [3]. Yet, it is well known that there are deficiencies in the user experience of digital devices. Dan Karp, CEO of Kodak , says [2]: The industry has made picture-taking more difficult and more complicated by cramming onto digital cameras more features, more buttons ... 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. Just as viewing Web content on mobile devices was a special case of the general mobile data retrieval problem and warranted special attention, we believe that data movement on digital devices is an important issue that will affect device manufacturers and a large consumer market. So why address the special-case of data movement using mobile appliances when a solution to the more general appliance computing problem would address the needs in this space as well? The general problem is under-constrained making it difficult to address and evaluate. The wellconstrained boundaries of ADS allow one to create a model that is specifically tailored to that space and make it easier to evaluate the work based on the constraints of the space.
2.3 Our approach To realize our vision of an appliance computing world, we take an infrastructure-centric design approach because it enables devices to be powerful, yet simple. As mentioned earlier, devices in the special-purpose area of the computationvisibility axis often benefit greatly from infrastructure support. One example in which infrastructure support is used to produce an exceedingly simple, yet powerful user experience is TiVO . TiVO makes recording TV shows exceedingly simple by downloading programming information from the infrastructure. Using the programming information, the device presents an interface at a higher semantic level, one that people are more comfortable with than a traditional VCR interface. Instead of saying, “record the show on channel 4, at 8 PM for 1 hour, on Thursday” users express their actual goal: “record ’Friends.”’ TiVO is easy to use because it enables people to perform TV tasks using TV metaphors – shows, movies, etc. ADS has the exact same goal: to use infrastructure support
to provide metaphors for moving data that fit the activity domain. For example, in the digital photography domain, these metaphors include photos, photo frames, and captions; they do not include file formats and computer-generated filenames. Rather than having to transfer files to a PC and FTP the files to a Web server, people should be able to express their actual goal: “put this picture on my Web page.” While vertical solutions such as TiVO exist that combine infrastructure with devices to create a good user experience, many digital devices remain hard-to-use and dependent on a PC. In ADS, the goal is to develop a general framework for appliance computing such that all devices can be made more simple and more powerful. We recognize that much of TiVO’s simplicity and power come from the co-design of the device and the supporting infrastructure. Therefore, although we are aiming for a general solution that supports many types of devices, we recognize that only through such a co-design will we able to create an optimal user experience. Thus, our approach is a direct relative to the well-explored field of application partitioning for mobile devices. The main difference in partitioning for mobile appliances is that design decisions are made for user experience reasons as well as technical reasons.
3. THE ISSUES Two questions that drive the design of the ADS infrastructure and the devices it supports are: What is a good user experience for moving data using appliances? And how do we design the infrastructure so that it is economically viable, and also open to third-party development?
3.1 Defining the user experience How should users specify where and how to move data? For example, let us assume that digital camera users want to combine captions from their PDAs with photos from their digital cameras, and have the results appear on a digital photo frame. ADS could provide a simple “photo frame” application that users would simply have to name to accomplish the task. However, questions remain: What application parameters will users want to specify on the device? What will they want to configure in the infrastructure so that device-operation is simpler? For example, one parameter in the “photo frame” application is the frame’s owner. Should there be a different application for each frame (e.g., “Fred’s photo frame” application) or should users enter the owner when they choose the “photo frame” application? This issue is related to the issue of application partitioning. Here, the question is whether parameterization should be done on the device or in the infrastructure. One provides more flexibility while the other makes devices simpler. Both are feasible, but it is a question of which produces the better user experience. A second issue is how status information should be conveyed to the user. Once the data is placed in the infrastructure, what guarantees should be given to the user? When can the user safely delete the data from the device? Does the user have to wait until the application is done executing, or should the infrastructure guarantee that once the data is received, it will not be lost? The main issue here is when and how status information should be presented to the user. Co-designing the infrastructure and devices enables us to explore models where the device is equipped with a simple paging device, and does not delete its data until it receives
an asynchronous signal from a service in the infrastructure indicating that the data has been stored properly and will not be lost. To address some of these user experience issues, we plan to release the ADS framework along with a digital camera prototyping application to graduate-level students taking a user experience design course at Georgia Tech this Fall. In the class projects, students will work to create good user experiences for loosely-connected devices like digital cameras.
3.2 Creating a viable framework Finally, a third issue involves the design of the infrastructure. We seek to develop an open system that encourages innovation in both devices and services independent of each another. One way to foster such innovation is to design a system where developments made by device manufacturers can leverage those made by service providers and vice versa. The Web, although much more general than what we are proposing, did this very well. Innovations were made in browsers and services independently of one another, and companies had economic incentive to create services on the Web because they knew that all existing and future browser users would be able to access those services. The ADS model is also economically feasible since a manufacturer can sell the device with a service agreement that gives its users access to its applications. Active partnerships with HP and Sony have helped us gain perspective on what it takes to bring a system like ADS to a production environment.
4.
THE ADS MODEL
Having discussed the issues involved in moving data using mobile appliances, we now discuss the usage and application development models designed to address these issues.
4.1 Basic data unit The ADS models center around the basic data unit, which is a triple composed of a user identifier, the command to be executed, and the data to be operated on: (userid, commandtag, data). This triple is used for application selection and access control. To select an application, the command-tag is used to name the high-level application the user wants to perform on the data (e.g., “Send picture to my Web site”). To fully specify the application, the userid is paired with the command-tag because different users may have different meanings for the same tag (e.g., “my Web page” is different for different users). The userid is also used for access control, like controlling access to each user’s public html directory or enabling a device manufacturer to allow only its customers to use the applications it develops.
Access Point consists of the necessary hardware (e.g., IR transceiver or cradle) and software to receive data from appliances. Therefore, an Access Point can be implemented using a commodity PC (e.g., a Web kiosk) outfitted with the appropriate hardware interfaces or as a special-purpose “network appliance.” When wireless devices are prevalent, devices themselves can easily be made into an Access Point eliminating the need to go through a kiosk-style Access Point. In another scenario, ADS is used to view and edit shared documents on a wall-screen display during an off-site meeting. Bob begins the meeting by transferring a meeting outline from his PDA to the display via an IR-dongle located under the display. Team members display documents in the same way from their PDAs, laptops, and handheld scanners. When the meeting ends, people transfer the documents they need back to their mobile devices. Moving data to and from mobile devices in the second scenario could have also been accomplished using a wireless network. However, using ADS eliminated the need to reconfigure devices for the network and allowed devices without networking capabilities (e.g., digital camera, PDA) to participate in the sharing of data.
4.3 Application development model An ADS application’s behavior is specified using an XML template that lists the services to be invoked on the data. These templates are bound to a userid/command-tag pair so the user can invoke the application simply by selecting the appropriate command-tag. The main advantage of using such a binding mechanism is that it enables application templates to be developed and configured independently of a user’s devices. Without such a mechanism, devices would have to ship with the applications they use. Plus, to use newly-developed applications, users would have to upgrade the software on the devices. With the command-tag binding mechanism, devices ship with only the software to transfer data off the device, and the user can use the device in any current or future ADS application. A second advantage of the application template mechanism is that it eases application creation. Device vendors and third-party developers can create applications by writing an XML document that strings together the desired services. Adding a new service requires some programming; however, minimal constraints are placed on service writers to make it easy to add new services to ADS. Finally, application templates give flexibility to ADS users. While basic users simply select from a set of templates provided by the vendor, power users can customize applications by modifying or creating their own templates.
4.2 Usage model
5. CONCLUSION
A concrete scenario is the best way to describe the ADS usage model: Jane is an ADS user who takes pictures with her digital camera and records picture captions on her PDA as she travels through Europe. Periodically, Jane goes to an Internet cafe where the terminals are set up as ADS Access Points. There, she logs in, selects her “photo album” application, and uploads her pictures and captions using the IR ports on her digital camera and PDA. In this scenario, Jane uses an ATM-like machine to post her data to ADS. This machine, called an ADS Access Point, is a gateway between disconnected devices and the network infrastructure, and can take many different forms. An
In this paper, we have presented our working definition of appliance computing: the area of research that deals with improving the user experience of mobile and environmental, special-purpose devices. From the general appliance computing problem, we have described the subspace that we have focused our research efforts on – the user experience of moving data from mobile appliances to various endpoints – and some of the issues involved. Finally, to address this subproblem, we have developed a usage model for moving data using appliances and an application development model that allows for easy development of applications that can be used by existing and future appliances in the market.
6.
REFERENCES
[1] Andrew C. Huang, Benjamin C. Ling, John Barton, and Armando Fox. Making Computers Disappear: Appliance Data Services. In Seventh ACM Conference on Mobile Computing and Networking (MobiCom 2001), Rome, Italy, July 2001. [2] Dan Karp. Keynote address. In Advanced Digital Photography Forum, Boston, MA, USA, April 2000. [3] Jack McCarthy. Picture This: Digital Camera Sales to Soar. IDG News Service, May 2000. [4] Roy Want, Andy Hopper, Veronica Falco, and Jonathan Gibbons. The Active Badge location system. ACM Transactions on Information Systems, 10(1):91–102, January 1992. [5] Mark Weiser. The computer for the twenty-first century. Scientific American, pages 94–100, September 1991. [6] Mark Weiser and John Seely Brown. The coming age of calm technology. PowerGrid Journal, Version 1.01, July 1996.