Jump to content

Client–server model: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Reverted edits by 202.4.80.66 to last version by 59.95.200.42
No edit summary
Line 1: Line 1:
'''Client-server''' is a [[network architecture]] which separates the [[client (computing)|client]] (often a [[graphical user interface]]) from the server. Each instance of the client software can send requests to a server or [[application server]]. There are many different types of servers; some examples include: a [[file server]], [[terminal server]], or [[mail server]]. While their purpose varies somewhat, the basic architecture remains the same.
'''Client-server''' is a [[network architecture]] which separates the [[client (computing)|client]] (often a [[graphical user interface]]) from the server. Each instance of the client software can send requests to a server or [[application server]]. There are many different types of servers; some examples include: a [[file server]], [[terminal server]], or [[mail server]]. While their purpose varies somewhat, the basic architecture remains the same. I HAVE A GIANT MONKEY FACE ON MY ARMS


Although this idea is applied in a variety of ways, on many different kinds of [[Application software|applications]], the easiest example to visualize is the current use of web pages on the internet. For example, if you are reading this article on Wikipedia, your [[computer]] and [[web browser]] would be considered a ''client'', and the computers, [[database]]s, and applications that make up Wikipedia would be considered the ''server''. When your web browser requests a particular article from Wikipedia, the Wikipedia server finds all of the information required to display the article in the Wikipedia database, assembles it into a web page, and sends it back to your web browser for you to look at.
Although this idea is applied in a variety of ways, on many different kinds of [[Application software|applications]], the easiest example to visualize is the current use of web pages on the internet. For example, if you are reading this article on Wikipedia, your [[computer]] and [[web browser]] would be considered a ''client'', and the computers, [[database]]s, and applications that make up Wikipedia would be considered the ''server''. When your web browser requests a particular article from Wikipedia, the Wikipedia server finds all of the information required to display the article in the Wikipedia database, assembles it into a web page, and sends it back to your web browser for you to look at.

Revision as of 04:45, 8 August 2006

Client-server is a network architecture which separates the client (often a graphical user interface) from the server. Each instance of the client software can send requests to a server or application server. There are many different types of servers; some examples include: a file server, terminal server, or mail server. While their purpose varies somewhat, the basic architecture remains the same. I HAVE A GIANT MONKEY FACE ON MY ARMS

Although this idea is applied in a variety of ways, on many different kinds of applications, the easiest example to visualize is the current use of web pages on the internet. For example, if you are reading this article on Wikipedia, your computer and web browser would be considered a client, and the computers, databases, and applications that make up Wikipedia would be considered the server. When your web browser requests a particular article from Wikipedia, the Wikipedia server finds all of the information required to display the article in the Wikipedia database, assembles it into a web page, and sends it back to your web browser for you to look at.

Properties

A client-server architecture is intended to provide 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 computer-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 architectures are in wide use.

Tiered architecture

A generic Client/Server architecture has two types of nodes on the network: clients and servers. As a result, these generic architectures are sometimes referred to as "two-tier" architectures.

Some networks will 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 is called a three-tier architecture.

The advantage of an n-tier architecture compared with a two-tier architecture (or a three-tier with a two-tier) is that it separates out the processing that occurs to better balance the load on the different servers; it is more scalable. The disadvantages of n-tier architectures are:

  1. It puts a greater load on the network.
  2. It is much more difficult to program and test software than in two-tier architecture because more devices have to communicate to complete a user’s transaction.
  3. It is good architecture too.

Addressing

Methods of addressing in client server environments can be described as follows

  • Machine process addressing; where the address is divided up as follows process@machine. Therefore 56@453 would indicate the process 56 on computer 453
  • Name Server; Name servers have an index of all names and addresses of servers in the relevant domain.
  • Localization packets; Broadcast messages are sent out to all computers in the distributed system to determine the address of the destination computer
  • Trader; A trader is a system that indexes all the services available in a distributed system. A computer requiring a particular service will check with the trading service for the address of a computer providing such a service.

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.

See also

Other network architectures