I just discovered an interesting application project for virtual machines technology called Virtual Workspaces:
A virtual workspace is an abstraction of an execution environment that can be made dynamically available to authorized clients by using well-defined protocols. The abstraction captures resource quota assigned to such execution environment on deployment (such as CPU or memory share) as well as software configuration aspects of the environment (such as operating system installation or provided services). The Workspace Service allows a Grid client to dynamically deploy and manage workspaces.
Workspaces can be implemented and deployed in many ways. One potential implementation is to deploy boot images, another is to use virtual machines, and yet another, to simply dynamically provide access to already deployed workspaces by creating Unix accounts on the fly. Our current infrastructure focuses primarily on the deployment and management of virtual machines, but we also provide basic services for creating dynamic accounts.
The workspace service implementation based on VMs takes as input a VM image wrapped in meta-data providing critical deployment information and deploys the VM on one of the physical hosts administered by it. Our implementation is based on the Globus Toolkit 4 (GT4) — this allows us to leverage an interaction protocol for Grid Services as well as many tools available in the Globus Toolkit such as authentication and authorization mechanisms or persistence. Although we experimented with VMware in the past, our current implementation is based on the Xen hypervisor: an open source, efficient implementation.