The Differences Between Thick, Thin & Smart Clients
When implementing a client/server architecture you need to determine if it will be the client or the server that handles the bulk of the workload. By client, we mean the application that runs on a PC or workstation and relies on a server to perform some operations.
In last week's Did You Know article we discussed the differences between thick clients (also called fat clients) and thin clients in terms of hardware. The terms thick client and thin client, however, have double meanings, as thick and thin also are used to describe the applications or software. In this article we take a look at the terms thick and thin as related to client application software.
A great starting point to discuss the nature of the underlying differences would be to start with an example of thick and thin based on an operating system and the applications. For example, a terminal or Java-based client would be considered a thin client whereas one running Microsoft Windows would be considered a thick client.
One major inconsistency when describing thick and thin is that the hardware may be thin — but the applications or software running may be thick. While that doesn't seem to make much sense, if you think of the division between thick vs. thin starting at the operating system level, rather than at the CPU, it's logical.
Thick vs. Thin Client Applications
A thin client machine is going to communicate with a central processing server, meaning there is little hardware and software installed on the user's machine. At times, thin may be defined as simply not needing the software or operating system installed on the user machine. This allows all end users' systems to be centrally managed and software deployed on a central server location as opposed to installed on each individual system.
Thin clients are really best-suited to environments in which the same information is going to be accessed by the clients, making it a better solution for public environments. For this reason, thin clients are often deployed in hotels and airports, where installing software to all systems wouldn't make sense. It would be a massive headache for IT to both deploy and maintain.
When using thin clients, compared to a feature-rich desktop PCs today, they often tend to look a bit primitive and outdated. Since many thin clients run on very little hardware, it is impossible to incorporate rich graphical user interfaces. To use the client, an input device (keyboard) and viewing device (display) is usually the basic requirements. Some may not even require a mouse.
In contrast, a thick client will provide users with more features, graphics and choices making the applications more customizable. Unlike thin clients, thick clients do not rely on a central processing server because the processing is done locally on the user system, and the server is accessed primarily for storage purposes. For that reason, thick clients often are not well-suited for public environments. To maintain a thick client, IT needs to maintain all systems for software deployment and upgrades, rather than just maintaining the applications on the server. Additionally, thick clients often require operating specific applications, again posing more work and limitations for deployment. The trade-off is a more robust and local computing environment.
Looking Towards Smart Clients
Over the past few years, has started to move towards smart clients, also called rich clients. The trend is a move from traditional client/server architecture to a Web-based model. More similar to a fat client vs. a thin client, smart clients are Internet-connected devices that allows a user's local applications to interact with server-based applications through the use of Web services.
For example, a smart client running a word processing application can interface with a remote database over the Internet in order to collect data from the database to be used in the word processing document.
Smart clients support work offline. That is, they can work with data even when they are not connected to the Internet (which distinguishes them from browser-based applications, which do not work when the device is not connected to the Internet). Smart client applications have the capability to be deployed and updated in real time over the network from a centralized server, they support multiple platforms and languages because they are built on Web services, and can run on almost any device that has Internet connectivity, including desktops, workstations, notebooks, tablet PCs, PDAs, and mobile phones. Smart clients will offer rich GUIs, and overall development and maintenance costs are higher than, for example, thin clients.
On the downside, smart clients require users to install or deploy a runtime a library — routines that are bound to the program during execution. For example, if the client is Windows-, Java- or Flash-based, you need to have that runtime on the user machine. Smart clients are most often contrasted with Web browser clients (or browser-based applications).
Did You Know...
According to a 2004 Jupiter Research report, 73 percent of corporations surveyed reported that they had migrated at least one enterprise application from a client-server model to a Web-based model.
|Key Terms To Understanding Storage Servers:
Based in Nova Scotia, Vangie Beal is has been writing about technology for more than a decade. She is a frequent contributor to EcommerceGuide and managing editor at Webopedia. You can tweet her online @AuroraGG.
Stay up to date on the latest developments in Internet terminology with a free weekly newsletter from Webopedia. Join to subscribe now.
Microsoft Windows is a family of operating systems for personal computers. In this article we look at the history of Microsoft operating... Read More »Slideshow: Interesting Facts About Google Search
From Goats to Penguins, a server outage and trillions of searches, our slideshow presents interesting facts about Google and the Google.com... Read More »Slideshow: 5 Apps to Make Your Commute a Breeze
We've scoured the App and Play Stores to bring you five of the most useful apps to have with you on the road, plus a bonus in-car feature. Read More »
Java is a high-level programming language. This guide describes the basics of Java, providing an overview of syntax, variables, data types and... Read More »Java Basics, Part 2
This second Study Guide describes the basics of Java, providing an overview of operators, modifiers and control Structures. Read More »The 7 Layers of the OSI Model
The Open System Interconnection (OSI) model defines a networking framework to implement protocols in seven layers. Use this handy guide to compare... Read More »