Yesterday (today if you're in the US), Sun released the latest version of its virtualisation solution, VirtualBox 3.1. Among speed improvements and other smaller features, the biggest news is that Virtualox 3.1 introduces something called teleportation: you can move running VMs between machines - servers or clients, different architectures, different host operating systems, it doesn't matter to VirtualBox. Coincidentally, this reminded me of an idea I once had about moving running applications between machines.

Step two, invent a way to describe arbitrary alterations to the base system that configure it as required for a particular application. Ideally this would be as independent as possible from the state of your baseline such that the image could be swapped for another one with e.g. security updates, a newer kernel, etc., without requiring changes to the alterations.

Step three, describe an application in a way which allows it to be installed atop of a system configured by step two.

Step three, compose the baseline image with the alterations and application at run/invocation time, start up a virtual machine with the resultant image and have it auto-launch the application in a kiosk-mode type of manner.

Step four, migrate the running virtual machine anywhere you like. The application is now also installed there.

Each application would thus be isolated from others and be completely independent of the underlying system. Upgrades would be a matter of swapping out the step 2 and 3 files. Since there would be a small number of baseline images, ideally one, actual disk space would not be horrific. Now, apps would take up far, far more RAM... but nothing is perfect.