Virtual Desktop Infrastructure: VDI Virtualization Development
Business Challenge
Remote Access Portal Java allows users to connect to computers within remote LAN via RDP (Remote Desktop Protocol) and run applications according to user permissions level from any operating system which has Java 2 SE virtual machine installed on it. With this application users can connect to remote personal work environment from any place in the world using any laptop. The only requirement is Internet connection and JRE installed on the client OS.
Comprehensive security options and connections being established via dedicated gateway helps controlling access to company VDI in LAN from Internet preventing unauthorized access to computers within LAN and applications installed on them.
Solution
The client already had working remote access application for Windows, but needed to have a cross-platform implementation the application which can be used from any OS which has JRE for Java 2 SE implemented for it.
The main idea of the project was to implement the application in Java using Swing GUI library and use Java version of rdesktop open source library to support connections to Microsoft Terminal Services via RDP from Mac OS.
A great deal of attention was paid to client-server network communication security. All communication was organized over secure SSL protocol and authentication broker services were used to redirect incoming connections to remote VDI LAN. All user sensitive data was stored in strongly encrypted form.
The application utilizes SSO (Single Sign-On) mechanism for authentication. It passes authentication procedure only once to gain further access to remote servers and services according to account security policy.
The application was tested on the majority of modern operating systems, which completely support Java 2 SE, including major versions of Windows, Linux and Mac OS.
Architecture
The entire solution consists of the following modules:
- Client module is a desktop application with Swing-based GUI providing user means to work with remote applications and computers.
- Native Java SSL library providing SSL connectivity to remote computers.
- Java version of Rdesktop library supporting RDP connections to MS Terminal Services.
- Proxy server used for user authentication and redirection to LAN.
- Web based server application storing user account information and security settings associated with accounts such as lists of available remote computers and applications.
Tools and Technologies
- Windows / Linux / Mac OS
- JRE 1.5 or higher;
- Java 2 SE;
- NetBeans;
- Swing;
- rdesktop.
Benefits
The implemented solution serves as a cross-platform client, which can be used to access MS Windows based VDIs and utilize virtualization capabilities from PCs that run various popular operating systems such as Windows, Linux and MacOS X.