Being able to run VirtualBox on servers and accessing both the product and the virtual machines remotely, has been on the top of the wishlist of many users. VirtualBox tried to accommodate these users by providing a rich API and command line interface, letting others pick up these interfaces and build web interfaces around. In the early days, there was only C/C++ to choose from (VirtualBox is low level system software and this is where C/C++ are still the way to go). This didn't get the Web 2.0 generation excited. Next, the VirtualBox team added support for Java along with SOAP based Web Services allowing to access the VirtualBox API from a remote machine. This was good for the enterprise where Java is the de facto standard but again, the Web 2.0 generation is far ahead of the old style compiled languages. Finally, the VirtualBox team started a significant effort to add Python to its list of supported languages and they really tried to do it well. The Python bindings are available both locally (i.e. the machine VirtualBox is running on) and remotely using the SOAP bindings. The API looks exactly the same in both cases. The VirtualBox SDK also contains an interactive Python shell which illustrates the concepts.
A lot of people started to work on VirtualBox web interfaces using different techniques. Most actually resorted to calling the command line interface VBoxManage and parsing its output. That's simple to get started but it's not very elegant. Now with all the Python stuff in place, we thought it's time to start a new effort and get all those people on board.
The mission of the VirtualBox Web Console project is very simple: implement the VirtualBox user interface using modern Web 2.0 techniques like AJAX. It will start with very little functionality but our intention is to grow this quickly into a very powerful and easy to use web interface for either a single VirtualBox host or a group of hosts.
The code has been released under the very liberal MIT license. The initial contributor is Sun Microsystems (the VirtualBox team actually) but we expect our role to become smaller over time as more people are joining this project. Initially, the VirtualBox team wanted to contribute the following:
- A solid architecture that makes optimal use of what VirtualBox provides
- A selection of suitable technologies like JQuery, CherryPy, Prototype, etc.
- The Sun RDP Web Control which is a fully featured RDP viewer written in Adobe Flash. We will post more about this component later but this is probably the most innovative part of the VirtualBox Web Console, allowing it to go far beyond what the competition can offer. Note that the Sun RDP Web Control is available under the PUEL, the same license as VirtualBox so its source code is not included with the VirtualBox Web Console.
As of today, the VirtualBox Web Console is still in its very early stages and the benefits to end users are limited. However, it will grow very quickly and with a bit of Web 2.0 knowledge, it should be fairly easy to get up to speed and start contributing!