Client-Server Technology : Thin Clients
The Role of Client Computers
In client-server technology, a client computer uses its software programs to make requests from server computers over a network. The server computers then process the request and handle delivery back to the client. However, the server may turn into a client if it formulates a service request to forward to another server, say, a database server. Clients and servers connected on a network are also referred to as nodes. Clients can send requests to more than one server. The most common types of clients today are web browsers.
Most typical servers include web servers and database servers. There are several processing characteristics for clients and servers. The client actively initiates requests, making it a ‘master’. Clients usually launch request through GUI’s (Graphic User Interfaces) that interact directly with the user. The client then waits for and receives responses. They usually connect to a small number of servers. Servers, on the other hand, are passive, waiting for client requests. This makes them ‘slaves’ in the client-server communication equation. They accept many requests from many clients at the same time and do usually do not interact with end users. Master/slave models refer to communication protocols in which one machine or software program (‘master’) controls how other machines or software programs (‘slaves’) act. It is the typical protocol model for client-server technology and is also referred to as ‘primary/secondary’.
This article will discuss thin clients and how they affect client-server environments. Thin clients are client computers or client software that rely primarily on the server for all processing activities. It is primarily used only for conveying input and output to the user. Usually, thin clients only run web browsers or remote desktop software. This is administration software that is accessed through GUIs and runs programs locally that are remotely located on a server. This coincides with the current trend toward storing desktop applications and operating systems on the web or other external servers, which allows programs to be accessed only as needed. This removes the need for organizations or individuals to purchase and maintain sophisticated software and hardware, which requires a significant investment.
Components and Functions
In client-server application design, specific processes are assigned to the client and the server. These decisions affect security, cost, and robustness, and porting. Robustness will determine how well the program will recover from errors or operating under conditions of stress. Porting refers to flexibility or the adapting of programs to environments other than the one which they were created for. One of the primary benefits of using thin clients is cost. It is costly to develop application-specific client software. Thin clients use standardized software, like that found in web browsers, as the primary client software and save the money.
Thin clients require four components to function: application programs; user-interface devices; devices for running thin client application programs; and software for thin clients. To communicate with servers, thin clients rely on a separate piece of software located on a server that is located nearby on a LAN (Local Area Network) or more remotely on a WAN (Wide Area Network) or even further away on a MAN (Metropolitan Area Network). Since thin clients locate most of their processing on a server or some other centralized managed site, another criteria for thin client application programs is whether additional software is required on the client/user side to run the program. For a client to be thin, the boot image, which contains the structure and content of a computer storage media, must not require modification to run.
As devices, thin clients provide only those function necessary for interacting with user-interface programs. User interfaces (UIs) function as the point of contact or communication through which users (people) communicate with computer systems. UIs combine menus, screen design, command languages, online help, keyboard commands, and any other programming that can communicate user requests. Primarily, UIs provide for input, in which users can form requests and otherwise manipulate a system or technology, and output, in which the system communicates the effects of the user’s manipulation. In thin clients, user interface devices use ‘read-only memory’ (ROM) in the form of CD-ROMs, network virtual drives, or flash memory.
Read-only storage is memory whose contents cannot be changed. They can, however, be accessed and manipulated to describe a request. In thin clients, UIs usually only possess a screen, a keyboard and a pointing device (mouse or cursor). The client must only have enough power to communicate requests and display responses.
It is important to note that most thin clients are only software running on standard personal computer hardware. Examples of this type of software-only thin client are PXES Universal Thin Client, Pilotlinux, Knoppix, and Puppy Linux.
Thin Client Advantages
The advantages of using thin clients are numerous. Thin client usage results in lower administrative costs and greater security. Since all processing occurs on a server and is centrally managed, the local environment is stateless and the hardware has fewer points of contact with processing activity resulting in a lower probability of error.
In stateless environments software programs do not retain data or configuration settings between processes. The World Wide Web that uses HTTP (Hypertext Transfer Protocol) is the most dominating stateless environment. Once a process is completed and a web page is delivered, the connection is closed. Cookies help counter this.
Stateless environments also protect against malware, which is software designed to damage a system without the user’s consent or knowledge. They are essentially the same thing as viruses, but can include worms and spyware, to name just a few examples. Thin clients are protected against malware since no application data exists on the server; it is all centrally managed on the server. Thin clients also reduce hardware costs by not requiring disks or supporting application memory. They also don’t require updating as regularly or become obsolete as quickly. Hardware is also better utilized in thin clients. Thin clients can share memory, while CPUs (Central Processing Units) remain idle. Several users can run the same program simultaneously, but the program only needs to be loaded once with a central server.
Meanwhile, in fat or thick clients, each workstation must contain a copy of the program to run it. Thin client servers use less bandwidth, which also reduces costs. Since most terminal servers exist on the same network as file servers, network traffic mostly occurs in the server. Thin clients use resources more efficiently. They only use the minimal resources to accomplish a requested task. Finally, thin clients make it easy to add resources, as they are needed. Thin clients make upgrading easier and more efficient as well.
Thin Client Disadvantages
The disadvantages of thin clients can also be understood as the advantages of thick/fat clients. For example, thin client servers require a high performance level, since this is where the bulk of processing takes place. In contrast, thick clients perform much of their own processing on their end before sending it to servers. Therefore, thin clients make servers expensive and complicated.
Thin clients do not support multimedia-rich applications, like video gaming. Multimedia-rich applications require a significant amount of bandwidth to function to their maximum potential. Thin clients’ use of relatively little bandwidth mean that animation; video, and other graphic features are not well supported in this environment. For example, thin clients are often overwhelmed and stop working when they are required to stream media or use Flash players.
Operating systems like Windows are designed to run on local resources. This actually makes them less flexible, in direct contradiction to it proposed goals. Since thin clients run on remote resources it may be difficult to run these systems on thin client-server networks. High latency networks, where the lag time in transferring data over a network is long, can make thin clients unusable. If a network is down, there is no way for a thin client to access the server and processing power it needs to respond to requests. In contrast, thick clients can continue to work offline if a network is down. This single point of failure means that thin clients are prevented from using and desktop applications and may result in lost work.
Thick clients also allow background data transfer while working on other tasks using local resources. Thin clients also make it difficult to track individual user behavior, which is often analyzed to provide more customized responses to frequently asked requests and predict future user behavior for more efficient use of resources. Finally, thin clients create server-side bottleneck and scalability issues. Scalability refers to a system’s capacity to scale or provide processing power according to data volume. When not using think clients, desktop applications scale automatically and each new client added to a network add processing power. Thin clients only place more demands on the server and the network as they increase in number. Once the workload threshold has been crossed, server architecture must change and potentially increase. These changes are costly and often occur after serious crashes.