A
thin client is a
computerA computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
or a
computer programA computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...
which depends heavily on some other computer (its
server) to fulfill its traditional computational roles. This stands in contrast to the traditional
fat clientA fat client is a computer in client–server architecture or networks that typically provides rich functionality independent of the central server...
, a computer designed to take on these roles by itself. The exact roles assumed by the server may vary, from providing data persistence (for example, for diskless nodes) to actual
information processingInformation processing is the change of information in any manner detectable by an observer. As such, it is a process which describes everything which happens in the universe, from the falling of a rock to the printing of a text file from a digital computer system...
on the client's behalf.
Thin clients occur as components of a broader computer infrastructure, where many clients share their computations with the same server. As such, thin client infrastructures can be viewed as the
amortizationIn business, amortization refers to spreading payments over multiple periods. The term is used for two separate processes: amortization of loans and amortization of intangible assets.-Amortization of loans:...
of some computing service across several user-interfaces. This is desirable in contexts where individual fat clients have much more functionality or power than the infrastructure either requires or uses. This can be contrasted, for example, with
grid computingGrid computing is a term referring to the combination of computer resources from multiple administrative domains to reach a common goal. The grid can be thought of as a distributed system with non-interactive workloads that involve a large number of files...
.
Thin-client computing is also a way of easily maintaining computational services at a reduced total cost of ownership.
The most common type of modern thin client is a low-end
computer terminalA computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displaying data from, a computer or a computing system...
which concentrates solely on providing a
graphical user interfaceIn computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
to the end-user. The remaining functionality, in particular the
operating systemAn operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
, is provided by the server.
History
Thin clients have their roots in
multi-user systemsMulti-user is a term that defines an operating system or application software that allows concurrent access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving the...
, traditionally mainframes accessed by some sort of
terminalA computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displaying data from, a computer or a computing system...
computer. As computer graphics matured, these terminals transitioned from providing a
command-line interfaceA command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...
to a full
graphical user interfaceIn computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
, as is common on modern thin clients. The prototypical multiuser environment along these lines,
UnixUnix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
, began to support fully graphical
X terminalIn computing, an X terminal is a display/input terminal for X Window System client applications. X terminals enjoyed a period of popularity in the early 1990s when they offered a lower total cost of ownership alternative to a full Unix workstation....
s, i.e., devices running X 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 server software is not made available on thin clients, although no technical reason for this exclusion would prevent it.
Windows NTWindows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...
became capable of multi-user operations primarily through the efforts of
Citrix SystemsCitrix Systems, Inc. is a multinational corporation founded in 1989, that provides server and desktop virtualization, networking, software-as-a-service , and cloud computing technologies, including Xen open source products....
, which repackaged NT 3.5.1 as the multi-user operating system WinFrame in 1995.
MicrosoftMicrosoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
licensed this technology back from Citrix and implemented it into
Windows NT 4.0Windows NT 4.0 is a preemptive, graphical and business-oriented operating system designed to work with either uniprocessor or symmetric multi-processor computers. It was the next release of Microsoft's Windows NT line of operating systems and was released to manufacturing on 31 July 1996...
Terminal Server Edition, under a project codenamed "Hydra". Windows NT then became the basis of Windows 2000 and Windows XP. 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 EllisonLawrence Joseph "Larry" Ellison is the co-founder and chief executive officer of Oracle Corporation, one of the world's leading enterprise software companies. As of 2011, he is the third wealthiest American citizen, with an estimated worth of $33 billion.- Early life :Larry Ellison was born in the...
on the launch of
Oracle 7The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....
. At the time, Oracle wished to differentiate their server-oriented software from Microsoft's desktop-oriented products. Ellison subsequently popularized Negris's
buzzwordA buzzword is a term of art, salesmanship, politics, or technical jargon that is used in the media and wider society outside of its originally narrow technical context....
with frequent use in his speeches and interviews about Oracle products.
The term stuck for several reasons. The earlier term "graphical terminal" was chosen to contrast such terminals with text-based terminals, and thus puts the emphasis on
graphics. The term was also not well-established among IT professionals, most of whom had been working on fat-client systems. It also conveys better the fundamental hardware difference: thin clients can be designed with much more modest hardware, because they perform much more modest operations.
Thin clients as programs
The notion of a thin client extends directly to any client–server architecture: in which case, a thin client
applicationApplication software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
is simply one which relies on its server to process most or all of its
business logicBusiness logic, or domain logic, is a non-technical term generally used to describe the functional algorithms that handle information exchange between a database and a user interface.- Scope of business logic :Business logic:...
. This idiom is relatively common for
computer securityComputer security is a branch of computer technology known as information security as applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to...
reasons: a client obviously cannot be trusted with the logic that determines how trustworthy they are; an
adversaryIn cryptography, an adversary is a malicious entity whose aim is to prevent the users of the cryptosystem from achieving their goal...
would simply skip the logic and say "I'm as trustworthy as possible!"
However, in
web developmentWeb development is a broad term for the work involved in developing a web site for the Internet or an intranet . This can include web design, web content development, client liaison, client-side/server-side scripting, web server and network security configuration, and e-commerce development...
in particular, client applications are becoming fatter. This is due to the adoption of heavily client-side technologies like
AjaxAjax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
and
FlashAdobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...
, which are themselves strongly driven by the highly interactive nature of
Web 2.0The term Web 2.0 is associated with web applications that facilitate participatory information sharing, interoperability, user-centered design, and collaboration on the World Wide Web...
applications.
A renewed interest in
virtual private serverVirtual private server is a term used by internet hosting services to refer to a virtual machine. The term is used for emphasizing that the virtual machine, although running in software on the same physical computer as other customers' virtual machines, is functionally equivalent to a separate...
s, with many virtualization programs coming to a ripe stage, means that servers on the web today may handle many different client businesses. This can be thought of as having a thin-client "virtual server" which depends on the actual host in which it runs to do all of its computation for it. The end result, at least, is the same: amortization of the computing service across many clients.
Single point of failure
The server, in taking on the whole processing load of several clients, forms a
single point of failureA single point of failure is a part of a system that, if it fails, will stop the entire system from working. They are undesirable in any system with a goal of high availability or reliability, be it a business practice, software application, or other industrial system.-Overview:Systems can be made...
for those clients. This has both positive and negative aspects. On the one hand, the security
threat modelThreat modeling has two distinct, but related, meanings in computer security. The first is a description of the security issues the designer cares about...
for the software becomes entirely confined to the servers: the clients simply do not run the software. Thus, only a small number of computers need to be rigorously secured, rather than securing every single client computer. On the other hand, any denial of service attack against the server will harm many clients: so, if one user crashes the system, everyone else loses their vital data.
For small networks, this single-point of failure property might even be expanded: the server can be integrated with file servers and print servers particular to its clients. This simplifies the network and its maintenance, but might increase the risk against that server.
In practice redundancy is provided both in the form of additional connectivity from server to the network as well as in the servers themselves, using features like VMWare High Availability and Fault Tolerance or Citrix XenApp's load balancing.
Cheap client hardware
While the server must be robust enough to handle several client sessions at once, the clients can be assembled from much cheaper hardware than a fat client can. This reduces the power consumption of those clients, and makes the system
marginallyIn economics, marginal concepts are associated with a specific change in the quantity used of a good or service, as opposed to some notion of the over-all significance of that class of good or service, or of some total quantity thereof.- Marginality :...
scalableIn electronics scalability is the ability of a system, network, or process, to handle growing amount of work in a graceful manner or its ability to be enlarged to accommodate that growth...
: it is relatively cheap to connect additional client terminals. The thin clients usually have a very low
total cost of ownershipTotal cost of ownership is a financial estimate whose purpose is to help consumers and enterprise managers determine direct and indirect costs of a product or system...
, but some of that is offset by requiring a robust server infrastructure with backups and so forth. This is also reflected in terms of
power consumptionEnergy conservation refers to efforts made to reduce energy consumption. Energy conservation can be achieved through increased efficient energy use, in conjunction with decreased energy consumption and/or reduced consumption from conventional energy sources...
: the thin clients are generally very low-power and might not even require cooling fans, but the servers are higher-power and require an air-conditioned
server roomA server room is a room that houses mainly computer servers. In information technology circles, the term is generally used for smaller arrangements of servers; larger groups of servers are housed in data centers...
.
On the other hand, while the total cost of ownership is low, the individual performance of the clients is also low. The costs of compiling software, rendering video, or any other computationally intensive task will be shared by all clients via the server.
Client simplicity
Since the clients are made from low-cost hardware with few moving parts, they can operate in more hostile environments than conventional computers. However, they inevitably need a network connection to their server, which must be isolated from such hostile environments. Since thin clients are cheap, they offer a low risk of theft in general, and are easy to replace if stolen or broken. Since they do not have any complicated boot images, the problem of
boot image controlA boot image control strategy is a common way to reduce total cost of ownership in organizations with large numbers of similar computers being used by users with common needs, e.g. a large corporation or government agency...
is centralized to the server.
On the other hand, to achieve this simplicity, thin clients sometimes lag behind thick clients (PC Desktops) 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 needed dependencies. Modern thin clients attempt to address this limitation via port mapping or USB redirection software. However, these methods cannot address all use case scenarios for the vast number of peripheral types being put to use today.
Ultra-thin clients
Traditionally, a thin client ran a full operating system for the purposes of connecting to other computers. A newer trend is sometimes called an
ultra-thin client or a
zero client, which no longer runs a full
operating systemAn operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
: the
kernelIn computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources...
instead merely initializes the network, begins the networking protocol, and handles display of the server's output.
Web thin clients
Web thin clients (running a Web OS) rely on the web-based software for the application and data storage, thus creating a single point of failure when unable to connect to the Internet.
List of protocols used with thin clients
- Appliance Link Protocol
The Appliance Link Protocol is used by Sun Ray ultra thin clients to talk to Sun Ray servers. The closed source implementation of the Sun Ray Server Software is developed and distributed by Sun Microsystems...
- Citrix ICA
- NFS
- Remote Desktop Protocol
Remote Desktop Protocol is a proprietary protocol developed by Microsoft, which provides a user with a graphical interface to another computer. The protocol is an extension of the ITU-T T.128 application sharing protocol. Clients exist for most versions of Microsoft Windows , Linux, Unix, Mac OS...
- Secure Shell
Secure Shell is a network protocol for secure data communication, remote shell services or command execution and other secure network services between two networked computers that it connects via a secure channel over an insecure network: a server and a client...
or SSH, an encrypted replacement for telnetTelnet is a network protocol used on the Internet or local area networks to provide a bidirectional interactive text-oriented communications facility using a virtual terminal connection...
.
- Virtual Network Computing
In computing, Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer...
- X11, central to Unix windowing
- XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
, HTMLHyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
, or JSONJSON , or JavaScript Object Notation, is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects...
over HTTP (AjaxAjax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
)