Name Enrollment No.
Contribution
Ankur Parihar 16114015 1/6
Parvat Yadav 16114043 1/6
Pawan Kumar Bagri 16114044 1/6
Rishikesh Chaudhary 16114054 1/6
Sagar Dhurwe 16114059 1/6
Saurabh Udai 16114061 1/6
Client Server Model
Definition
Client-Server model is a program relationship in which one program (the client) requests
a service or resource from another program (the server).
The client-server model describes how a server provides resources and services to one o
r more clients.
Clients – Send messages to servers requesting a service
Servers – Provide services requested by clients. A client sends a message
requesting service to the server, and the server returns its response in a response
message.
Web technologies and protocols built around the client-server model are:
Hypertext Transfer Protocol (HTTP)
Domain Name System (DNS)
Simple Mail Transfer Protocol (SMTP)
Telnet
Client and server communication process
Clients include Web browsers, chat applications, and email software, among others. Serv
ers include Web, database, application, chat and email, etc. The client establishes a conn
ection to the server over a local area network (LAN) or wide-area network (WAN), such a
s the Internet. When a client requests a connection to a server, the server can either acce
pt or reject the connection. If the connection is accepted, the server establishes and mai
ntains a connection with the client over a specific protocol. For example, an email client
may request an SMTP connection to a mail server in order to send a message. The SMTP
application on the mail server will then request authentication from the client, such as t
he email address and password. If these credentials match an account on the mail server
, the server will send the email to the intended recipient. Once the server has fulfilled the
client's request, the connection is terminated.
Features
1) Centralization: Unlike P2P, where there is no central administration, here in this archit
ecture there is a centralized control. Servers help in administering the whole set-up. Acc
ess rights and resource allocation is done by Servers.
2) Proper Management: All the files are stored at the same place. In this way, managem
ent of files becomes easy. Also it becomes easier to find files.
3) Back-up and Recovery possible: As all the data is stored on server. It is easy to make a
back-up of it. Also, in case of some break-down if data is lost, it can be recovered easily
and efficiently.
4) Upgradation and Scalability in Client-server set-up: Changes can be made easily by ju
st upgrading the server. Also new resources and systems can be added by making neces
sary changes in server.
5) Accessibility: From various platforms in the network, server can be accessed remotely.
6) Memory utilization: As new information is uploaded in database each workstation ne
ed not have its own storage capacities increased. All the changes are made only in centr
al computer on which server database exists.
7) Security: Rules defining security and access rights can be defined at the time of set-u
p of server.
Challenges in client server model
1) Congestion in Network: Too many requests from the clients may lead to congestion.
Overload can lead to breaking-down of servers.
2) Server failure: Client-Server architecture is not as robust as a P2P and if the server fail
s, the whole network goes down. Also, if you are downloading a file from server and it g
ets abandoned due to some error, download stops altogether.
3) Cost: It is very expensive to install and manage this type of computing.
4) Maintenance: Need professional IT people to maintain the servers and other technical
details of network.
Distributed Computing
Definition
According to Tanenbaum, Van Steen editors of the book “Distributed Systems-Principle
s and Paradigm”, a distributed computing is defined as “A distributed system is a collecti
on of independent computers that appears to its users as a single coherent system”
Distributed Computing can be defined as the use of a distributed system to solve a singl
e large problem by breaking it down into several tasks where each task is computed in t
he individual computers of the distributed system. A distributed system consists of more
than one self-directed computer that communicates through a network. All the comput
ers connected in a network communicate with each other to attain a common goal by m
aking use of their own local memory. The ultimate goal of distributed computing is to m
aximize performance by connecting users and IT resources in a cost-effective, transpare
nt and reliable manner. It also ensures fault tolerance and enables resource accessibility i
n the event that one of the components fails.
Distributed Computing System Examples
Telecommunication networks:
telephone networks and cellular networks,
computer networks such as the Internet,
wireless sensor networks,
routing algorithms;
Network applications:
World Wide Web and peer-to-peer networks,
massively multiplayer online games and virtual reality communities,
distributed databases and distributed database management systems,
network file systems,
distributed information processing systems such as banking systems and airline
reservation systems;
Real-time process control:
aircraft control systems,
industrial control systems;
Parallel computation:
scientific computing, including cluster computing and grid computing and various
volunteer computing projects (see the list of distributed computing projects),
distributed rendering in computer graphics
Architectures
Various hardware and software architectures are used for distributed computing. At a lo
wer level, it is necessary to interconnect multiple CPUs with some sort of network, regar
dless of whether that network is printed onto a circuit board or made up of loosely coup
led devices and cables. At a higher level, it is necessary to interconnect processes runnin
g on those CPUs with some sort of communication system.
Client–server: Architectures where smart clients contact the server for data then
format and display it to the users. Input at the client is committed back to the
server when it represents a permanent change.
Three-tier: Architectures that move the client intelligence to a middle tier so that
stateless clients can be used. This simplifies application deployment. Most web
applications are three-tier.
N-tier: Architectures that refer typically to web applications which further forward
their requests to other enterprise services. This type of application is the one
most responsible for the success of application servers.
Peer-to-peer: Architectures where there are no special machines that provide a
service or manage the network resources. Instead all responsibilities are uniformly
divided among all machines, known as peers. Peers can serve both as clients and
as servers.
Challenges in distributed computing
1. Transparency:
Transparency is defined as the concealment from the user and the application program
mer of the separation of components in a distributed system, so that the system is perce
ived as a whole rather than as a collection of independent components. In other words,
distributed systems designers must hide the complexity of the systems as much as they
can. Some terms of transparency in distributed systems are:
Access - Differences in data representation and how a resource is accessed
Location - Where a resource is located
Migration - Resource may move to another location
Replication - Resource may be copied in several places
Concurrency - Resource may be shared by several competitive users
Failure - The failure and recovery of a resource
2. Openness:
The openness of a computer system is the characteristic that determines whether the sy
stem can be extended and re-implemented in various ways. The openness of distributed
systems is determined primarily by the degree to which new resource-sharing services c
an be added and be made available for use by a variety of client programs. If the well-de
fined interfaces for a system are published, it is easier for developers to add new feature
s or replace sub-systems in the future. Example: Twitter and Facebook have API that allo
ws developers to develop their own software interactively.
3. Concurrency:
Both services and applications provide resources that can be shared by clients in a distri
buted system. There is therefore a possibility that several clients will attempt to access a
shared resource at the same time. For example, a data structure that records bid for an a
uction may be accessed very frequently when it gets close to the deadline time. For an o
bject to be safe in a concurrent environment, its operations must be synchronized in suc
h a way that its data remains consistent. This can be achieved by standard techniques su
ch as semaphores, which are used in most operating systems.
4. Security:
Many of the information resources that are made available and maintained in distribute
d systems have a high intrinsic value to their users. Their security is therefore of consider
able importance. Security for information resources has three components:
Confidentiality – Protection against disclosure to unauthorized individuals
Integrity - Protection against alteration or corruption
Availability for the authorized - protection against interference with the means to
access the resources
6. Scalability:
Distributed systems must be scalable as the number of user increases. The scalability is d
efined by B. Clifford Neumann as
A system is said to be scalable if it can handle the addition of users and resources witho
ut suffering a noticeable loss of performance or increase in administrative complexity
Scalability has 3 dimensions:
Size - Number of users and resources to be processed. Problem associated is
overloading
Geography - Distance between users and resources. Problem associated is
communication reliability
Administration - As the size of distributed systems increases, many of the system
needs to be controlled.
7. Failure Handling:
Computer systems sometimes fail. When faults occur in hardware or software, programs
may produce incorrect results or may stop before they have completed the intended co
mputation. The handling of failures is particularly difficult.
Use of distributed computing as a client server model
Client server model are used in many fields like banking systems, database management
, search engines, online services like word online and pixlr, online shopping websites, airl
ine reservation systems, DNS etc.
Let us explain the banking example
When a bank customer accesses online banking services with a web browser (the client),
the client initiates a request to the bank's web server. The customer's login credentials
may be stored in a database, and the web server accesses the database server as a client
. An application server interprets the returned data by applying the bank's business logic
, and provides the output to the web server. Finally, the web server returns the result to t
he client web browser for display.
In each step of this sequence of client–server message exchanges, a computer processes
a request and returns data. This is the request-response messaging pattern. When all th
e requests are met, the sequence is complete and the web browser presents the data to
the customer.
This example illustrates a design pattern applicable to the client–server model.
Client Client operations
Connect
to Internet Server operation
s
Open
Browser
5
Enter URL Forget
Password
Login SERVER JS DATABASE
P
Account
Inf
o 1
3
Select from
Menu
4
Figure: Client Server Model for an online banking system
/* Bibliography */
https://techterms.com/definition/client-server_model
https://www.techopedia.com/definition/18321/client-server-model
https://en.wikipedia.org/wiki/Client–server_model
https://www.ianswer4u.com/2011/05/client-server-network-advantages-and.html
https://cpsc.yale.edu/research/distributed-computing
https://cpsc.yale.edu/research/distributed-computing
https://whatis.techtarget.com/definition/distributed-computing
www.iosrjournals.org/iosr-jce/papers/Vol16-issue2/Version-10/E0162102831.pdf
https://en.wikipedia.org/wiki/Distributed_computing
www.ejbtutorial.com/distributed-systems/challenges-for-a-distributed-system
http://digital-smart.net/kiosk_software.html