Modern computer networks may consist of thousands of computing devices of various kinds, often made by different vendors and interconnected by many types of transmission media, including standard telephone lines, satellites, digital microwave radio, optical fibres, or digital data lines. They may include local or wide area configurations. For such a group of heterogeneous devices to be linked, both the hardware and software need to be compatible or else complex interfaces need to be built to allow meaningful communication. Network architecture helps achieve this compatibility.
A number of important features are incorporated in a client-server system. Clients may access any of a variety of servers, and servers may provide many services. Local- and wide-area communication networks may be used to link geographically distributed servers and clients (Williams, 2002). Bonding software, or middleware, is used to handle the necessary message routing between clients and servers in the client-server system and is necessary to provide a single system image to a user. This is needed in order for a variety of user applications to run in an environment with multiple vendors such that the system user is isolated from the details of the variety of network communication protocols that may be in use, and such that system users do not need to know where a given set of data is physically located. A server may be a general-purpose computer or a special-purpose machine, or it may be a computer workstation. Client-server computing enables work to be divided across cooperating processors such that clients may use shared resources from many servers to complete a task. Action to engage in an application is generally initiated by a client, and a user-friendly graphical interface is incorporated at each client site. Most client-server systems provide a standard query language at each client site to assist ...