A thin client is a lightweight computer that is purpose-built for remoting into a server (typically cloud or desktop virtualization environments). It depends heavily on another computer (its server) to fulfill its computational roles. This is different from a conventional 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's or user's 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.