Introduction
Client-server architecture is the logical extension of modular programming. Modular programming has an assumption that a large piece of software can be broken down into modules. The calling module is called the client while the called module is called the server. These modules need not all to be executed within the same memory space. The advantage of having modules is that it creates the possibility of easier development and maintainability.
In other words, client-server architecture is a decentralized arrangement of interconnected computers that allows the splitting of the processing load into separate and distinct process.
Components of the client-server architecture
There are two major components in the Client-Server Architecture; hardware and software.
A. The hardware component consists of:
B. The software component consist of:
Advantages of the client-server architecture
The client/server is an open system. The advantages of this environment include:
Interoperability |
All components (client/network/server) work together |
Scalability |
Any or all components may be replaced as needs increase. |
Adaptability |
New technology can (multimedia, broad band network) may be incorporated into the system. |
Accessibility |
Data may be accessed from WANs and multiple client applications. |
Security |
Data security is centralized on the server. |
Performance |
Performance is optimized by hardware and process |
Disadvantage of a client-server architecture
Expense |
Requires initial investment in dedicated server. |
Maintenance |
Large network will require a staff to ensure efficient operation. |
Dependence |
All operations will cease across the network when the server goes down. |
Examples of client-server architecture
Two-tier architecture
The two-tier architecture contains two computers - the client and the server. Presentation is handled exclusively by the client, processing is split between client and server and data is stored and accessed through the server.
Three-tier architecture
Three-tier architecture is divided into three layers - the presentation layer, the functionality layer and the data layer. Each of these layers must be logically separated. The three-tier attempts to overcome the limitation of the two-tier scheme by separating presentation, processing and data into different entities. A call is made to the middle-tier when the presentation client requires data access. This tier performs calculations or makes request as a client to additional servers.