Client server networking is a simple, yet very powerful, concept in networking. This article introduces the concept of client server networks and how they are used in day to day business activities.
In the simplest configuration, if you have several computers connected via the serial ports to another machine, it is a client server network. The basis of client-server architecture is that client machines request some services from the service provider machine or the server. The server is the machine that serves up some service to all the clients. When the number of machines go up, this simple configuration may be Impossible to implement. For example, beyond 3 or 4 clients, it may be difficult to connect to one server. The server may not have as many serial ports. One could have a serial port concentrator or a hub. The server connects to the hub and the clients connect to the hub. Even with such arrangements, it may become quite a tangle of serial cables to implement networking in this configuration.
If you stop to think for a minute, it is not essential to hang all the clients from the server physically. As long as the basic functionality can be maintained, it does become a client-server organization. For example, if machines connected over your office LAN are able to request and get services from a machine designated as a server; it is a client server organization. At a logical level each client communicates with the designated server to obtain a service. Imagine a heavy duty printer connected to one such server. All the clients in the network then simply request this print server to get a printing job done. Being centralized, this server can manage all the print jobs, maintain fairness policies and so on. Rather than trying to manage a multiplicity of printers connected to different machines, it is easier to administer one and take care of its supplies, toner, and so on to ensure it is always available for service.
Servers and Servers
Going by this analogy, one can imagine all kinds of servers that can be used on a network. File servers are a very common use. All files are stored on one or more servers. Being central, it is easier to manage the files, maintain versions, and manage back up and restore of files of the organization easily. As the storage needs grow you add to the storage of the server. Similarly there can be a fax server that communicates with the external world via fax. The clients simply send the fax to the server or receive one from it. There can be a communication server that lets all the clients communicate via VoIP, IM, and so on.
Organizations also typically have a proxy server that communicates with the Internet and the internal clients communicate with this proxy server to request services from the net to this server. Another class of servers is application servers. The main application, that is typically multi-user, runs on the server and clients are able to operate this application from their machines. Typical examples in this class would be a centralized PDF converter, a CAD application, a centralized time reporting application, and so on.
In a client server set up, a client machine can be as simple as possible. In the given scenario of simple machines on a LAN, the clients need not be anything more than a simple terminal that can manage the network communication/ protocols. Typically though, it'll be a plain vanilla PC on your desktop. Most users expect some applications to run locally and want some local storage too. However the servers need to be powerful. In a file server configuration for example, the server will have to be able to service several simultaneous requests for files from different clients. On the storage side, it has to be able to manage the storage and retrieval of files as requested by clients and at fast enough read/write speeds. Periodic back ups should not slow down the operations of the server either.
The processors used in these server machines need to have the required firepower in them to handle anticipated load. The type of storage devices and their I/O speeds also have an implication on the performance of the server. Basic I/O capabilities of the machine coupled with network I/O capabilities are a necessity. A large amount of RAM storage to support high speed operations is also a requirement. To let the server operate non-stop, hot swap of drives would be a necessary requirement. You'll always find a range of high powered processors being positioned at servers. Intel's Xeon family is an example of this kind of processor designed specifically for use in servers.