What is Client Server Architecture?
❉ The Client Server architecture, which is also known as Network Computing model is a shared computer network that allows large applications to be split into smaller tasks and to perform the tasks among server machine (host) and client machine (desktop).
❉ It is defined as a form of distributed computing system since all the components execute their tasks independently without affecting each other.
❉ All the requests and services are delivered over a network or internet connection.
❉ There are 3 main components in Client Server computing.
- Client Process
- Server Process
🔰 It is a process that requests particular services from the server process.
🔰 Client systems have many operations such as;
➣ User Interface Management.
➣ Accepting and checking the syntax of user inputs.
➣ Processing application logic.
➣ Generation of database requests and transmitting them to server.
➣ Passing response back to server.
🔰 A process that supplies services requested by clients.
🔰 Server does operations such as;
➣ Accepting and processing database requests from client.
➣ Authorization checking.
➣ Make sure that integrity constraints are not violated.
➣ Perform necessary queries and transmit responses to clients.
➣ Providing recovery control.
➣ Providing concurrent database access.
🔰 A middleware can be introduced as a software which runs in between client and server processes enabling the communication process.
🔰 It delivers secure and transparent services to the users.
Types of Client Server Architectures
❉ When considering a client/server architecture, the server acts as the producer while the client acts as a consumer.
❉ There are many types of Client Server Architectures. Let us take a deep look at each of them.
🔵 One-tier architecture, which is also known as single-tier architecture is responsible for all client server configuration setting, data logic, UIs and business logic on a single platform.
🔵 Accessing the network while executing is not necessary.
🔵 This can be a better solution for small sites that does not have very high traffic demand which require effective resource utilization.
Ex: Simple desktop applications
Advantages of 1-Tier Architecture
🔺Working fast for a single user
🔺 Handling any network protocols is not needed
🔺 Cost effective
Disadvantages of 1-Tier Architecture
🔻 Unscalable because only one user can access a system at a particular time.
🔻 Security issues as everything is on one machine.
🔵2-Tier Architecture basically consists of two parts namely; a client tier and a server tier. But there is another protocol that bridges the gap between those 2 tiers.
🔵 This architecture is designed in a way where user feedback and validation are allowed to occur on the client side.
🔵 Usually, GUI code exists on the client host while the business logic exists on the server host.
Ex: Web Server
Advantages of 2-Tier Architecture
🔺 Implementation of Homogeneous Environment
🔺 Easy to maintain and modify
🔺 Easy to design applications
🔺 Better user satisfaction
Disadvantages of 2-Tier Architecture
🔻 Error prone
🔻 Time consuming
🔵 There are 3 layers in 3-tier architecture namely;
- Presentation layer (Client Tier)
➣ Input/output and interaction with the user.
➣ It is responsible for deciding how the data should be presented to the user
➣ Basic input validation can still be done here.
2. Application layer (Business Tier)
➣ Control access to data
➣ Responsible for processing
3. Database layer (Data Tier)
➣ Record transaction
➣ Ensure integrity of data.
🔵 When a client machine sends the request to server machine, the middle layer receives the request first, and the server obtains this request at the end. Therefore the response of server is received by middle layer first and then it is obtained by client machine.
🔵 All data logic and business logic are stored on the middleware.
Advantages of 3-Tier Architecture
🔺 3 Tiers provide better service.
🔺 Fast performance.
🔺 Improved Data security.
🔺 Hide database structure.
🔺 Improvement in concurrency.
Disadvantages of 3-Tier Architecture
🔻Complex due to advanced features
🔵 N-Tier Architecture, which is also referred to as Multitier Architecture can be considered as a scaled version of 3-tier architecture.
🔵 In this architecture, entire presentations, application processing, and data management functions are isolated from each other.
Ex: stock-trading system
Advantages of N-Tier Architecture
🔺Delivers the flexible and reusable applications.
🔺 Improved availability
Disadvantages of N-Tier Architecture
🔻 Hard to implement
Examples of Client Server Architecture
🔔 When considering in hardware side, a Web server acts is a high performance computer system that can host multiples websites. When considering in software side, a web server contains many components that control how web users access hosted files.
🔔 There are 2 types of web servers.
- Static Web Server — A static web server consists of a computer with an HTTP server where server sends its hosted files to your browser.
- Dynamic Web Server — It is a static web server along with some additional software where the application server updates the hosted files before sending content to your browser via the HTTP server.
🔔 Sending and receiving all mails are done via Email servers. SMTP, IMAP, and POP3 can be known as some protocols used by Mail servers in order to send and receive emails
🔔 SMTP, that stands for Simple Mail Transfer Protocol helps to transfer electronic mail from one user to another. IMAP and POP3 aids in receiving all messages and handling all incoming mails.
🔔 File servers are known as dedicated systems that enable users to access all files. Its execution is similar to a centralized file storage location and it can be accessed via various terminal systems.
🔔 DNS stands for “Domain Name Server” and it contains a huge database of several types of public IP addresses that link with their hostnames.
🔔 These types of server help to deliver resources such as files, directories, shared devices etc. to client terminals like PCs, smart phones, laptops etc.
Advantages of Client Server Architecture
♻️ Ease of application development
♻️ User friendly
Disadvantages Client Server Architecture
〰️ Maintenance Cost
〰️Can cause network congestion
〰️ Hardware / Software Cost
❉ As the name implies, in monolithic means, composed all in one piece.
❉ Monolithic applications are designed with the purpose of handling multiple related tasks.
❉ They are usually complex applications that are surrounded by various tightly coupled functions.
❉ Components of the Monolithic Architecture include;
🔰 Business logic
🔰 Database layer
🔰 Application integration
🔰 Notification module
Advantages of Monolithic Architecture
♻️ Easy to deploy
♻️ Easy to develop
♻️ Fast to develop
♻️ Easier to test
Disadvantages of Monolithic Architecture
〰️ Not Reusable.
〰️ Harder to scale.
〰️ Difficult to adopt to new and advance technologies.
〰️ Hard to maintain.
Service Oriented Architecture
❉ Service Oriented Architecture is a design ideology was aimed at crossing platform boundaries (Standards, Different frameworks, different platforms) and Crossing trust boundaries such as exposure to the Internet and interacting with other organizations’ systems.
❉ It breaks an application down into a set of loosely coupled, highly-interoperable, interacting services.
❉ Principles used in Service Oriented Architecture include;
🔰 Loose Coupling: client can discover server’s supported protocols/formats and negotiate communication semantics.
🔰 Autonomous: runs independently of other services
🔰 Standards-based: interoperability among SOA services
🔰 Contract-based: ie: uses interfaces
🔰 Fine-grained: services should be small (higher cohesion)
🔰 Encapsulation: information hiding
🔰 Stateless: no ongoing commitment between client & service (this one causes issues)
Advantages of Service Oriented Architecture
♻️ Easy maintenance
♻️ Improved quality of code
♻️ Platform independent
♻️ Use of independent services
♻️ Configuration Flexibility
Disadvantages of Service Oriented Architecture
〰️ High cost
〰️ Extra Overloading
〰️ High bandwidth server
❉ A microservices architecture involves development of modular services deployed independently as loosely coupled services, tied together through application integration.
❉ It focuses on decomposing an application into single-function modules with well-defined user interfaces in order to communicate with other available services.
❉ A Microservice possess its own database.
❉ Microservices contains following components;
🔰 Identity Providers
🔰 API Gateway
🔰 Messaging Formats
🔰 Service Discovery
🔰 Static Content
Advantages of Microservices Architecture
♻️ Enables the continuous delivery
♻️ Services can be implemented independently
♻️ Focuses on single business capability
♻️ Easy to be understood by a developer
♻️ Capable of using any type of technologies
♻️ Consistent and available
♻️ Easy Fault isolation
♻️ Permits frequent software releases
Disadvantages of Microservices Architecture
〰️ Testing is difficult
〰️ Hard to track data
〰️ Increased memory consumption
〰️ Inter-service communication mechanism must be implemented by developers.
Structure of a Client Server System
In client server computing, the clients requests a resource and the server provides that resource. A server may serve…
What is Client Server Network? Advantages, Disadvantages, Examples
Definition - Client server network is such model where one side server machine delivers the various services to other…