Client Server Technical Documentation
Client Server Technical Documentation
and is almost always implemented over a computer network. Each client or server
connected to a network can also be referred to as a node. The most basic type of
client-server architecture employs only two types of nodes: clients and servers. This
type of architecture is sometimes referred to as two-tier. It allows devices to share
files and resources.
Each instance of the client software can send data requests to one or more
connected servers. In turn, the servers can accept these requests, process them,
and return the requested information to the client. Although this concept can be
applied for a variety of reasons to many different kinds of applications, the
architecture remains fundamentally the same.
These days, clients are most often web browsers, although that has not always been
the case. Servers typically include web servers, database servers and mail servers.
Online gaming is usually client-server too. In the specific case of MMORPG, the
servers are typically operated by the company selling the game; for other games
one of the players will act as the host by setting his game in server mode.
The interaction between client and server is often described using sequence
diagrams. Sequence diagrams are standardized in the Unified Modeling Language.
Contents
[hide]
1 Characteristics
1.1 Characteristics of a client
1.2 Characteristics of a server
2 Multi-tiered architecture
3 Comparison to Peer-to-Peer Architecture
4 Comparison to Client-Queue-Client
Architecture
5 Advantages
6 Disadvantages
7 Examples
8 Notes
9 See also
[edit]
Characteristics
[edit]
Characteristics of a client
Initiates requests
Waits for and receives replies.
Usually connects to a small number of servers at one
time
Typically interacts directly with end-users using a
graphical user interface
[edit]
Characteristics of a server
Passive (slave)
Waits for requests from clients
Upon receipt of requests, processes them and then
serves replies
Usually accepts connections from a large number of
clients
Typically does not interact directly with end-users
[edit]
Multi-tiered architecture
Some designs are more sophisticated and consist of three different kinds of nodes:
clients, application servers which process data for the clients, and database servers
which store data for the application servers. This configuration is called a three-tier
architecture, and is the most commonly used type of client-server architecture.
Designs that contain more than two tiers are referred to as multi-tiered or n-tiered.
The advantages of n-tiered architectures is that they are far more scalable, since
they balance and distribute the processing load among multiple, often redundant,
specialized server nodes. This in turn improves overall system performance and
reliability, since more of the processing load can be accommodated simultaneously.
[1]
Advantages
In most cases, a client-server architecture enables the
roles and responsibilities of a computing system to be
Disadvantages
Traffic congestion on the network has been an issue
since the inception of the client-server paradigm. As
the number of simultaneous client requests to a given
server increases, the server can become severely
overloaded. Contrast that to a P2P network, where its
bandwidth actually increases as more nodes are
Examples
Imagine you are visiting an eCommerce web site. In this case, your computer and
web browser would be considered the client, while the computers, databases, and
applications that make up the online store would be considered the server. When
your web browser requests specific information from the online store, the server
finds all of the data in the database needed to satisfy the browser's request,
assembles that data into a web page, and transmits that page back to your web
browser for you to view.
Specific types of clients include web browsers, email clients, and online chat clients.
Specific types of servers include web servers, application servers, database servers,
mail servers, file servers, print servers, and terminal servers. Most web services are
also types of servers.
[edit]
Notes
1. ^ This form of scalability is called horizontal
scalability. There is substantial and growing
criticism that horizontal scalability is limiting as
applications become more complex and
interdependent, particularly in the areas of network
latency, reliability, and manageability. IBM, in
particular, takes this view and promotes both
vertical and horizontal scalability. Vertical