The Collective

A Virtual Appliance Computing Infrastructure


To develop a new computing system architecture that is secure, reliable, easy to administer, and provides ubiquitous access to users' computing environments.

Research Overview

Computers today run billions of operations per second, dazzle us with video and sound, store libraries of data, and quickly exchange data with millions of other computers. Yet, computers and software are still difficult to deploy and maintain. Applications and user data are tied to individual computers, making it harder to deal with hardware failures. When users move around, they must remember to bring their computer with them. And, keeping software up-to-date on each computer is a challenge; too many computers suffer security compromises because people fail to apply available updates or correctly configure protections.

Virtual Appliances

We propose restructuring our software and services as collections of virtual appliances. Computer appliances like TiVos and NetApp filers come pre-configured with the software needed to perform their task. In the case of TiVo, the software is kept up-to-date by TiVo rather than requiring the user to install patches. A virtual appliance is the software and hardware of a real computer appliance, but hosted on a virtual machine monitor. A virtual appliance contains the software needed to perform its task along with a description of the hardware resources it need. To take advantage of the existing software base, our Collective prototype operates on x86 virtual machines, allowing us to support all applications that run on Windows and Linux at the same time.

In our model, each user would have multiple virtual appliances. They may have a desktop appliance for communication and editing documents, a firewall appliance, a video editing appliance, and a movie viewing appliance. In general, users do not install software into virtual appliances; this allows makers to do updates with more confidence. Instead, users acquire additional appliances to gain more features. Using the network, each appliance is kept up-to-date by its maker. The appliances can use the network to communicate with each other and provide a more seamless experience to the user.

Virtual appliances have the following properties:

System Architecture

In the Collective system architecture, virtual appliances, and their updated versions, are deposited in repositories. Individual computers run a universal appliance receiver that retrieves the latest copies of virtual machines from repositories upon request. In other words, the computers operate as a cache of appliances. The system uses a number of optimizations to minimize the cost of the storage and transfer of appliances. This approach allows a small number of professional staff to create fully tested, integrated environments that are made available quickly to all users anywhere on the network.

Major Research Findings


Monica Lam (PI), Mendel Rosenblum (co-PI), Dan Boneh (co-PI), Ramesh Chandra, Jim Chow, Tal Garfinkel, Jim Norris, Ben Pfaff, Joel Sandin, Constantine Sapuntzakis, Hovav Shacham, Nickolai Zeldovich



This research is supported in part by the National Science Foundation under Grant No. 0121481, NSF student fellowships, and Stanford Graduate Fellowships. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.