client server computing The combination of computers—often powerful computers—known as
SERVERS which offer specialized services to a number of other computers known as
CLIENTS. A typical service is a file service where a server provides files requested by clients. It is worth pointing out that the provision of services is usually a little more complicated: a server providing a service often calls on the facilities of another server. For example, a
WEB SERVER hosting an
ECOMMERCE application that entails selling a product usually calls on the services of a
DATABASE SERVER which stores product information. A client server computing system has a number of characteristics. The first is that it should be capable of combining clients and servers running a variety of operating systems and hardware using standard
PROTOCOLS. One of the reasons for the rise of
TCP-IP, and its increased use in client server systems in the 1990s, has been its widespread availability on virtually every
OPERATING SYSTEM. The second characteristic is that resources in such a system are shared: for example, a network operating as a client server system may contain a single database that is held on a database server accessed by clients, with the server mediating and sharing the access to the data. The third characteristic is that servers are highly specialized in that they carry out one service; hence they can be optimized for that service alone. This leads to a near optimum performance that would not be achieved if a server were carrying out a large amount of general-purpose processing. The fourth characteristic is that scaling a client server system is relatively straightforward: more clients can be easily added to increase user access to a system and more powerful servers can be added to increase the power of the system. The fifth characteristic is that of
TRANSPARENCY: that when a client asks for a service there is no need for the user of the client, or the programmer who developed the code that requests the service, to know the address of the server that provides the service. In order to implement this, client server systems usually contain a
NAME SERVICE that maps symbolic names to the locations of resources. If a server address changes then all that needs to be done is to change the data stored by the server implementing the name service; no other program code needs to be changed. A sixth characteristic is that the relationship between a client and a server is asymmetric: clients issue requests for a service and servers wait for this request before responding. The final characteristic of a client server system is the fact that program code and data for services are maintained centrally at the server that provides the service; this means that there are no complications when such software needs to be updated. The client server model is increasingly becoming the de facto model for computer networks: for example, the
WORLD WIDE WEB is a client server system, where the client is a computer that runs a browser and servers are
WEB SERVERS that respond to requests from the clients for
WEB PAGES. See also
INTRANET and
EXTRANET.