Client-Server Computing is all around us. By reading this web post you are experiencing client-server at work and there are countless examples and growing uses for client-server computing, especially as the popularity of cloud computing increases. So what is client-server and what are the differences between fat and thin clients?
Client-Server Computing leverages the capabilities of networking such as that used in your office, home, and the World Wide Web. As the computing environment has evolved from mainframe systems with dumb terminals to a network of powerful desktop computers, corporations needed a way to take advantage of the computing power on both ends of the network, hence, client-server computing. By replacing mainframe systems which use dumb terminals, with a client-server architecture, a company can take advantage of the distributed computing power in the clients (the desktop PCs), rather than just using dumb terminals that require the server to do all the work. Additionally, centralized data is still accessible to everyone who needs it. It is a best of both worlds approach to computing. The client-server model also offers unprecedented opportunity for growth, scalability, and concurrent multi-user access to central information.
Fat clients take the majority of the responsibility for the application logic, which frees the server from much of the work. This approach has several advantages to the thin client approach. Some of which are; a greater flexibility in application design and functionality, an increase system stability when updating application logic, and fat clients are generally easier to because they are client specific and do not have to be compatible with various client types as in a thin client system.
Thin clients, on the other hand, have little if any responsibility for application logic, which place most of the burden for the application on the server. This provides several benefits distinct from the Fat Client system approach. Updating the application logic is more easily accomplished since only the server needs to be updated. Thin clients require less knowledge of the data on the server side, which contributes to a higher level of encapsulation and data integrity. Thin clients are generally easier to debug and manage since the application logic is in a central location, the server. Data management is also easier for the same reason. Network bandwidth is less of an issue because most of the processing is performed on the server where the data resides rather than transferring data across the network to the client. More robust applications and consistent performance from user to user, or “universally compatible” applications, are another advantage of using a thin client system.
A client-server approach to a networked computer system provides a scalable and flexible system, which allows a company to maintain centrally accessible information, while at the same time taking advantage of the available distributed computing power that exists in the desktops throughout the company. The client-server approach also improves the use of available computing power by separating functions and processes performed and delegating them to the appropriate and most capable machine.
This idea of sharing resources across a network is location agnostic. The user does not need to be aware of the how or where the process is being completed. This encourages encapsulation of data, which also facilitates security, stability, and data integrity.
