Operating system was originally developed to provide a set of common systems services, such as I/O, communication and persistent storage, to simplify application programming. With the advent of multiprogramming, this charter expanded to include abstracting shared resources so that they were as easy to use (and sometimes easier) as dedicated physical resources.
The introduction of local area networks in 80’s expanded this role even further. A goal of network operating systems such as Locus, Mach, Sprite and Amoeba was to make remote resources over the LAN as easy to use as local resources, in the process simplifying the development of distributed applications.
With analogy to these systems, argues that it is time to provide a common set of services for wide area applications, in effect to make wide area resources as easy to use as those on a LAN. The past few years has seen a dramatic increase in the number and variety of services that are available over the internet, beyond simple documents to a wide variety of on-line services, such as search engines, real-time news, weather forecasts, interactive games and chat room, flight reservations and ticketing, to name just a few.
Today, although the World Wide Web has made geographically distributed read-only data easy to use, geographically distributed computing resources are not. The result is that wide area applications that require access to remote CPU cycle, memory, or disk must be programmed in an ad-hoc and application-specific manner.
For example, many popular services, such as Digital’s Alta Vista or Netscape’s download page, are geographically replicated to improve bandwidth, reduce latency, and improve availability-no single connection onto the Internet can support tens of millions of users.
This situation will only get worse; it is currently predicted that the number of Internet users will increase by an order of magnitude to over 100 million in less than 5 years.
To address these problems, we have built WebOS, a framework for supporting applications that are geographically distributed, highly available, incrementally scalable, and dynamically reconfiguring. WebOS includes mechanisms for resource discovery, a global namespace, remote process execution, resource management, authentication and security.
The WebOS used to demonstrate the synergy of these services in simplifying the development of wide area distributed applications and in providing more efficient global resource utilization. The WebOS framework enables a new paradigm for Internet services. Instead of being fixed to a single location, services can dynamically push parts of their responsibilities out onto Internet computing resources, and even all the way to the client.