History

  • The concept of Client-server model was started from 1960s.
  • ARPANET is considered as the first client-server model.

Introduction

  • Client server architecture is also known as “Client-Server Model”.
  • It works according to a request and response method.

Definition

  • Client-Server architecture is a system where one computer (or more) is/are acting as client computer and another one is behaving/serves requested services which preferably of high configuration.
  • Client-server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service(servers)and service requesters(clients).
  • Client and Servers are nothing but computer programs, which generally run on different machines/computers.
  • The Client Server Model is an architecture of computer network where client and server interact by means of a computer network where Client gathers data from the user as input and sends request to the server. Server processes the request and sends back the requested information to the client. 

Features

  • When the connection or link is established between a client and server, both client and server could exchange any information with each other.
  • Clients and servers may reside in the same machine or they typically reside in separate pieces of hardware/machine and communicate over a computer network.
  • This model follows all rules of common communication protocols. 
  • Mostly clients and servers communicate through a computer network on separate hardware, but both client and server may reside in the same system.
  • A server machine is a host that runs one or more server programs which share their resource with clients. A client does not share any of its resources, but requests a server function or service.
  • In client/server architecture, the tasks or workloads are divided as: server programs which are providers of a resource or service and client programs are requester of resource or service.
  • The application or business logic in client server applications may reside on the server (fat server – thin client) or on the client (fat client – thin server).
  • A server or host runs one or more server programs, which share these resources with multiple clients. A client usually does not share any of its resources, but it requests services from a server. Thus, clients, therefore, initiate communication sessions with servers for response.
  • Example : The concept of client-server model is used in internet, intranet, WWW, Email, network printing etc.

Components

Client

    • Client is a node computer that establishes connection with the server, collects data from the user, sends it to the server, receives information from the server and presents it to the user.
    • Mostly found in a computer network.
    • Client is defined as requester of resources or services.
    • Clients are normally multiple in numbers in a network.
    • When client’s request for the server is over then work is done from client side.
    • Clients initiate a communication session with the server.
    • When client wants some information or perform some task with server it has to contact the server.
    • Client may exist either on same computer in which server is present or in  different computer i.e. each on separate computer.
    • Client usually sends a request across the network to the server using server’s network address which client already know before contacting.
    • Client computer contains several required application programs called commonly called Client Programs. 
    • Client program is invoked directly by a user, and executes only for one session.
    • Client programs are usually application programs present in a client computer.
    • Client program can access multiple services as needed, but actively contacts one remote server at a time.
    • Client program does not require special hardware or sophisticated operating system.

Server

    • Server is a highly configured(hardware) powerful computer with specialised software that serves various requests/queries from the one or more clients.
    • The programs which respond to the request of clients are known as server applications.
    • The computer designed to run server application is known as server machine.
    • There are several types of Server(on the basis of their functions and structures) thesedays such as Web server, Database server, Mail server, File Server, Print Server, Multimedia Server etc.
    • Server is defined as provider of resources or services.
    • Servers are normally single or few in numbers.
    • The server program fulfills the client request.
    • Server is a computer program which is always running and waiting to serve clients.
    • A server is a program that is waiting for client so that it can do something for the clients.
    • It runs on a single server computer or shared server computer.
    • Server welcomes the client (if free) as the client contacts it. After contacting the server, the server welcomes that client (if free), the client informs about its own address to servers so that server can reply the client also.
    • A server is a process that is able to carry out some functions or services, like transferring files, translating host names to IP addresses, or any other task like finding inverse of a matrix.
    • Server program is a special-purpose program dedicated to provide generally one service, but server program can handle multiple remote clients at the same time.

Architecture

  • The architecture of the client/ server system may be two-tiered, three-tiered or n-tiered.

    [A] Two-tiered architecture:

  • This architecture consists of two tier. At one end/tier there is commonly database server and at the other end/tier there is the GUI based client applications.
  • Here, the clients query for the database over the network and only the relevant data is supplied to the client.
  • This architecture basically introduced a database server to replace the file server. 
  • This lack of scalability (Ability of a system to support increased demands of work, usage or service levels almost instantly, without any
    change and with no significant drop in cost effectiveness or quality of service) 
    and flexibility gave rise to 3-tiered and n-tiered architectures.

[B.] Three-tiered architecture:

  • It is an advanced form of two-tiered architecture.
  • It is a new generation of client/server implementation in which a middle tier is exists in between client and server. The 3-tier architecture attempts to overcome some of the limitations of 2-tier schemes by separating presentation (user interface), processing (business functionality) and data into separate distinct entities.
  • This architecture leads to enhanced network performance and improved extensibility of business systems.
  • Disadvantages:
    • The three-tier methodology lacks some critical features such as reusability (Ability of a computer program to be used repeatedly
      with little or no modifications in many different applications) of application logic code and scalability. There may arise a situation whereby a collection of application logic code can not be reused and also they do not communicate with one another. Thus, there came a need for a viable architecture that mainly facilitates reusability of business logic as reusability phenomena has been found to reduce the cost of software development and the time to market and its quality is assured.

[C] N-tiered architecture: 

  • It is extended form of the 3-tier architecture.
  • In this architecture, the middle tier provides connections to various types of services, integrating and coupling them to the client, and to each other.
  • Here, the application logic is divided among various hosts which thus also create an N-tiered system.
  • Advantages :
    • It supports reusability using encapsulation of distributed functionality in such a manner provides significant advantages. Reusability ultimately leads into reliability (Ability of a computer program to perform its intended functions and operations for the specified period of time, in the specified system‘s environment, without experiencing any failure).

Examples

  • Railway reservation system, Online Banking system, Online Gaming system etc. are examples of client-server model.

Advantages

  • Client Server architecture has centralized controlling system where all data is stored and controlled from a single place. Since, all the files are stored in the central server, it is rather easy to manage files.
  • Users/clients are able to access all data anytime and anywhere from server without any place boundation.
  • This model has cost efficient body hence requires less maintenance cost.
  • The capacity of the Client and Servers can be modify separately as per need.

Disadvantages

  • The primary disadvantage of this model is the traffic congestion i.e. when too many clients make request from the same server, it will result in crashes or slowing down of the connection. 
  • This architecture requires a specialized network operating system for the server.
  • The server is pricey to buy.
  • Specialist personnel such as a network manager are required
  • A lot of damage will occur if some part or server of the network fails.
  • The server set up cost is high.
  • Skillful operator/person is required to operate this architecture.
  • The maintenance of a large no. of applications on clients & server becomes difficult with more users.

Use/Application

  • The popular client-server applications are email, the World Wide Web, and network printing.
  • Client–server networking concept is used for web services, game hosting, and for private networks used in organizations.

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.