Distinguishing the Mulitple Meanings of Thin Client and Fat Client

The responses I've received regarding two technical briefs, Thin Client: Not Much New and JDBC Brings the Fat Client to Java, have made it apparent that many people are confused over the multiple meanings of the terms thin client and fat client. These terms are used to refer both to physical platforms and layers in physical software architectures. This brief distinguishes these two uses.

Physical Platforms

In the Thin Client: Not Much New brief, the term thin client refers to physical platforms, in particular, the new wave of thin clients based either on Citrix's WinFrame and ICA technologies or Web browsers and Java. These are characterized by having no local persistent storage, little or no hardware expansion potential, and operating environments with relatively fixed configurations. As such, these are presumably much easier to administer than a standard Wintel PC (the archetypal fat client), which proponents claim will translate into drastically reduced total cost of ownership (TCO). The extent to which this is true remains to be seen. However, it is clear that, like the thin clients of the past (diskless workstations and X terminals), this new breed of thin client will have its niche in the computing kingdom.

Physical Software Architectures

In the JDBC Brings the Fat Client to Java brief, the term fat client refers to physical software architectures. This fat client is typified by monolithic PowerBuilder or Visual Basic desktop applications that access a client/server RDBMS using ODBC. This is known as the Remote Data Management style in Gartnerspeak. The fat client is distinguished from the thin client mainly in that it includes all the application's display and application logic. The thin client architecture, labeled by Gartner as Distributed Function, deploys some or all of the application logic on a server.

Contrary to what some naively believe, thin clients are not inherently more portable or platform independent than fat clients. The platform independence is a function of the technology used to develop and deploy the application, not the architecture. It is quite possible to develop an application as a thin client using Delphi, but this is clearly not portable. Likewise, with JDBC, it is equally possible to develop a fat client application as a Java applet, which will be very portable.

Like the thin client v. fat client battle in physical platforms, neither thin nor fat will be a winner-take-all in the architecture battle. Each has its place. Some simple applications in homogeneous environments should be deployed as fat clients. If proper software development practices are followed, these can be re-engineered to other architectures in the future if required. (Check Reasons To Use Two-Tier Fat Client Instead of Browser-Based Application Development Technology for more opinion on this.)


Copyright © 1997 Scott Nichol.
27-Feb-97