A Thin client is a computer (client) in client-server architecture networks which has little or no application logic, so it has to depend primarily on the central server for processing activities.
In designing a client-server application, there is a decision to be made as to which parts of the task should be done on the client, and which on the server. This decision can crucially affect the cost of clients and servers, the robustness and security of the application as a whole, and the flexibility of the design to later modification or porting.
One design question is how application-specific the client software should be. Using standardized client software such as a Web browser or X11 display can save on development costs, since one does not need to develop a custom client—but one must accept the limitations of the standard client.
Depending on the outcome of these decisions we might say that we use either a thin client or a thick/fat client (or a mixture of both).
A thin client may be a program or a device for the execution of thin-client application programs. Unfortunately, however, there is no precise definition (in quantifiable terms) for when the client program or device may be called a thin client or not.
A thin client as an application program communicates with an application server and does not incorporate the significant elements of business logic which the overall (client-server) application implements. Instead, the core functions of the application are located on a distinct computing device, an application server, which may be located nearby in a LAN or at a distance on a WAN or MAN.
In short, a thin client does most of its processing on a central server with as little hardware and software as possible at the users site.
The meaning of the words "significant elements", "core function", "most" and "as little" are arguable.
Other definitions of thin versus thick/fat client application program try to draw the line at whether the deployment of the application requires the installation of additional software at the client or not. Unfortunately, this is also arguable, since e.g., a browser used for a client application might be part of one client platform, but not the other. So on one platform no additional software installation is required, while another client platform requires it.
A thin client as a device is designed to provide just those functions which are useful for user-interface programs. Often such devices do not include hard disk drives, which may become corrupted by the installation of misbehaved or incompatible software, but instead, in the interests of low maintenance cost and increased mean-time between failures (MTBF) the thin client device will use read-only storage such as a CD-ROM or flash memory.
Ideally the user will have only a screen, keyboard, a pointing device (if needed) and enough computer to handle display and communications. Companies that develop and market these devices include Wyse Technology and Hewlett Packard.
Device for running a Thin Client Application Program
"Thin client" has also been used as a marketing term for computer appliances designed to run thin client software. An X terminal, Wyse Winterm], Clearcube or Web kiosk might be considered thin clients in this sense.
A thick or fat client does as much processing as possible and passes only data required for communications and archival storage to the server.
Examples Of Thin Client and Thick Client Usage
The advocates of both architectures tend to have contentious relationships. In practice, there seems to be little to choose between the two approaches for many applications. A few situations may clearly call for one or the other. Distributed computing projects such as the SETI@home project (whose whole point is to pass off computationally intensive analysis to a large collection of remote computers) are applications that require thick clients. On the other hand multicasting entertainment or educational material to a number of clients might best be done with thin clients since exactly the same material is to be presented at each.
Advantages of Thick Client
Less network bandwidth. Thick clients typically require less network bandwidth.
Less server requirements. A thick client server does not require as high of performance as a thin client server (since the thick clients themselves do much of the application processing).
Better multimedia performance. Thick clients have advantages in multimedia-rich applications that would be bandwidth intensive if fully served. For example, thick clients are well suited for video gaming.
Some examples of protocols used for thin clients - server communication are:
- used by all Unix variants
- Citrix ICA with MetaFrame
- used by Windows RDP
- HTML over HTTP
- used by the myriads of web applications
- Thethin.net (http://www.thethin.net/)
- Thinstation (http://thinstation.sourceforge.net/)
- Thinlet.com (http://www.thinlet.com/)