16.3 Client-Server Computing
16.3.1 Client-Server Computing
The client server computing model distributes processing over multiple computers. Distributed processing enables access to remote systems for the purpose of sharing information and network resources. In a client-server environment, the client and server share or distribute processing responsibilities.

Computers on a network can be referred to as: Host, Server or Client.

Host - A host is a computer system on a UNIX network. Any UNIX computer running TCP/IP (workstation or server) is considered a host computer. The local host is the machine on which the user is currently working. A remote host is a system that is being accessed by a user from another system.

Server - A server provides resources to one or more clients by means of a network. Servers provide services in an UNIX environment by running daemons. Examples of daemons include: Printer, FTP, and Telnet.

Client - A client is a machine that uses the services from one or more servers on a network. Your computer can be a printer client, an FTP client, and a telnet client simultaneously.

A simple example of Client/Server relationship is an FTP session. FTP or File Transfer Protocol is a basic industry standard method of transferring a file from one computer to another. In order for the client to transfer a file, the server must be running the FTP daemon or service. In this case, the client requests the file to be transferred and the server provides the file.

The Internet is also a good example of a distributed processing client-server computing relationship. The client or "front end" typically handles user presentation functions such as screen formatting, input forms, and editing of data. This is done with a browser such as Netscape or Internet Exploder. The server or "back end" handles the client's requests for web pages and provides Hypertext Transfer Protocols (HTTP) or WWW Services.

Another example of client server is a database server and a data entry or query client in a LAN. The client or front end may be running an application written in the C or Java TM language and the server or back end could be running Oracle TM or other database management software. In this case the client would also handle formatting and presentation tasks for the user. The server would store the database itself and retrieve the data for the user.

In a typical file server environment, the client may have to retrieve large portions of the database files to process them locally, which can cause excess network traffic. With the client server model, the client presents a request to the server and server database "engine" might process 100,000 records and pass only a few back to the client to satisfy the request. Servers are typically much more powerful than client computers and are better suited to processing large amounts of data. With client-server computing, the large database is stored and the processing takes place on the powerful server. The client only has to deal with creating the query and a relatively small amount of data or results may be passed across the network. This satisfies the clients query and results in less usage of bandwidth. The Figure shows and example of Client / Server computing. Note that the workstation and server would normally be connected in LAN by a hub or switch.