A thin client is a lightweight computer that is purpose built for remoting into a server (typically desktop virtualization resources). It depends heavily on another computer (its server) to fulfill its computational roles. This is different from the traditional desktop PC (fat client), which is a computer designed to take on these roles by itself. The specific roles assumed by the server may vary, from hosting a shared set of virtualized applications, a shared desktop stack or virtual desktop, to data processing and file storage on the client or users behalf.
Thin clients occur as components of a broader computing infrastructure, where many clients share their computations with a server or server farm. The server-side infrastructure makes use of cloud computing software such as application virtualization, hosted shared desktop (HSD) or desktop virtualization (VDI). This combination forms what is known today as a cloud based system where desktop resources are centralized into one or more data centers. The benefits of centralization are hardware resource optimization, reduced software maintenance, and improved security.
- Example of hardware resource optimization: Cabling, bussing and I/O can be minimized while idle memory and processing power can be applied to users sessions that most need it.
- Example of reduced software maintenance: Software patching, security updates, application/OS updates, and OS migrations can be applied, tested and activated for all users in one instance to accelerate roll-out and improve administrative efficiency.
- Example of improved security: Software assets are centralized and easily fire-walled, monitored and protected. Sensitive data is uncompromised in cases of desktop loss or theft.
Thin client hardware generally consists of a computer terminal which provides I/O for a keyboard, mouse, monitor, jacks for sound peripherals, and open ports for USB devices, e.g. printer, flash drive, web cam, card reader, smartphone, etc. Some thin clients include legacy serial and/or parallel ports to support older devices such as receipt printers, scales, time clocks, etc. Thin client software typically consists of a GUI (graphical user interface), cloud access agents (e.g. RDP, ICA, PCoIP), a local web browser, terminal emulations (in some cases), and a basic set of local utilities.
- 1 Characteristics of thin clients
- 2 History
- 3 Thin client variants
- 4 List of protocols used by thin clients
- 5 See also
- 6 References
Characteristics of thin clients
In using cloud based architecture, the server takes on the processing load of several client sessions, acting as a host for each endpoint device. The client software is narrowly purposed and lightweight; therefore, only the host server or server farm needs to be secured, rather than securing software installed on every endpoint device (although thin clients may still require basic security and strong authentication to prevent unauthorized access). One of the trade-offs of using cloud architecture and thin clients is that the host becomes a single point of failure. If the hosting server crashes, for example, all users lose their session unless a fail-over process is predefined. This risk can be mitigated by building redundancies into the host environment. Redundancy provides reliable host availability but adds cost to the cloud computing model. Redundancy can be provided both in the form of additional connectivity from server to the network as well as in the servers themselves, using features like RAID, distributed servers (multiple networked servers appearing as one server to the users), clustered filesystems (which allow files to be accessed from multiple servers), VMware High Availability and Fault Tolerance or Citrix XenApp's load balancing.
The simplicity of thin client hardware and software results in a very low TCO (total cost of ownership), but some of these initial savings can be offset by the need for a more robust cloud infrastructure required on the server side. NOTE: infrastructure costs can be spread out by choosing a subscription based cloud model known as Desktop as a Service or DaaS. DaaS allows IT organizations to outsource the cloud infrastructure to a third party.
Thin client computing is known to simplify the desktop endpoints by reducing the client-side software footprint. With a lightweight, read-only OS (operating system), client-side setup and administration is greatly reduced. Cloud access is the primary role of a thin client which eliminates the need for a large suite of local user applications, data storage and utilities. This architecture shifts the most of software execution burden from the endpoint to the data center. User assets are centralized for greater visibility and control. Data recovery and desktop repurposing tasks are also centralized for faster service and greater scalability.
While the server must be robust enough to handle several client sessions at once, thin client hardware requirements are minimal to that of a traditional PC desktop. Most thin clients have low energy processors, flash storage, memory, and no moving parts. This reduces the cost and power consumption, making them affordable to own and easy to replace or deploy. Since thin clients consist of fewer hardware components than a traditional desktop PC, they can operate in more hostile environments. And because they typically don't store critical data locally, risk of theft is minimized because there is little or no user data to be compromised.
Modern thin clients have come a long way to meet the demands of today's graphical computing needs. New generations of low energy chipset and CPU (Central Processing Unit) combinations improve processing power and graphical capabilities. To minimize latency of high resolution video sent across the network, some host software stacks leverage multimedia redirection (MMR) techniques to offload video rendering to the desktop device. Video codecs are often embedded on the thin client to support these various multimedia formats. Other host software stacks makes use of UDP (User Datagram Protocol) in order to accelerate fast changing pixel updates required by modern video content. Thin clients typically support local software agents capable of accepting and decoding UDP.
Some of the more graphically intense use cases, however, remain a challenge for thin clients. These use cases might include the applications like photo editors, 3D drawing programs, and animation tools. This can be addressed at the host server using dedicated GPU cards, allocation of vGPUs (virtual GPU), workstation cards, and hardware acceleration cards. These solutions allow IT administrators to provide power-user performance, where needed, to a relatively generic endpoint device such as a thin client.
To achieve such simplicity, thin clients sometimes lag behind desktop PCs in terms of extensibility. For example, if a local software utility or set of device drivers are needed in order to support a locally attached peripheral device (e.g. printer, scanner, biometric security device), the thin client operating system may lack the resources needed to fully integrate the required dependencies (although dependencies can sometimes be added if they can be identified). Modern thin clients address this limitation via port mapping or USB redirection software. However, these methods cannot address all use case scenarios. Therefore it is good practice to perform validation tests of locally attached peripherals in advanced to insure compatibility. Further, in large distributed desktop environments, printers are often networked, negating the need for device drivers on every desktop.
While running local productivity applications goes beyond the normal scope of a thin client, it is sometimes needed in rare use cases. License restrictions that apply to thin clients can sometimes prevent them from supporting these applications. Local storage constraints may also limit the space required to install large applications or application suites.
It is also important to acknowledge that network bandwidth and performance is more critical to any type of cloud-based computing model. IT organizations must ensure that their network can accommodate the number of users that they need to serve. If demand for bandwidth exceeds network limits, it could result in a major loss of end user productivity.
A similar risk exists inside the data center. Servers must be sized correctly in order to deliver adequate performance to end users. In a cloud-based model, the servers can also represent a single point of failure risk. If a server fails, end users lose access to all of the resources supported by that server. This risk can be mitigated by building redundancies, fail-over processes, backups, and load balancing utilities into the system.
|This section does not cite any sources. (March 2015)|
Thin clients have their roots in multi-user systems, traditionally mainframes accessed by some sort of terminal computer. As computer graphics matured, these terminals transitioned from providing a command-line interface to a full graphical user interface, as is common on modern advanced thin clients. The prototypical multiuser environment along these lines, Unix, began to support fully graphical X terminals, i.e., devices running display server software, from about 1984. X terminals remained relatively popular even after the arrival of other thin clients in the mid-late 1990s. Modern Unix derivatives like BSD and GNU/Linux continue the tradition of the multi-user, remote display/input session. Typically, X software is not made available on non-X-based thin clients, although no technical reason for this exclusion would prevent it.
Windows NT became capable of multi-user operations primarily through the efforts of Citrix Systems, which repackaged NT 3.5.1 as the multi-user operating system WinFrame in 1995. Microsoft licensed this technology back from Citrix and implemented it into Windows NT 4.0 Terminal Server Edition, under a project codenamed ‘Hydra’. Windows NT then became the basis of Windows 2000 and Windows XP. As of 2011[update] Microsoft Windows systems support graphical terminals via the Remote Desktop Services component.
The term thin client was coined in 1993 by Tim Negris, VP of Server Marketing at Oracle Corp., while working with company founder Larry Ellison on the launch of Oracle 7. At the time, Oracle wished to differentiate their server oriented software from Microsoft’s desktop oriented products. Ellison subsequently popularized Negris’ buzzword with frequent use in his speeches and interviews about Oracle products.
The term stuck for several reasons. The earlier term ‘graphical terminal’ had been chosen to distinguish such terminals from text-based terminals, and thus put the emphasis heavily on graphics - which became obsolete as a distinguishing characteristic in the 1990s as text-only physical terminals themselves became obsolete, and text-only computer systems (a few of which existed in the 1980s) were no longer manufactured. The term ‘thin client’ also conveys better what was then viewed as the fundamental difference: thin clients can be designed with less expensive hardware, because they have reduced computational workloads.
By the 2010s, however, thin clients were not the only desktop devices for general purpose computing that were ‘thin’ - in the sense of having a small form factor and being relatively inexpensive. The Nettop form factor for desktop PCs was introduced, and nettops could run full feature Windows or Linux; tablets and tablet-laptop hybrids had also entered the market. However, while there was now little size difference, thin clients retained some key advantages over these competitors, such as not needing a local drive. However, ‘thin client’ can be a misnomer for slim form factor computers using flash memory such as compactflash, SD card, or permanent flash memory as a hard disk substitute.
Thin client variants
Repurposing a PC as a thin client
The following options allow a PC to be used as a thin client – in some cases, even if it has no working hard drive:
- Software Thin Client
- Linux Terminal Server Project
- WTware 
- Puppy Linux
- Remote desktop software
- V2 Cloud Client 
Ultra-thin client, zero client, or clientless
Traditionally, a thin client ran a full operating system for the purposes of connecting to other computers. Some thin clients, such as the Sun Ray, use a simpler protocol for communicating display updates, and these are sometimes called ultra-thin clients or zero clients,. Their tiny operating systems merely initialize the network, begin the networking protocol, handle display of the server's output, and transmit user input events. The full desktop is run remotely and the displayed graphics and text are compressed with either a remote display protocol such as PCoIP, or even just a video codec such as VP9 or Daala, and sent to the zero client. The client silicon is now much simpler and lower cost as all it requires is a video decoder and basic I/O.
A Run Time Environment (RTE) client contains task specific applications (e.g. Firefox for Internet browsing) and only the minimal (often customized) underlying and supporting code (BIOS, firmware, kernel, libraries, plug-ins, etc.) to run only those applications. It contains all and only the code needed to accomplish its specific task, thus it is more than a zero client but less than a typical thin client computer. The RTE client does not have a general purpose operating system – it usually lacks shells (terminal windows), is not designed to be patched (updated online), has minimal connectivity to external resources, and is often found in read-only media (e.g. tamper resistant ROM chips, CD-ROM, etc.) Attempts to inject or run any other applications/processes/threads results in crashing the kernel (system). Due to the need to physically update the device, RTE clients are mostly found in stable environments demanding high security.
Web clients only provide a web browser, and rely on web applications to provide general-purpose computing functionality. However, note that web applications may use web storage to store some data locally, e.g. for "offline mode", and they can perform significant processing tasks as well. Rich Internet Applications for instance may cross the boundary, and HTML5 Web Applications can leverage browsers as run-time environments through the use of a cache manifest or so called "packaged apps" (in Firefox OS and Chrome).
Chromebooks and Chromeboxes also have the capability of remote desktop using the free Chrome Remote Desktop browser extension, which means, other than being a web thin client, they can also be used as an ultra-thin client (see above) to access PC or Mac applications that do not run on the Chromebook directly. Indeed, they can be used as a web thin client and an ultra-thin-client simultaneously, with the user switching between web browser and PC or Mac application windows with a click.
Chromebooks are also able to store user documents locally – though, with the exception of media files (which have a dedicated player application to play them), all such files can only be opened and processed with web applications, since traditional desktop applications cannot be installed in Chrome OS.
Web thin clients are similar to RTE clients, but unlike first-generation RTE clients the operating system can typically be updated. Chrome OS, for example, automatically updates itself if its update servers (hosted by Google) are not blocked by a firewall – while still being tamper-resistant due to its use of Trusted Computing technologies.
Applications as thin clients
The notion of a thin client extends indirectly to any client–server architecture, in which case, a thin client application is simply one which relies on its server to process most or all of its business logic. This idiom is relatively common for computer security reasons. A client obviously cannot be trusted with the logic that determines how trustworthy they are, because an adversary can circumvent that logic.
However, in web development in particular, many client applications are becoming fatter. This is due to the adoption of heavily client-side technologies like Flash and Ajax, which are themselves strongly driven by the highly interactive nature of Web 2.0 applications.
List of protocols used by thin clients
- Appliance Link Protocol
- Citrix ICA or Independent Computing Architecture
- Citrix HDX
- HP RGS or Remote Graphics Software
- LTSP or Linux Terminal Server Project
- PCoIP or PC over IP
- various video codecs
- Microsoft RDP or Remote Desktop Protocol
- Microsoft RemoteFX or RFX
- Secure Shell or SSH, an encrypted replacement for telnet.
- Virtual Network Computing
- X11, central to traditional Unix graphical windowing systems
- XML, HTML, or JSON over HTTP (Ajax)
- NoMachine NX Software (NX)
- SPICE (protocol)
- Blade PC
- Centralized computing
- Desktop Virtualization
- Dumb terminal
- Fat client
- Hybrid client
- Multiseat configuration
- Smart client
- Terminal services
- Univention Corporate Client (UCC), an Open Source solution for the central management of PCs, notebooks and thin clients
- Windows PE
- X11, central to Unix windowing
|Wikimedia Commons has media related to Thin clients.|