Thin client



         


Thin client and thick (or fat, rich) client refer to certain types of computer software or hardware, pertaining to a role played in a client-server application.

[Top]

Introduction

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 client (or a mixture of both).

[Top]

Definitions

A thin client may be an application program or a device for the execution of thin-client application programs. Unfortunately, however, there is no precise definition (in terms of quantifiable terms) for when the client program or device may be called a thin client or not.

[Top]

Application Program

A thin client (application program) is a program which 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 fat client application program try to draw the line at the fact if 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.

[Top]

User-Interface Device

A thin client (device) is a device which 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.

[Top]

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, Clearcube or Web kiosk might be considered thin clients in this sense.

[Top]

Thick Client

A thick client does as much processing as possible at the clients and passes only data required for communications and archival storage to the server.

[Top]

Comparison Thin Client vs. Thick Client

In concept, thin clients are cheaper and require less administration than thick clients. On the other hand they tend to require greater communication bandwidth as display data will probably need to be passed to the thin clients. The thin client server must be much more capable (and expensive) than a thick client server. One advantage of thin clients is that they only need to be upgraded one time rather than on each machine like thick clients.

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.

[Top]

Protocols

Some examples of protocols used for thin clients - server communication are:

X11
used by all Unix variants
Quartz
used by Mac OS X
VNC
Citrix ICA with MetaFrame
used by Windows RDP
HTML over HTTP
used by the myriads of web applications
[Top]

See also

[Top]




  View Live Article   This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License