Client Server Systems

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

Client-Server Systems

Gheethu Maria Joy


School of Management Studies
CUSAT, Kochi 22
MBA FT
E-mail:[email protected]
Abstract: 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 cooperate 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.
Key Words: Client, server, distributed system, request, response

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

Always initiates requests to servers.


Waits for replies.
Receives replies.
Usually connects to a small number of servers at one time.
Usually interacts directly with end-users using any user interface such as graphical user
interface.

3.0 Server characteristics

Always wait for a request from one of the clients.


Serve clients requests then replies with requested data to the clients.
A server may communicate with other servers in order to serve a client request.
If additional information is required to process a request (or security is implemented), a
server may request additional data (passwords) from a client before processing a request.
End users typically do not interact directly with a server, but use a client.

4.0 Advantages
1.

In most cases, a client-server architecture enables the roles and responsibilities of a


computing system to be distributed among several independent computers that are known
to each other only through a network, so one of advantages of this model is greater ease
of maintenance.
For example, it is possible to replace, repair, upgrade, or even relocate a server while its
clients remain both unaware and unaffected by that change. This independence from
change is also referred to as encapsulation.

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.

It works with multiple different clients of different specifications.

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.

7.0 Client and server communication


Clients and servers exchange messages in a requestresponse messaging pattern: The
client sends a request, and the server returns a response. This exchange of messages is an
example of inter-process communication.
To communicate, the computers must have a common language, and they must follow rules so that
both the client and the server know what to expect.
The language and rules of communication are defined in a communications protocol.
All client-server protocols operate in the application layer.
The application-layer protocol defines the basic patterns of the dialogue.
To formalize the data exchange even further, the server may implement an API (such as a web
service).
The API is an abstraction layer for such resources as databases and custom software. By
restricting communication to a specific content format, it facilitates parsing. By abstracting access, it
facilitates cross-platform data exchange.
A server may receive requests from many different clients in a very short period of time.
Because the computer can perform a limited number of tasks at any moment, it relies on a
scheduling system to prioritize incoming requests from clients in order to accommodate them all in
turn.
To prevent abuse and maximize uptime, the server's software limits how a client can use the
server's resources.
Even so, a server is not immune from abuse.
A denial of service attack exploits a server's obligation to process requests by bombarding it with
requests incessantly.
This inhibits the server's ability to respond to legitimate requests.

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.

9.0 Client-host and server-host


Client-host and server-host have subtly different meanings than client and server.
A host is any computer connected to a network.
Whereas the words server and client may refer either to a computer or to a computer program,
server-host and user-host always refer to computers.
The host is a versatile, multifunction computer; clients and servers are just programs that run on a
host.
In the clientserver model, a server is more likely to be devoted to the task of serving.
The clientserver model does not dictate that server-hosts must have more resources
than client-hosts. Rather, it enables any general-purpose computer to extend its capabilities by
using the shared resources of other hosts. Centralized computing, however, specifically allocates a
large amount of resources to a small number of computers. The more computation is offloaded
from client-hosts to the central computers, the simpler the client-hosts can be.

10.0 Comparison with peer-to-peer architecture


In addition to the clientserver model, distributed computing applications often use the
peer-to-peer (P2P) application architecture.
In the clientserver model, the server is often designed to be a centralized system that
serves many clients. The computing power, memory and storage requirements of a server must be
scaled appropriately to the expected work load (i.e., the number of clients connecting
simultaneously). Load balancing and failover systems are often employed to scale the server
implementation.
In a peer-to-peer network, two or more computers (peers) pool their resources and
communicate in a decentralized system. Peers are coequal, or equipotent nodes in a nonhierarchical network. Unlike clients in a clientserver or clientqueueclient network, peers
communicate with each other directly.

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

11.0 Characteristics of the Client and the Server


The clients and the servers are the logical entities that work together over a network to accomplish
a task.
The distinguishing characteristics of the Client/Server systems are:
1. Service: The client/server is primarily a relationship between processes running on
separate machines. The server process is a provider of services. The client is a consumer

of services. In essence, client/server provides a clean separation of function based on the


idea of service.
2.

Shared Resources: A server can service many clients at the same time and regulate their
access to shared resources.

3.

Asymmetrical protocols: There is a many-to-one relationship between the clients and


the server. Clients always initiate the dialog by requesting a service. Servers are passively
awaiting request from the clients. In some cases a client may pass a reference to a
callback object when it invokes a service. This lets the server call back the client. So the
client becomes a server.

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.

Mix-and-match: The ideal client/server software is independent of hardware or operating


system software platforms. You should be able to mix-and-match client and server
platforms.

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.

Encapsulation of services: The server is a specialist. A message tells a server is


requested; it is then up to the server to determine how to get the job done. Servers can be
upgraded without affecting the clients as long as the published message interface is not
changed.

8.

Scalability: Client/Server systems can be scaled horizontally or vertically. Horizontal


scaling means adding or removing client workstations with only a slight performance
impact. Vertical scaling means either migrating to a larger and faster server machine or
distributing the processing load across multiple servers.

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.

12.0 ERP System Configurations


12.1 Client-Server Network Topology
Two-tier

common server handles both application and database duties

used especially in LANs

Three-tier

client links to the application server which then initiates a second connection to the
database server

used especially in WANs

12.1 Database Configuration


Selection of database tables in the thousands
Setting the switches in the system

12.2 Bolt-on Software


Third-party vendors provide specialized functionality software
Supply-chain management (scm) links vendors, carriers, third-party logistics companies, and
information systems providers

13.0

REFERENCES

"Distributed Application Architecture" (PDF). Sun Microsystem. Retrieved 2009-06-16.


The X Window System is one example.
Benatallah, B.; Casati, F.; Toumani, F. (2004). "Web service conversation modeling: A cornerstone for ebusiness automation". IEEE Internet Computing 8: 46. doi:10.1109/MIC.2004.1260703.
Dustdar, S.; Schreiner, W. (2005). "A survey on web services composition". International Journal of Web and
Grid Services 1: 1. doi:10.1504/IJWGS.2005.007545.
b

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).

You might also like