Client-server technology is the name given to the computer architecture that makes sharing of information possible between the server, which functions as the provider for the client, and the client, or the requestor. The client and server are able to do different tasks, and one can also be upgraded without affecting the other. Client-server is a popular approach nowadays in managing networking applications for the Internet or even LANs (local area networks), and it is typically in use now in most library settings.
The socket programming behind the client-server technology is a bit tricky to explain, but you can compare its function to that of an actual socket, because the socket connects the client with the server. To be able to connect to a server, what the socket client does is to find the network location and the particular server running on that host from a host address and port number specified by the client. The server socket has a more complicated program than the client socket because it has to allow for multiple users to be able to connect to the server at any one given time. For this, a listening socket is usually created initially by the socket command, and new sockets are only created when the clients connect with the server.
These are some other points that you might useful to know about client-server technology:
- The client is usually the one that begins the dialogue with the server in the form of a request for a service. This is different from hierarchal processing because, unlike the relationship of slave and host in hierarchal processing, the client PC does not follow a ‘dumb’ terminal to communicate with the server, and the server does not control all the tasks like the host does.
- The client can be a mobile device rather than a personal computer, as long as it has enough memory for local processing and to download the requested applications from the server.
- The server can be adjusted depending on how much control you want the server to have, and it can be a simple communication server or a connection server or some other type. A code server, for example, will allow you to open a program without the operating system, or OS, needing to know where the pieces of the program are, and with only the normally available modules at the client. This makes commands like file installation and sharing unnecessary to be able to run a program properly. In a code server arrangement, the OS, instead of asking for file transmission, puts a query to the code server first, and the code server will check for the version required by the client only after testing if the client does not already have the code in its database. If it does, then it will inform the client. This means that you can save on transmission bandwidth.
There are other advantages to using client-server. It’s easier to keep data secure, for one. It allows for remote access, and a client-server set-up might even improve productivity for online vendors.