Thursday, 13 June 2013

Client Server Architecture

The term Architecture in IT generally refers to Client Server Architecture. A client is defined as a requester of services and a server is defined as the provider of services. A single machine can be both a client and a server depending on the software configuration. There are different types of Client-Server Architecture available. Some of them are 2-tier architecture, 3-tier architecture, 4-tier architecture and n tier architecture.

2-tier architecture
In 2-tier architecture, the application logic is either buried inside the User Interface on the client or within the database on the sever (or both). With two tier client/server architectures, the user system interface is usually located in the user’s desktop environment and the database management services are usually in a server that is a more powerful machine that services many clients. Processing management is split between the user system interface environment and the database management server environment. The database management server provides stored procedures and triggers.

3-tier architecture
In 3-tier, the application logic or process lives in the middle-tier, it is separated from the data and the user interface. 3-tier systems are more scalable, robust, and flexible. In addition, they can integrate data from multiple sources. In the 3-tier architecture, a middle tier was added between the user system interface client environment and the database management server environment. There are variety of ways of implementing this middle tier, such as transaction processing monitors, message servers, or application servers. The middle tier can perform queuing, application execution, and database staging. For example, if the middle tier provides queuing, the client can deliver its request to the middle layer and disengage because the middle tier will access the data and return the answer tot he client. In addition, the middle layer adds scheduling and prioritization for work in progress. The three tier client/server architecture has been shown to improve performance for groups with a large number of users (in the thousands) and improves flexibility when compared to the two tier approach. Flexibility in partitioning can be a simple as “dragging and dropping” application code modules onto different computers in some three tier architectures. A limitation with three tier architecture is that the development environment is reportedly more difficult to use than the visually oriented development of two tier applications. The most basic type of three tier architecture has a middle layer consisting of Transaction Processing (TP) monitor technology. The TP monitor technology is a type of message queuing, transaction scheduling, and prioritization service where the client connects to the TP monitor (middle tier) instead of the database server. The transaction is accepted by the monitor, which queues it and then takes responsibility for managing it to completion, thus freeing up the client.

4-tier architecture
In a 4-tier architecture, all of the data storage and retrieval processes are logically and usually physically located on a single tier. A 4-tier architecture allows an unlimited number of programs to run simultaneously, send information to one another, use different  protocols to communicate, and interact concurrently. This allows for a much more powerful application, providing many different services to many different clients. In this application  we will have following four tiers
1. Business Object [BO]
2. Business Access Layer [BAL]
3. Data Access Layer [DAL]
4. UI (4-tier) folder [UI]

These are some of the advantages of three tier architecture:
  • it is easier to modify or replace any tier without affecting the other tier
  • separating the application and database functionality means better load balancing
  • adequate security policies can be enforced within the server tiers without hindering the clients.