CLIENT SERVER ARCHITECTURE

 


Client Server Architecture


What Is Client Server Architecture ?


Client/server architecture is a computing model in which the server hosts, delivers and manages most of the resources and services to be consumed by the client. This type of architecture has one or more client computers connected to a central server over a network or internet connection. This system shares computing resources.

Client/server architecture is also known as a networking computing model or client/server network because all the requests and services are delivered over a network.

CLIENT


CLIENTS are personal computers or workstations. 

• The applications and tools run on one or more client machines. 

• The client computer is called front-end . Front-end: consists of tools such as forms, report-writers, and graphical user interface facilities.

• The client machines provide the user with the interface to utilize these servers,as well as with local processing power to run the local applications. 

• The interface between the front-end and the back-end is through SQL or through an application program interface.

SERVER


 • The SERVERS are provided with specific functionalities. Server is a large workstation,miniframe or mainframe computer system. 

• The DBMS software resides on the server .The server computer is called backend computer. Back-end: manages access structures, query evaluation and optimization, concurrency control and recovery. 

• For example :- number of PC’s or small workstation as clients can connect to a file server that maintains the files of the client machines.


Advantages of Client Server Architecture


Simplicity and modularity – Client and server components are loosely coupled and therefore modular. 

• These are easy to understand and develop. 

• Flexibility – Both client and server software can be easily migrated across different machines in case some machine becomes unavailable or crashes. 

• The client can access the service anywhere. Also, clients and servers can be added incrementally. 

• Concurrency – The processing is naturally divided across several machines. Clients and servers reside in different machines which can operate in parallel and thus processing becomes faster.


Disadvantages of client-server

Security – In a monolithic application, implementation of security is very easy. But in a client-server based development a lot of flexibility is provided and a client can connect from anywhere. This makes it easy for hackers to break into the system. 

Servers can be bottlenecks – Servers can turn out to be bottlenecks because many clients might try to connect to a server at the same time. This problem arises due to the flexibility given that any client can connect anytime required. 

Compatibility – Clients and servers may not be compatible to each other., they may not be compatible with respect to data types, language, etc. 

Inconsistency – Replication of servers is a problem as it can make data inconsistent.




Types Of Client –Server Architecture 




Two tier architecture


Two tier architecture is similar to a basic client-server model. The application at the client end directly communicates with the database at the server side. 

API’s like ODBC,JDBC are used for this interaction. ODBC provides an API ,which allows client side programs to call the DBMS. Most DBMS vendors provide ODBC drivers for their systems. 

The server side is responsible for providing query processing and transaction management functionalities. On the client side, the user interfaces and application programs are run. 

The application on the client side establishes a connection with the server side in order to communicate with the DBMS. 



Two tier architecture



                                        Figure - Two tier architecture



Data-intensive business applications consist of four major components: the database, the transaction logic, the business and data application logic, and the user interface. 

The traditional two-tier client–server architecture provides a very basic separation of these components. The client (tier 1) is primarily responsible for the presentation of data to the user, and the server (tier 2) is primarily responsible for supplying data services to the client .


Advantages: 

1. Easy to maintain and modification is bit easy. 

2. Communication is faster. 


Disadvantages: 

1. In two tier architecture application performance will be degrade upon increasing the users. 

2. Cost-ineffective.

Three Tier architecture


In this type, there is another layer between the client and the server. The client does not directly communicate with the server. Instead, it interacts with an application server which further communicates with the database system and then the query processing and transaction management takes place. 

This intermediate layer acts as a medium for exchange of partially processed data between server and client. 

This type of architecture is used in case of large web applications. 

• It is an extension of the 2-tier architecture. 

• In the 2-tier architecture, we have an application layer which can be accessed programmatically to perform various operations on the DBMS. 

• The application generally understands the Database Access Language and processes end users requests to the DBMS. 

• In 3-tier architecture, an additional Presentation or GUI Layer is added, which provides a graphical user interface for the End user to interact with the DBMS. 

• For the end user, the GUI layer is the Database System, and the end user has no idea about the application layer and the DBMS system.


Three Tier architecture


               
                                      Figure - Three Tier architecture



Three layers in the three tier architecture are as follows:


• Client layer 
• Business layer 
• Data layer



 • Client layer

Represents Web browser, a Java or other application, Applet, WAP phone etc. The client tier makes requests to the Web server who will be serving the request by either returning static content if it is present in the Web server or forwards the request to either Servlet or JSP in the application server for either static or dynamic content. 

• Business layer

This layer provides the business services. This tier contains the business logic and the business data. All the business logic like validation of data, calculations, data insertion etc. Are centralized into this tier as opposed to 2-tier systems where the business logic is scattered between the front end and the backend. 

The benefit of having a centralized business tier is that same business logic can support different types of clients like browser, WAP (Wireless Application Protocol) client, other standalone applications written in Java, C++, C# etc. This acts as an interface between Client layer and Data Access Layer. This layer is also called the intermediary layer helps to make communication faster between client and data layer.

Data layer

This layer is the external resource such as a database, ERP system, Mainframe system etc. responsible for storing the data. This tier is also known as Data Tier. 

Data Access Layer contains methods to connect with database or other data source and to perform insert, update, delete, get data from data source based on our input data. Following diagram representing the 3-tier architecture.


Advantages


• Enhanced scalability due to distributed deployment of application servers. Now,individual connections need not be made between client and server. 

• Data Integrity is maintained. Since there is a middle layer between client and server, data corruption can be avoided/removed. 

• Security is improved. This type of model prevents direct interaction of the client with the server thereby reducing access to unauthorized data. 



Disadvantages



Increased complexity of implementation and communication. It becomes difficult for this sort of interaction to take place due to presence of middle layers.


Comments

Popular posts from this blog

Limitations of the File-Based Approach

The Three-Level ANSI-SPARC Architecture

Roles of DA , DBA , Database Designer , Application Developers and Users