WebOS: Software Support for Scalable Internet Services
This paper describes the WebOS project. The goal of the project is to
build an operating system capable of resource arbitration,
authentication, and communication on a global basis. Using WebOS,
programs can bridge the gap between local area networks and
administrative boundaries to take advantage of global computing
resources. The description of the system is organized as follows:
- More Information
The explosive growth of the World Wide Web, along with the
evolution of the HTTP, HTML, and CGI standards, has enabled many
applications which would not have been feasible just a few years
ago. We believe that this evolution will eventually lead to
support for general-purpose distributed computing over the Web.
Such computation minimally requires transparent access to local
and remote files, private and public data, and local and remote
computation. Our research focuses on determining the
infrastructure necessary to build distributed Web applications and
building a prototype to validate our design. Currently, we have
split our implementation efforts into the following pieces:
WebFS: A global file system layer allowing unmodified applications to
read and write to the URL name space. Cache consistency is available
to applications requiring it through the AFS protocol.
Secure Remote Execution: We believe applications will be running on
remote nodes on behalf of unknown users. Assurances must be provided
ensuring that applications are not able to violate the integrity of
remote server and that the servers cannot take advantage of any access
rights provided to the programs.
Security and Authentication: Applications accessing remote
files must authenticate their identities before access to protected
files can be granted.
Transactions: Applications must have well-defined failure modes. For
example, an aborted remote agent should not leave a user's local file
system in an inconsistent state.
Economics: Clients and servers must negotiate the cost of
using remote machine resources including the CPU, memory, and
temporary or permanent file storage.
We have completed a preliminary version of WebFS interfacing at
the Solaris vnode layer. The current implementation has been tested
on Sparc Stations running Solaris 2.4 and 2.5. WebFS supports
operations such as invoking grep on a list of URLs from a normal UNIX
shell, running arbitrary executables which retrieve local URLs for
input, and compilation of remote source trees simply by providing URLs
to applications such as cc and make.
In addition to WebFS, we also have designs for a virtual machine
providing secure remote program execution. We will use public key
cryptography and capabilities to provide authentication for both the
file system and the virtual machine. To validate our prototype
design, we are building a number of distributed applications to take
advantage of the common framework, including: a general-purpose
compute server, a number of collaborative computing applications,
remote agents, and Rent-A-Server. Please refer to our paper for more details on the system and the
Besides simplifying the implementation of existing distributed
applications, WebOS will also enable a whole new class of
applications. Transparent access to local and remote resources in the
form processor cycles, disk storage, network bandwidth, and memory
will engender applications that are simply not viable given current
infrastructure. Some possible directions that this technology may
take are discussed below:
- Network Computer: Thin clients possessing very little local
computing power, memory, and potentially no disk storage are likely to
become popular because to large companies to reduce system
administration costs. Such machines, such as the recently announced
JavaStation, can use remote server resources for computation through
WebOS. When wireless connectivity becomes more common, PDAs can
similarly utilize WebOS for global access.
- Internet Broadcast: Using multicast technology, WebOS can
efficiently transmit data to multiple sources on the Internet. As a
motivating example, election coverage in the United States resulted in
massive Internet congestion and overloading of HTTP servers. With
WebOS, election results can be continuously multicast to multiple
recipients allowing the Internet to more gracefully scale with offered
load. Furthermore, using the Rent-A-Server and the underlying cache
coherence protocols, Internet servers can be replicated or relocated
to strategic locations in the Internet to assure the best quality of
service to end users.
- Massively Parallel Supercomputer: With transparent access
to global computing resources, scientists have access to parallel
computing resources at a scale larger than what is available today.
Given the ability to ensure remote system integrity and a model for
purchasing remote resources, it would be possible to run jobs on
millions of heterogeneous nodes simultaneously. The advent of Java
allows us to address issues of portability. Availability of java
compilers should provide reasonable performance for such
applications. The availability of computing resources should allow
scientists to solve problems and model systems which would not have
been previously possible.
The following describes the WebOS environment in more
Send email to email@example.com.