Client Server Software Architecture

Client Server Software Architecture

In this article, we give you some information on client server architecture, how it works, and the different types of client server architecture.
Techspirited Staff
Internet Client Server Architecture
In reference to personal computers on a network, the term client/server was first used in the 1980s. In the late 1980s, the actual client/server model started gaining acceptance. The client/server software architecture is a message based, versatile, and modular communications that is intended to improve flexibility, usability, interoperability, and scalability as compared to centralized, mainframe, time-sharing computing.

Client/server architecture illustrates the relationship between two computer programs, in which one program is a client, which makes a service request to another program called the server. The server provides service to the request. A single machine can be act as both, a client as well as a server, depending on the software configuration. Although the client/server architecture can be used within a single computer by programs, it is a more important idea in a network. In a network, the client/server architecture allows an efficient way to interconnect programs that are distributed efficiently across different locations. The common use of the client/server model is in computer transactions. For example, if you have to check a bank account from your computer, you have to send a request to a server program at the bank. That program processes the request and forwards it to its own client program that sends a request to a database server at another bank computer to retrieve the client balance information. The balance is sent back to the bank data client, which in turn serves it back to your personal computer, which displays the information of balance on your computer.

File-sharing Architecture
Previously PC networks were based on file-sharing architectures, where the server is used to download files from the shared location to the desktop environment. The client job is then run in the desktop environment. This architecture works only if shared usage is low, update contention is low, and the volume of data to be transferred is low. In the 1990s, PC LAN (local area network) computing changed because the capacity of file sharing was overwrought as the number of online user grew.

As a result of these limitations of file-sharing architectures, the client/server architecture emerged.

Client/server Architecture
This approach introduced replacement of file server by a database server. User queries could be answered directly using a relational database management system. The client/server architecture significantly decreased network traffic by providing a query response rather than total file transfer. It allows multi-user updating through a GUI front end to a shared database. Remote Procedure Calls (RPCs) or standard query language (SQL) statements are typically used to communicate between the client and server.

The following are the examples of client/server architectures.

1) Two-tier Architectures
In two-tier client/server architectures, the user interface is placed at user's desktop environment and the database management system services are usually in a server that is a more powerful machine that provides services to the many clients. Information processing is split between the user system interface environment and the database management server environment. The database management server supports stored procedures and triggers. Software vendors provide tools to simplify development of applications for the two-tier client/server architecture.

2) Three-tier architectures
The three-tier architecture was introduced to overcome the drawbacks of the two-tier architecture. In the three-tier architecture, a middleware is used between the user system interface client environment and the database management server environment. These middleware are implemented in a variety of ways, such as transaction processing monitors, message servers, or application servers. The middleware perform the function of queuing, application, execution, and database staging. In addition, the middleware adds scheduling and prioritization for work in progress. The three-tier client/server architecture is used to improve performance for large number of users, and also improves flexibility when compared to the two-tier approach. The drawback of three-tier architecture is that the development environment is more difficult to use than the development of two-tier applications.

i) Three-tier With Message Server
In this architecture, messages are processed and prioritized asynchronously. Messages have headers that include priority information, address, and identification number. The message server links to the relational DBMS and other data sources. Messaging systems are alternative for wireless infrastructures.

ii) Three-tier With an Application Server
This architecture allows the main body of an application to run on a shared host rather than in the user system interface client environment. The application server shares business logic, computations, and a data retrieval engine. In this architecture applications are more scalable and installation costs are less on a single server than maintaining each on a desktop client.

Uses
Client/server architectures are used in industry as well as in military. They provide a versatile architecture that allows insertion of new technology more readily than earlier software designs.