We proposed the use of network-attached frame buffers to access active computing sessions from any location. These stateless, fixed-function consoles run no software and require no administration. All computing is performed by centralized servers that essentially transmit raw pixels to desktop consoles. Users are isolated from desktop failures and can transparently move between consoles.
We developed a methodology to evaluate interactive performance of GUI and multimedia applications, and we conducted a thorough quantitative analysis on the Sun Ray implementation of such a system.
We demonstrated that commodity ethernet provides an interactive experience that is indistinguishable from traditional desktops, even for highly interactive 3D video games. In fact, most applications run well over DSL or cable modems to the home. This work establishes the viability of centralized application/computation service providers not only for the workplace, but also for the home and may have a potentially large impact on our future computng environments.
To support computational service on a globally distributed set of machines, we restructured operating systems using a new abstraction called a compute capsule. Capsules provide a private, virtualized, machine-independent interface to system resources, and they encapsulate all the state of a user's active computing session.
Capsules can migrate between machines or reside off-line in stable storage. Hosts in the system merely serve as caches for active computations. Because of these properties, capsules offer an elegant solution to a variety of problems: scaling to unlimited logins, dynamic load balancing, system availability and on-line maintenance, application-independent checkpoint/resume, mobility, and remote administration. Capsules are isolated for privacy, customizable for flexibility, and schedulable for performance.
We have demonstrated that it is feasible to extend COTS operating systems with this abstraction, and our prototype can suspend and resume complete login sessions running standard batch, GUI, and multimedia applications. For example, we can suspend a window session (running a web browser, video, Quake, email, calendar, word processor, spreadsheet, shell windows, etc. all communicating in arbitrary ways), write its full state to disk, and then resurrect it on a different machine (including all open files, devices, and IPC channels). The applications resume as if nothing happened.