The goal of our work is to provide a common set of OS services to wide
area applications, including mechanisms for resource discovery, a
global namespace, remote process execution, resource management,
authentication, and security. On a single machine, application
developers can rely on the local operating system to provide these
abstractions. In the wide area, however, application developers are
forced to build these abstractions themselves or to do without. This
ad-hoc approach wastes programmer effort and system resources. To
address these problems, WebOS provides basic operating systems
services needed to build applications that are geographically
distributed, highly available, incrementally scalable, and dynamically
reconfiguring. Our initial implementation is split into the following
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.
Active Names: A
mechanism for logically moving service functionality such as load
balancing, resource discovery, and fault transparency from the server into the
Secure Remote Execution: We believe applications will be running on
remote nodes on behalf of arbitrary users. Assurances must be
provided ensuring that applications are not able to violate the
integrity of the remote server and that the servers cannot take
advantage of any user 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.