Client-server
|
Client/Server is a network application architecture which separates the client (usually the graphical user interface) from the server. Each instance of the client software can send requests to a server or application server.
Contents |
Introduction
Client/Server is a scalable architecture, whereby each computer or process on the network is either a client or a server. Server software generally, but not always, runs on powerful computers dedicated for exclusive use to running the business application. Client software on the other hand generally runs on common PCs or workstations. Clients get all or most of their information and rely on the application server for things such as configuration files, stock quotes, business application programs, or to offload compute-intensive application tasks back to the server in order to keep the client computer (and client computer user) free to perform other tasks.
Properties of a server:
- Passive (Slave)
- Waiting for requests
- On requests serves them and send a reply
Properties of a client:
- Active (Master)
- Sending requests
- Waits until reply arrives
Servers can be stateless or stateful. A stateless server does not keep any information between requests. Example: An HTTP server for static HTML pages. A stateful server can remember information between requests. The scope of this information can be global or session. Example: Apache Tomcat.
The interaction between client and server is often described using sequence diagrams. Sequence diagrams are standardized in the UML.
Another type of network architecture is known as a peer-to-peer architecture because each node or instance of the program is both a "client" and a "server" and each has equivalent responsibilities. Both client/server and peer-to-peer architectures are in wide use. Each has advantages and disadvantages.
Thin clients vs. Fat Clients
Another type of client in the Client/Server architecture is known as a thin client, which is a minimal client. Thin clients utilize as few resources on the host PC as possible. A thin client's job is generally just to graphically display information from the application server. This allows a company the ease of managing their business logic for all applications at a central location.
n-Tier Architecture
Application servers usually store data on a third machine, known as the database server. This is called a three-tier architecture whereas a generic client/server architecture is two-tier.
In general, an n-tier or Multi-tier architecture may deploy any number of distinct services, including transitive relations between application servers implementing different functions of business logic, each of which may or may not employ a distinct or shared database system.
Examples
A popular client in widespread use today is the web browser which communicates with web servers over the internet to fetch and display web page content.
The X Window System is a client-server architecture with an unusual property. The server is always local (near the user) and the client can be local or remote. This can be less confusing if you think of the server (the X display) as making some resource available (a windowing display system) and the client as making use of that resource.
Related articles
Other Network Architectures
es:Cliente-servidor fa:مشتری-خادم fr:Client-serveur it:Client-server pl:Klient-serwer pt:Cliente-servidor sv:Klient-server