What is Client Server Architecture
Client Server Architecture is a producer / consumer computing architecture where the server acts as the producer and the client as a consumer. The server houses and provides high-end, computing-intensive services to the client on demand. These services can include application access, storage, file sharing, printer access and direct access to the server’s raw computing power.
Client Server Architecture works when the client computer sends a resource or process request to the server over the network connection, which is then processed and delivered to the client. A server computer can manage several clients simultaneously, whereas one client can be connected to several servers at a time, each providing a different set of services. In its simplest form, the internet is also based on Client Server Architecture where web servers serve many simultaneous users with website data.
Components of Client Server Architecture
There are various components of Client Server Architecture. Here is Follows –
- Network Devices
- Other components like scanner, printer, etc can also be connected to network architecture.
A client is the requestor or receiving end of a service in a client server architecture of a system.
Types of Client
There are mostly following types of clients:
- Thick Clients
- Thin Clients
- Thick Client
A thick client also known as Fat, Rich or Heavy client is one of the component of client server architecture connected to the server through a network connection and does not consume any of the server’s computer resources to execute applications.
- Thin Client
A thin client also known as Lean, Zero or Slim Client is a computer or computer program that depends heavily on some other computer (server) to fulfill its computational roles.
A server is the sender end of a service in client server architecture of a system. A server is one or more multi-user processors with share memory providing computing, connectivity and the database services and the interface related to the business need.
Types of Servers
There are two types of servers:
- Iterative server
- Concurrent server
This is the simplest form of a server where a server process serves one client and after completing first request then it takes request from another client. Meanwhile another client keeps waiting.
Advantages of Iterative Server
- Easy to build
Limitations Iterative Server
- Handles single request at a time
- Unnecessary delay
This type of server runs multiple concurrent processes to serve many requests at a time. Because one process may take longer and another client cannot wait for so long.
Advantages of Concurrent Server
- Handles multiple requests at a time
- Better performance
Limitations of Concurrent Server
- Difficult to design and build
They connect the clients and servers, and at the same time ensure proper collision free routing of information.
Definition of 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.
Types of Client Server Architecture
There are various types of client server architecture which are described as below:
- Two Tier Architecture
- Three Tier Architecture
The Two Tier Architecture
In this type of architecture, the workload is divided between the server (host of the system) and the client (which hosts the user interface).
In reality these are located on separate computers but there is no absolute requirement of this, providing that the tiers are logically separated can be hosted (e.g. development and testing) on the same computer.
Advantages of Two Tier Architecture
These are various advantages of two tier architecture
- Ease in Developing Applications: Applications can easily be developed due to simplicity.
- User Satisfaction: Maximum user satisfaction is gained with accurate and fast prototyping of applications through robust tools.
- Applicable for Homogeneous Environment: Since this contains static business rules it is more applicable for homogeneous environment.
- High Performance: Database server and business logic is physically close, which offers higher performance.
Limitations of Two Tier Architecture
These are various limitations of two tier architecture
The two tier architecture proved to be a good solution when user population work is usually small but it rapidly proved to have a number of limitations:
- Performance: Performance begins to deteriorate as the population grows. This is due to the reason that each user has its own connection and the server has to keep all these connections live even when no work is being done.
- Security: Each user must have their own individual access to the database, and be granted whatever rights may be required in order to run the application.
- Capability: Independent of the type of client, much of the data processing has to be located in database making it totally dependent upon the capabilities and implementation provided by the database manufacturer. This limits the application functionality.
- Portability: As the two-tier architecture is dependent upon the specific database implementation, porting an existing application to a different dbms becomes a major issue.
The 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.
The three-tiers in three-tier architecture are
There are mainly three tiers in the three tier architecture. Here is Follows –
- Presentation Tier: Occupies the top level and displays information related to service available on a website. This tier communicates with other tiers by sending results to the browser and other tiers in the network.
- Application Tier: Also called the middle tier, logic tier or business logic, this tier is pulled from the presentation tier. It controls application functionality by performing detailed processing.
- Data Tier: Houses database server where information is stored and retrieved. Data in this tier is kept independent of application servers or business logic.
Advantages of Three Tier Architecture
These are various advantages of three tier architecture ,
- Improved Data Integrity: Data corruption through client application can be eliminated as the data passes through the middle tier for updating database ensures its validity.
- Enhanced Security: The placement of business logic on a centralized server makes the data more secure. Data security is enhanced on service by service basis as the client does not interact with database directly.
- Hidden Database Structure: The actual structure of database often remains hidden from clients enabling any change in the database to be hidden.
Limitations of Three Tier Architecture
These are various limitations of three tier architecture ,
- Complexity of Communication: Usually more efforts should be ensured when creating 3-tier applications as the communication points are increased (client to middle tier to server) and the performance increased by tools like Visual Basics, Power Builder etc.
- n-Tiers Architecture: Often referred as Multitier Architecture. It is client server architecture in which presentation, application processing, and data management functions are physically separated. It is an expanded form of three tier architecture.
Advantages of Client Server Architecture
These are various advantages of Client Server Architecture. Here is Follows –
- Improved Data Sharing
Data is retained by usual business processes and manipulated on a server is available for designated users (clients) over an authorized access.
- Integration of Services
Every client is given the opportunity to access corporate information via desktop interface eliminating the necessity to log into a terminal mode or processor.
- Shared Resources Amongst Different Platforms
Application used for client-server model is built regardless of the hardware platform or technical background of the entitled software (operating system software) providing an open computing environment, enforcing users to obtain the services of clients and servers (database, application and communication services)
- Data Processing Capability despite the Location
Client-server users can directly log into a system despite of the location or technology of the processors.
- Easy Maintenance
Client Server Architecture is distributed model representing dispersed responsibilities among independent computers integrated across a network. Therefore, it’s easy to replace, repair, upgrade and relocate a server while client remains unaffected. This unaware change is called as Encapsulation.
Servers have better control access and resources to ensure that only authorized clients can access or manipulate data and server updates are administered effectively.
Disadvantages of Client Server Architecture
These are various disadvantages of client server architecture. Here is Follows –
- Overloaded Servers
When there are frequent simultaneous client requests, server severely get overloaded, forming traffic congestion.
- Impact of Centralized Architecture
Since it is centralized, if a critical server failed, client requests are not accomplished. Therefore, client-server lacks the robustness of a good network.
So , it was all about What is Client Server Architecture ? , We hope you understand everything well. If you have still any questions or doubts related with What is Client Server Architecture ? then you can freely ask us in the comment box below.