Open Virtual Desktop 3.0 as an alternative to VDI
Nested
Ulteo was founded by Mandriva inventor Gael Duval in 2007, and its first product was an online version of OpenOffice. People seemed to take a liking to virtualized applications, because just one year later, version 1.0 of Open Virtual Desktop (OVD) [1], which was already capable of providing Linux desktops and applications in the browser, was released. Late last year, Ulteo released OVD version 3.0.3, which is mature enough for admins to consider as an alternative to a full-fledged virtual desktop infrastructure (VDI) solution.
As a "free desktop virtualization solution," the GPL-licensed software lets you deliver Linux and Windows applications or complete desktops from a server over the local network and render them in a Java-enabled browser. From a technology standpoint, OVD is more of a graphical terminal server that manages desktop sessions and delivers them to a variety of endpoints on the network, whereas a genuine VDI solution is based on virtualization technology and allocates virtual machines with an enterprise desktop operating system, generated from a blueprint (golden image), to the clients as required.
Compared with that approach, OVD belongs more in the server-based computing camp – a technology that actually dates back to the IT Stone Age. Ulteo, however, combines the advantages of server-based computing with a web application server and a state-of-the-art web client (available in a HTML5 version in the near future). OVD thus allows any registered user to access hosted desktops – along with the data stored there – from anywhere, or to use specific native applications in the browser. Thus, Ulteo's target is not primarily that of consolidating hardware but of providing an elegant approach to collaboration, for example, by letting multiple users access the same desktop. Ulteo's approach avoids many of the disadvantages of conventional desktop sharing. For example, OVD does not overstress the users' upload bandwidth.
OVD 3.0
The source code of Open Virtual Desktop version 3.0, released last September, is GPL licensed and freely available [2], as are the Android and iOS clients. Of course, Ulteo does want to make money with the finished product. The Commercial Offering page [3] provides more information about the available subscriptions. If you want to try out OVD, you can register to receive a Live demo DVD and a virtual demo appliance for KVM or VirtualBox/VMware/XenCenter (OVF/OVA).
Furthermore, Ulteo offers testing repositories for RHEL (5.5), SLES (11 SP1), and Ubuntu (Lucid) [4], together with extensive documentation. A native client offered by Ulteo as an option to the current Java web client or the future HTML5 web client [5] takes care of integrating Linux and Windows applications delivered by OVD to the local user desktops. Windows support is a new feature in OVD 3.0.
As of OVD Version 3.0, mobile platforms such as Android and iOS can also be used as clients. However, just before the deadline for this article, I was informed [6] that the iOS client had been removed from the App Store because of license issues related to the FreeRDP project. However, the Android HTML5 client [7] is still available from Google Play. The HTML5 web client is still in beta status and can be downloaded for testing on request.
Another new feature in version 3.0 of OVD is the ability to publish Linux and Windows applications as Remote Desktop Services (RDS). Additionally, version 3.0 or newer can integrate local drives and printers, and the developers have revised the core architecture in version 3.0 with the primary goal of facilitating development.
Architecture
At the heart of the architecture (Figure 1) is the session manager, which is responsible for loading and managing user sessions and also hosts the web-based administration console. In a manual approach, the session manager first needs to be installed; for the time being, it only runs as a binary package on a Linux server because it's based on Apache. After installation, the virtual host configuration for Apache is located below /etc/ulteo/sessionmanager
, and the web interface for the session manager with all the components for the web client (including modules for authentication and session management) are dropped into the /usr/share/ulteo/sessionmanager
folder. The associated logfiles can be found in /var/log/ulteo/sessionmanager
.
You can install the session manager on a Windows machine, but you have to build the source code manually to do so. Because OVD is a solution for delivering desktops and desktop applications, one or more application servers are required; they are used to host the applications and provide a remote display solution. The application server or servers can run on Linux or Windows machines (OVD 3.0), depending on which application you want to host. By mixing Linux and Windows servers in an OVD server farm, you can make both desktop systems available to users in parallel.
The demo systems I referred to previously run the session manager and application server on the same Linux machine. The web client is used to start an Ulteo OVD session in the browser. The components of the web client can be found at /etc/ulteo/webclient
(configuration) and /usr/share/ulteo/webclient
(web application), including all Java applets and the Ajax Explorer.
Alternatively, a native client is available, and an OVD setup optionally provides for a central file server, which keeps the data consistent across all desktop sessions in collaborative work. The file server provides a network filesystem (Samba), which the application server can access in a desktop session. It can only be installed on a Linux system.
Ports
Ulteo OVD uses various ports – mainly HTTP(S) (80, 443), RDP (3389), and optionally VNC (5910) for transferring the screen content. To avoid problems for mobile users in firewalled environments, you can use different public IP addresses for each server. With the help of a gateway, all the OVD connections can be routed through an HTTPS tunnel, so users can launch an OVD session at any time, even on the move.
The Apache web server uses ports 1112 and 1113 (TCP) to communicate with the session manager. The Samba file server may also require you to keep TCP port 139 open for NetBIOS. Additionally, port 445 must be open for all configured application servers. XRDP is bound to port 3350 on the loopback interface but need not be publicly accessible. Finally, an active CUPS printing service means opening up TCP port 631, and the MySQL database must be accessible on port 3306 for the session manager and web client. In an OVD setup, port 1111 (LM Social Server) also must be open because the application server uses it for status updates.