Improving web browser architectures to close the functionality gap between web and desktop applications

Modern Web browsers and standards have improved to such a degree that many Web applications now rival or even displace their desktop counterparts. Today, most of our desktop applications such as email, office productivity, and multimedia applications have been replaced by Web alternatives. To support these rich applications, browsers have had to evolve from simple document rendering engines to complex platforms for supporting Web programs. In doing so, they have adopted many traditional operating system-like services and functions, including process management, security sandboxing, local storage management, and inter-process communication channels. However, despite these recent advances, Web applications continue to lack some of the functionality found in desktop applications. This dissertation examines the challenges of designing Web browsers to overcome the current functional and performance limitations of Web applications. Specifically, we identify three major shortcomings of Web applications: (1) their poor access to local devices, (2) their limited support for running in the background as a service, and (3) their inability to run legacy software. To address these shortcomings, we present the design, implementation, and evaluation of three browser-based systems, Maverick, Viper, and Runcast, each focused on solving one particular limitation. Maverick and Viper are client-side systems. Maverick is an experimental browser that gives Web applications safe and flexible access to local USB devices, and Viper is a browser that supports long-running, background Web programs called browser services. Runcast is a server-side system designed to allow Web browsers to run legacy software. It leverages virtualization and thin-client technologies to support running unmodified desktop applications through the browser. Our experience with building and evaluating these systems show that they are safe and practical from a performance, security, and usability standpoint. Taken together, these systems demonstrate that through a combination of clever server-side and client-side technologies, it is possible to lessen the functionality and performance gap between desktop applications and Web applications without requiring major changes to the architecture of Web browsers and the Web.