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.
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.
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
Post a Comment