In computing, some applications and devices are designed to operate in a standalone fashion. Most applications, however, feature at least some network interaction. This results in the need for servers and is the core of the client-server model. In the client-server model, a client is a piece of hardware or software that accesses one or more services made available by one or more servers.
Note: In business environments, the term client may be regularly used to refer to customers, either individuals or other companies. This usage will likely be more common in business environments than in hardware or software devices that access servers. There may be exceptions when dealing with IT departments and other technical groups. The actual meaning should generally be evident from the context.
In both hardware and software, clients are generally broken down into two distinct groups: thin clients and thick clients. Thin clients usually are lightweight and provide access to remote data and processing. Thick clients are generally more substantial, deal primarily with local data, and use local processing power.
Software is generally the most accessible place to understand the concept, as this is where the effect is evident in the modern world. A thick software client is usually easy to understand. It is an application that processes local data on the local device. Some examples are single-player games, photo editing programs, and office software.
A thin software client is an application that provides access to remote data and enables it to be processed remotely. Here the data is stored, and the processing happens on the server. Messaging applications and remote desktop applications can be good examples of this, as can websites.
Software-thick clients require significantly more processing power and storage from the hardware. Thin clients can run excellently on budget hardware with limited resources and cooling because most of the processing doesn’t need to happen on the device. Thick clients need more powerful computers as they require more local processing power.
Almost no applications fit perfectly into one box. A web browser, for example, is a feature-rich application that can require a fair amount of local processing power. However, it essentially only exists to display web pages that are themselves, generally, thin clients. An online video game may perform a lot of processing on the server. Still, much processing power is also needed on the device, typically primarily in graphical processing.
A thin hardware client is typically a relatively small computer. Powerful computers often need to be significant to fit in their components and the cooling equipment they need to allow good airflow to that cooling equipment. Hardware thin clients generally intend only to perform light processing tasks and need minimal storage.
Because these tasks are offloaded to a server, the hardware doesn’t need to be as power-hungry and therefore requires less cooling. This leads to hardware-thin clients having a physically small and often thin form factor, at least when compared to standard-sized PC towers.
Hardware-thick clients are intended to perform much more processing than their thin cousins. They often have higher spec hardware which is more expensive and needs more cooling. It is primarily the cooling that increases the physical bulk of these machines.
The use of client in this context originated in the days of the mainframe computer. Relatively cheap clients were connected over a network. These clients couldn’t perform any actual tasks or run any software independently. They could relate to the mainframe computer and instruct it to perform the tasks.
Can a Hardware Thin Client Run Software Thick Clients?
One thing to note is that a thick hardware client is in no way limited to running thick software clients. It has the power to do so but can also absolutely run thin client software that performs all the processing on the server. Depending on the application, data set, and the thin hardware client, this can also be true in response.
A thin hardware client is still a fully functional computer. It’s just not provided with many system resources as it’s generally not intended to need them. It may be able to run some thick software clients, but performance may be limited. Particularly intensive applications may not be able to run at all.
For example, a hardware-thin client should be able to run an office program or a web browser. It may even be able to do some photo editing, though it may struggle with editing large photos. A thin hardware client, however, is unlikely to be able to run any thick clients for any video editing, machine learning, or other resource-intensive tasks as it simply doesn’t have the local resources.
A client refers to a hardware device or software that accesses one or more services made available by one or more servers. Clients are typically used directly by people. They are broadly split into two subclasses, thick and thin clients. Thick clients typically require local data and processing power, depending on whether the client in question is a hardware or software client. A thin client typically requires minimal local data or processing power, depending on whether the client in question is a hardware or software client.