Few IT duties are as universal as the care and feeding of the corporate desktop. While other aspects of IT get easier thanks to new technologies like server virtualisation, there's still no magic pill to alleviate the day-to-day drudgery of maintaining and securing hundreds, thousands, or tens of thousands of desktop systems.
The drawbacks of desktops go beyond the burdens of management and maintenance. They involve employee mobility, client hardware refreshes, data security and under certain conditions, even power consumption and cooling.
One answer to desktop sprawl is thin client computing, which consolidates user applications and environments at the server, vastly reducing the overhead associated with desktop software and hardware. Users access the host server over the network using a variety of clients, such as low-cost terminals or aging systems that would otherwise be obsolete. Instead of running around babysitting desktops, administrators take care of business in the data centre, saving time and resources.
Unfortunately, there's no straight-and-narrow path for migrating from fat desktop clients to thin clients. But there are more options than ever before.
Server-based, thin client computing today takes several forms. Traditionally, thin client solutions revolved around groups of terminal servers running dozens of individual user sessions. The back-end frameworks were comprised of Microsoft Terminal Services (renamed Remote Desktop Services with the arrival of Windows Server 2008) and occasionally a Citrix infrastructure to improve performance and manageability. In recent years, VDI (virtual desktop infrastructure) has emerged to offer a different approach, using virtualisation to split out each user session into a VM (virtual machine) unto itself. Like traditional thin client solutions, VDI uses the Terminal Services/Citrix connection broker model to deliver the virtual desktops to users.
Traditional thin client computing
Terminal Services (aka Remote Desktop Services) is the low-hanging fruit on the thin client tree. It's extremely simple to buy a few cheap thin client devices, install Microsoft Windows Server 2003 or 2008 on a server, configure the Terminal Services or Remote Desktop Services role, and have the clients connect to that server for their desktop sessions. For certain use cases, such as data entry, forms processing, call centre duty and hospital rounds, Terminal Services may be all that's necessary.
Generally speaking, this solution is best suited for single application or light applications use, as the complexity and overhead associated with more applications and more users can quickly overcome the lower relative cost. There can also be issues with user acceptance and overall interaction with traditional thin client computing. Users accustomed to music and movies on the PC may be dismayed to find that audio and video playback is spotty at best, or plain absent. The use of USB peripherals can be extremely problematic, and printing across slower WAN links can result in sluggish user sessions.
The benefits of Terminal Services are low price and ease of installation and maintenance. The downsides are a lack of scalability, potentially problematic performance over lower-bandwidth and higher-latency connections and overall manageability. In short, it'll do for a small, dedicated rollout, but once it escapes those confines, it's generally time to move up the chain.
Citrix is second only to Microsoft in the Terminal Services game. The Citrix XenApp offering (formerly known as Presentation Server, and before that, MetaFrame) provides a significant management and performance layer on Terminal Services and enables far more fluid management of larger thin client implementations.
Those benefits come at a significant price, naturally, but in larger shops, the extended management is a requirement, not a luxury.
One of the more significant aspects of XenApp is that it uses the ICA protocol, as opposed to the RDP protocol that Microsoft Terminal Services uses. ICA is a thinner, cleaner, and more malleable protocol that functions better on lower-bandwidth, higher-latency connections and offers significant internal benefits as well, such as the ability to prioritise specific traffic within a connection, even to the application level. For example, in a particular user session, it's possible to maintain the snappy response of Microsoft Excel while reducing the performance of a background application that is not being used in real time. Features like that can make an otherwise sluggish and problematic user session feel much more like a local desktop system.
XenApp has other benefits, such as the management layers and connection options that provide load balancing, high- and low-level user management (including session monitoring), and internal and external connection security. The latter is quite important, especially in some such vertical markets as health care, where HIPAA compliance is required. It also enables users to securely attach to their corporate desktop sessions from wherever they happen to be, using standard Internet browsers. In this respect, it can function much like a traditional VPN without requiring standard clients or specialised VPN concentrators.
XenApp can also handle heavier user workloads and application counts than plain Microsoft Terminal Services. That said, many applications will not function well in a XenApp virtualised application environment. Some will not work altogether, some may function, but their use in a Terminal Services deployment is not supported by the software vendor. It is extremely important to validate all planned applications prior to building any sort of thin client environment, or you may get caught short later.
Several other attributes of XenApp make the overall user experience far closer to a traditional desktop. The enhanced audio and video playback technology, alongside the remote printing services, overcome long-standing objections to thin-client computing, as do management and support of USB peripherals beyond just flash drives. The latter is especially important in many point-of-sale environments, or anywhere where USB peripherals beyond a keyboard and mouse are a requirement.
Eggs and baskets
With any thin client scheme, you will always be subject to the underlying reliability of operating system and application interaction. If you have a farm of terminal servers that handles dozens of active sessions at any one time, the abrupt failure of one of those servers results in the abrupt loss of each of the sessions running on that server. Users will be able to reconnect to another server assuming there's enough capacity, but any unsaved work from the original session will be lost.
Couple this fact with the relative fragility of some applications, and once again it becomes apparent that prior testing and vetting of every application is an absolute must.
In practice, a well planned and implemented Citrix XenApp infrastructure is reliable, easily managed, and responsive, but in environments without proper planning, it can be extremely challenging to maintain.