Thin clients reduce hardware costs, offer added security by stripping away storage options, and ease management tasks by storing all configurations on a centralized server. Citrix provides a good solution and is a dominant player in this arena with Citrix Presentation server, but that comes at a price -- about $1,000 for five concurrent connections and about $200 to $300 for each additional concurrent client connection. However, taking the thin client route does not have to be that expensive: openThinClient is an open source thin client server that is absolutely free.
GPLv2-licensed openThinClient, based on an Ubuntu server operating system, uses server components and a management system written in Java for midsize to large organizations. It requires only a PXE (Preboot Execution Environment) boot-capable diskless machine on which to run, so it can run on older computers too underpowered to run the latest desktop operating systems.
OpenThinClient uses its own Lightweight Directory Access Protocol (LDAP) repository or an external Active Directory (AD) directory service to store client configurations, and since its server and management components are Java-based, it runs on any platform that supports Java Standard Edition 6 version 1.6 or later. It uses standard protocols such as Dynamic Host Configuration Protocol (DHCP), Trivial File Transfer Protocol (TFTP), and Network File System (NFS). Before you install it, make sure your firewall allows passage of all necessary protocols.
To ensure it will work in your server environment, first check the recommended server and hardware requirements. The hardware must have at least 500MB of disk space, 1GB of RAM, and one network interface card.
To get started, download the openThinClient package and extract it to a folder, then start the server using
/start-server.sh. If you see a message such as "Jboss (MX micro kernel)" followed by the time it takes to start the server, the startup is successful.
After starting the server you can start to configure it using a browser. Open http://servername:8080 and you should see a link to start the openThinClient manager. Click the link to download and start the manager.
After the initial installation of the openThinClient server you must add a new thin client environment. Click the "Create New Environment" button to start a wizard that walks you through the process. If you use openThinClient's built-in LDAP server, there is not much to configure in the wizard. Indicate the hostname or IP address of the LDAP server and its administrator password. You can leave the settings on the next screen on their defaults, and finish the wizard. Alternatively, you can connect to other LDAP servers or AD, in which case you may have to change some settings, such as domain, schema, and organizational unit.
To add a thin client to the environment, make sure you have a running DHCP server, then boot the client station using PXE. The client will not successfully boot using PXE until an administrator registers it on the openThinClient manager. You will see the MAC address of the client you just attempted to boot on the management console. If you right-click the MAC address you can convert it to a thin client, and also fill in some hardware information about the client if you like. After you add the station, you should be able to boot it as a thin client. Once your thin client is added to the environment, it will appear on the management console. Click to expand it, and you will see options such as location and hardware that you can set to help you manage the device.
The thin client won't be much good unless you also add users and their associated applications. OpenThinClient comes with prepackaged applications for common tasks such as browsing and document viewing. The best process is to create the applications first, assign them to an applications group, and then create users or user groups and associate them with the applications. To check the available applications, go to the Packages tab. The preinstalled package includes a predefined Desktop application that enables you to manipulate or configure the desktop interface when inside the thin client OS. It also includes Remote Desktop Protocol (RDP), Xnest, Firefox, Command Line Utility (CLU), VLC Media Player, and a document viewer. These are the only predefined applications available.
To select another application, right click on the Applications tab, choose New Application, and select from the application package list. After you enter the icon name for the desktop and a description for the application, it will be listed under the Application tab, and you can assign the application to a user or user group. For example, I have an administrator tools group for accessing every application, and a user tools group for limited access to the browser, document viewer, and so forth. A Citrix Presentation Server Independent Computing Architecture (ICA) client is also available for installation if you need to connect to a Citrix server.
The available applications are sufficient for general usage but lacking for tasks such as word processing and office productivity. Fortunately, you can add other applications to the openThinClient package by following a few simple steps. I followed the example, which is to add Skype to the package, and I was able to load Skype into the thin client.
To create a user, enter a username and password. You can edit user properties such as the full name and other contact details of the user, the user's group, and applications. Under the user's Applications Group tab, choose the appropriate group. As with applications, you can create user groups. All properties under a group and applications assigned to the group will be applied to member users. You can also add specific applications to users in addition to those from the applications group.
Normally, if you plan and organize user creation and addition, you will avoid putting the same application on the application group and individual user's applications -- but even administrators make mistakes. Unfortunately, if you add an application that already exists in the user's applications group, two of the same application shortcuts will appear for that user. Perhaps the developers can fix this by removing from the Applications tab the applications that already exist in a user's Applications group. Another minor bug I sometimes encountered with the manager is that when I added or edited some properties, the window display was corrupted. For example, when I closed the dialog window, the window remained visible, and I had to press the close button on the title bar of the window to close it. This is an annoying glitch, especially if it occurs while you are entering properties for a user or an application. You may not know whether the data you entered was saved, so you have to close the window and start over again to be sure.
OpenThinClient supports external NFS storage of configuration and user data. If problems occur, the documentation, although somewhat incomplete, is helpful. For problems and package development, the active forum is even more helpful.
Once you've created the users, clients can boot and log in using openThinClient. Boot-up is fast. Users are presented with the familiar Ubuntu login screen, log in using one of the user accounts, and then see a desktop containing the applications the administrator assigned for that user.
I tried browsing the Web, downloaded some files, viewed some documents, and played videos using VLC Media Player, and everything went smoothly. I tried using RDP, but for some reason it would not start; this could be troublesome for anyone who needs to connect to a Windows environment. You can also use Xnest to access Unix systems remotely, just like RDP, especially for Unix and Linux machines.
Impressions and final thoughts
OpenThinClient is an attractive option for organizations that want to move to a thin client environment without paying a penny. Although the prepackaged applications are somewhat lacking, the ability to integrate other applications works well. Client responsiveness, potentially a problem with thin clients, was fine, but I didn't try to stress-test the server. Despite some glitches, openThinClient seems to be a flexible solution for large environments.