Client Server Systems
Client Server Systems
Client Server Systems
1.0 INTRODUCTION
1.1 General Information
Client - A client is a single-user workstation that provides presentation services and the appropriate
computing, connectivity and the database services and the interfaces relevant to the business
need.
Server - A server is one or more multi-user processors with share memory providing computing,
connectivity and the database services and the interfaces relevant to the business need.
Client-server is a software architecture model consisting of two parts, client systems and server
systems, both communicating over a computer network or on the same computer.
Often clients and servers communicate over a computer network on separate hardware, but both
client and server may reside in the same system. When both the client process and server process
are running on the same computer, this is called a single seat setup.
The essence of client-server computing is that two kinds of processes (units of program code) that
are specialized for different tasks, running on possibly different hardware, applications software
and operating systems co-operate to solve a computing problem. One kind (a client) makes a
request of another. The other kind (a server) performs the service requested (if the request is a
valid one).
A client-server application is a distributed system made up of both client and server software.Client
server application provide a better way to share the workload.Therefore, the clientserver model of
computing is a distributed application structure that partitions tasks or workloads between the
providers of a resource or service, called servers, and service requesters, called clients.
The client process always initiates a connection to the server, while the server process always
waits for requests from any client.
The client-server relationship describes the relation between the client and how it makes a service
request to the server, and how the server can accept these requests, process them, and return the
requested information to the client.
The interaction between client and server is often described using sequence diagrams. Sequence
diagrams are standardized in the Unified Modeling Language.
The basic type of client-server architecture employs only two types of hosts: clients and servers.
This type of architecture is sometimes referred to as two-tier.
The two-tier architecture means that the client acts as one tier and server process acts as the other
tier.
The client-server architecture has become one of the basic models of network computing.
Many types of applications have been written using the client-server model.
A server host runs one or more server programs which share their resources with clients.
A client does not share any of its resources, but requests a server's content or service function.
Clients therefore initiate communication sessions with servers which await incoming requests.
Many applications have been constructed to operate in client-server mode.
For example, most Internet-based servicesnews readers, E-mail, the World-Wide-Webhave
been designed this way.
Examples of computer applications that use the clientserver model are Email, network printing,
and the World Wide Web
For example, a web browser is a client program at the user computer that may access information
at any web server in the world.
Servers are classified by the services they provide.
For instance, a web server serves web pages and a file server serves computer files.
A shared resource may be any of the server computer's software and electronic components, from
programs and data to processors and storage devices.
The sharing of resources of a server constitute a service.
Whether a computer is a client, a server, or both, is determined by the nature of the application that
requires the service functions. For example, a single computer can run web server and file server
software at the same time to serve different data to clients making different kinds of requests.
Client software can also communicate with server software within the same computer.
Communication between servers, such as to synchronize data, is sometimes called inter-server or
server-to-server communication.
In most cases, the machine on which the server is a powerful machine that resides remotely, while
the client machine sits locally on the users desktop, but this is sometimes reversed.
Often, but not always, you have a situation where several clients are connected to a single server.
However, in the field of databases, a local machine may be connected to several remote databases
in client-server mode, with each application running in a separate window. Therefore a more usual
situation is multiple clients, multiple servers.
The client/server software architecture is a versatile, message-based and modular infrastructure
that is intended to improve usability, flexibility, interoperability, and scalability.
2.0 Clients characteristics
4.0 Advantages
1.
2.
All the data is stored on the servers, which generally have better security controls than
most clients. Servers can better control access and resources, to guarantee that only
those clients with the appropriate permissions may access and change data.
3.
Since data storage is centralized, updates to that data are much easier to administrators
than what would be possible under a P2P architecture. Under a P2P architecture, data
updates may need to be distributed and applied to each "peer" in the network, which is
both time-consuming and error-prone, as there can be thousands or even millions of
peers.
4.
Many advanced client-server technologies are already available which were designed to
ensure security, user friendly interfaces, and ease of use.
5.
5.0 Disadvantages
1.
Networks traffic blocking is one of the problems related to the client-server model. As the
number of simultaneous client requests to a given server increases, the server can
become overloaded. Contrast that to a P2P network, where its bandwidth actually
increases as more nodes are added, since the P2P network's overall bandwidth can be
roughly computed as the sum of the bandwidths of every node in that network.
2.
Comparing client-server model to the P2P model, if one server fail, clients requests
cannot be served but in case of P2P networks, servers are usually distributed among
many nodes. Even if one or more nodes fail, for example if a node failed to download a file
the remaining nodes should still have the data needed to complete the download.
6.0 Examples
Specific types of clients include: web browsers, E-mail clients, and online chat clients.
Specific types of servers include: web servers, FTP servers, database servers, E-mail servers, file
servers, print servers. Most web services are also types of servers.
8.0 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 the client web browser for display.
In each step of this sequence of clientserver message exchanges, a computer processes a
request and returns data.
This is the request-response messaging pattern.
When all the 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 clientserver model: separation of
concerns.
Each host or application instance can simultaneously act as both a client and a server
(unlike centralized servers of the client-server model) and because each has equivalent
responsibilities and status.
Peer-to-peer architectures are often abbreviated using the acronym P2P.
Both client-server and P2P architectures are in wide usage today.
Modern Client/Server Architecture
Mainframe
Terminals
Network
Minicomputers
Workstations
Server
Shared Resources: A server can service many clients at the same time and regulate their
access to shared resources.
3.
4.
Transparency of location: The server is a process that can reside on the same machine
as the client or on a different machine across a network. Client/Server software usually
masks the location of the server from the clients by the redirecting the service calls when
needed. A program can be a client, a server, or both.
5.
6.
Message-based exchanges: Clients and servers are loosely coupled systems that
interact through a message-passing mechanism. The message is the delivery mechanism
for the service request and replies.
7.
8.
9.
Integrity: The server code and server data is centrally managed, which results in cheaper
maintenance and the guarding of shared data integrity. At the same time, the clients
remain personal and independent.
Three-tier
client links to the application server which then initiates a second connection to the
database server
13.0
REFERENCES
Rulifson, Jeff (June 1969). DEL. IETF. RFC 5.https://tools.ietf.org/html/rfc5. Retrieved 30 November 2013.
Shapiro, Elmer B. (March 1969). Network Timetable. IETF. RFC 4. https://tools.ietf.org/html/rfc4. Retrieved
30 November 2013.
Sturgis, Howard E.; Mitchell, James George; Israel, Jay E. (1978). Xerox PARC. Missing or empty |title=
(help); |chapter= ignored (help)
Harper, Douglas. "server". Online Etymology Dictionary. Retrieved 30 November 2013.
"Separating data from function in a distributed file system". GetInfo. German National Library of Science and
Technology. Retrieved 29 November 2013.
Nieh, Jason; Novik, Naomi; Yang, S. Jae (Deccmu.edu/~dga/papers/tolia06-ieee.pdf). "A Comparison of
Thin-Client Computing Architectures". Technical Report CUCS-022-00 (PDF) (New York: Network Computing
Laboratory, Columbia University).