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.
Sun released VirtualBox 3.1 on November 30, and claims that it brings improved execution speed, improved network performance, and a 2D graphics acceleration feature for Windows virtual machines. Its biggest feature, however, is teleportation.
With this feature, you can move running virtual machines between different hosts. You can move them across different architectures, different host operating systems, and between servers and clients. this feature makes it possible to service your hardware without shutting down your VMs, as you can simply move them to another piece of hardware for the time being.
“The ability to teleport running virtual machines from one computer to another allows system administrators to perform essential maintenance with zero downtime of their IT systems,” said Jim McHugh, Sun’s vice president of data centre software marketing, “As a cross-platform hypervisor, VirtualBox allows customers to easily evaluate and deploy virtualized systems, using their existing x86 hardware, operating systems and skill sets.”
I’d like to make a big leap, as this new feature made me think of something that I sometimes think about when I’m mulling over the future of computing – more specifically, my perfect world of computing. One of the features I’d like to have is the ability to move running applications from one computer to the other – transparently, without having to shut them down or whatever. Let me illustrate with two scenarios.
You’re working on your home desktop. You’re trying to finish a document you’re working on, but you’re running a little late. How cool would it be if you could simply “move” the running application to your laptop, without having to worry about transferring the files you’re working on?
Or, the other way around. You’re on the train, working on a long email on your smartphone. You come home, and of course would prefer to finish the email on your desktop, with proper screen and keyboard. You just tap a button on your phone, and the mail application on your phone moves over to your desktop, where you can continue writing the email right away.
I’ve also been thinking about the user interface portion of this functionality, and that’s actually harder than you think. The straightforward option would be to have machines in range listed as icons, and you can just drag and drop a running application to the machine on which you want to continue using that application.
You could also think of more exotic ways of transferring applications – I thought of holding your phone next to your desktop’s or laptop’s display, and simply tap the display with your phone – the iPhone has an application called “Bump” which more or less works this way to transfer contacts, but it only works between iPhones.
It’s a big leap from VirtualBox to this hypothetical feature, but there you have it. I’m always surprised by the ingenuity of programmers, so I’m pretty sure other people have thought of this stuff way before I have. Do any of you know of efforts that seek to implement functionality like this? I have come to expect that the open source community especially is usually three steps ahead of everyone else in exotic functionality like this.