Fat client
From Wikipedia, the free encyclopedia
A fat client is a computer (client) in client-server architecture networks which typically provides rich functionality independently of the central server. Originally just a "client", or "thick-client" in the early days of PC based computing, the word "fat" is in opposition to the "thin" within thin-client, however it typically means that the size of the application which resides on the client machine is large (although browsers such as IE7, while thin-clients, are often far bigger).
Such a client still requires at least periodic connection to a network or central server, but is often characterised by the ability to perform many functions without that connection (consider a thick mail client such as Microsoft Outlook compared to a thin-client-based mail system such as Hotmail). It is also usually characterised by a requirement to install a specific application.
In contrast, a thin client generally does as little processing as possible and relies on accessing the server each time input data needs to be validated.
Contents |
[edit] 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.
The characteristics of the user interface often force the decision on a designer.
For instance, a drawing package could choose to download an initial image from a server and allow all edits to be made locally, returning the revised drawing to the server upon completion. This would require a thick-client and might be characterised by a long time to start and stop (while a whole complex drawing was transferred) but quick to edit.
Conversely, a thin client could download just the visible part(s) of the drawing at the beginning and send each change back to the server to update the drawing. This might be characterised by a short start-up time, but a tediously slow editing process.
[edit] A little history
The original clients of servers were simple text display terminals including Wyse VDUs, and thick clients were generally not used until PCs were used instead. The original drive towards thin client computing was often cost-based since it allowed low powered (and therefore cheaper) PCs to be retained rather than upgraded. As PC prices reduced relative to central server prices, Thick Clients became more attractive and provided a more-responsive and sometimes graphical user-interface than a Thin Client could achieve. In more recent years, the internet has tended to drive the Thin-Client model despite the prodigious processing power that a modern PC has available.
[edit] Centrally hosted thick client applications
Probably the thinnest client (sometimes called 'Ultra Thin') are terminal services (such as X Window System, Citrix, Windows Terminal Services etc) which effectively allow applications to run on a centrally-hosted virtual PC and just copy keystrokes and screen images between the local PC and the virtual PC. Ironically, these ultra-thin clients are often used to make available complex or data-hungry applications which have been implemented as thick-clients but where the true client is hosted very near to the network server.
[edit] Advantages of thick clients
- Fewer server requirements. A thick client server does not require as high a level of performance as a thin client server (since the thick clients themselves do much of the application processing). This results in drastically cheaper servers.
- Offline working. Thick clients have advantages in that a constant connection to the central server is often not required.
- 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.
- More flexibility. On some operating systems software products are designed for personal computers that have their own local resources. Trying to run this software in a thin client environment can be difficult (such as Microsoft Windows). Linux and Unix-like systems in general have greater flexibility in this area.