Client-server
Encyclopedia
The client–server model of computing
is a distributed application
that partitions tasks or workloads between the providers of a resource or service, called server
s, and service requesters, called client
s. Often clients and servers communicate over a computer network
on separate hardware, but both client and server may reside in the same system. A server machine is a host that is running 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.
Functions such as email exchange, web access and database access, are built on the client–server model. Users accessing banking services from their computer use a web browser client to send a request to a web server at a bank. That program may in turn forward the request to its own database client program that sends a request to a database server at another bank computer to retrieve the account information. The balance is returned to the bank database client, which in turn serves it back to the web browser client displaying the results to the user.
The client–server model has become one of the central ideas of network computing
. Many business applications being written today use the client–server model. So do the Internet's main application protocols, such as HTTP, SMTP, Telnet
, and DNS
.
The interaction between client and server is often described using sequence diagram
s. The Unified Modeling Language
has support for sequence diagrams.
Specific types of clients include web browser
s, email clients, and online chat
clients.
Specific types of servers include web server
s, ftp servers, application server
s, database server
s, name server
s, mail servers, file server
s, print server
s, and terminal server
s. Most web service
s are also types of servers.
By contrast, peer-to-peer
networks involve two or more computers pooling individual resources such as disk drives, CD-ROMs and printers. These shared resources are available to every computer in the network, while each two of them communicate in a session. Each computer acts as both the client and the server which means all the computers on the network are equals, that is where the term peer-to-peer comes from. The advantage of peer-to-peer networking is the easier control concept not requiring any additional coordination entity and not delaying transfers by routing via server entities. However, the collision of session may be larger than with routing via server nodes.
In the peer to peer network, software applications can be installed on the single computer and shared by every computer in the network. They are also cheaper to set up because most desktop operating systems have the software required for the network installed by default. On the other hand, the client-server model works with any size or physical layout of LAN and doesn't tend to slow down with a heavy use. .
Peer-to-peer networks are typically less secure than a client-server networks because security is handled by the individual computers, not controlled and supervised on the network as a whole. The resources of the computers in the network can become congested as they have to support not only the workstation user, but also the requests from network users. It may be difficult to provide systemwide services when the client operating system typically used in this type of network is incapable of hosting the service.
Client-server networks with their additional capacities have a higher initial setup cost for networking than peer to peer networks. The long-term aspect of administering a client-server network with applications largely server-hosted surely saves administering effort compared to administering the application settings per each client. In addition the concentration of functions in performant servers allows for lower grade performance qualification of the clients.
It is possible to set up a server on a modern desktop computer, but it is recommended to consider investment in enterprise-wide server facilities with standardised choice of hardware and software and with a systematic and remotely operable administering strategy. It is easier to configure and manage the server hardware and software compared to the distributed administering requirements with a flock of computers.
or constraints problem. However, servers may be cloned and networked to fulfill all known capacity and performance requirements. Limitations include network load, network address volume, and transaction
recovery time.
Aspects of comparison for other architectural concepts today include cloud computing
as well. Possible design decision considerations might be:
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...
is a distributed application
Distributed application
-Introduction:Where classic software systems of the past century were mostly based on Client–server models and Client-centric application development, both ultimately run on one single computer, be it the client computer or the server....
that partitions tasks or workloads between the providers of a resource or service, called server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...
s, and service requesters, called client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
s. Often clients and servers communicate over a computer network
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....
on separate hardware, but both client and server may reside in the same system. A server machine is a host that is running 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.
Description
The client–server characteristic describes the relationship of cooperating programs in an application. The server component provides a function or service to one or many clients, which initiate requests for such services.Functions such as email exchange, web access and database access, are built on the client–server model. Users accessing banking services from their computer use a web browser client to send a request to a web server at a bank. That program may in turn forward the request to its own database client program that sends a request to a database server at another bank computer to retrieve the account information. The balance is returned to the bank database client, which in turn serves it back to the web browser client displaying the results to the user.
The client–server model has become one of the central ideas of network computing
Network computing
Network computing is a generic term in computing which refers to computers or nodes working together over a network.It may also mean:*Cloud computing*Distributed computing*Virtual Network Computing...
. Many business applications being written today use the client–server model. So do the Internet's main application protocols, such as HTTP, SMTP, Telnet
TELNET
Telnet is a network protocol used on the Internet or local area networks to provide a bidirectional interactive text-oriented communications facility using a virtual terminal connection...
, and DNS
Domain name system
The Domain Name System is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various information with domain names assigned to each of the participating entities...
.
The interaction between client and server is often described using sequence diagram
Sequence diagram
A sequence diagram in Unified Modeling Language is a kind of interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart....
s. The Unified Modeling Language
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
has support for sequence diagrams.
Specific types of clients include web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
s, email clients, and online chat
Online chat
Online chat may refer to any kind of communication over the Internet, that offers an instantaneous transmission of text-based messages from sender to receiver, hence the delay for visual access to the sent message shall not hamper the flow of communications in any of the directions...
clients.
Specific types of servers include web server
Web server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....
s, ftp servers, application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...
s, database server
Database server
A database server is a computer program that provides database services to other computer programs or computers, as defined by the client–server model. The term may also refer to a computer dedicated to running such a program...
s, name server
Name server
In computing, a name server is a program or computer server that implements a name-service protocol. It maps a human-recognizable identifier to a system-internal, often numeric, identification or addressing component....
s, mail servers, file server
File server
In computing, a file server is a computer attached to a network that has the primary purpose of providing a location for shared disk access, i.e. shared storage of computer files that can be accessed by the workstations that are attached to the computer network...
s, print server
Print server
A print server, or printer server, is a device that connects printers to client computers over a network. It can accept print jobs from the computers and send the jobs to the appropriate printers....
s, and terminal server
Terminal server
A terminal server enables organizations to connect devices with an RS-232, RS-422 or RS-485 serial interface to a local area network . Products marketed as terminal servers can be very simple devices that do not offer any security functionality, such as data encryption and user authentication...
s. Most web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...
s are also types of servers.
Comparison to peer-to-peer architecture
A client-server network involves multiple clients connecting to a single, central server. The file server on a client-server network is a high capacity, high speed computer with a large hard disk capacity.By contrast, peer-to-peer
Peer-to-peer
Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...
networks involve two or more computers pooling individual resources such as disk drives, CD-ROMs and printers. These shared resources are available to every computer in the network, while each two of them communicate in a session. Each computer acts as both the client and the server which means all the computers on the network are equals, that is where the term peer-to-peer comes from. The advantage of peer-to-peer networking is the easier control concept not requiring any additional coordination entity and not delaying transfers by routing via server entities. However, the collision of session may be larger than with routing via server nodes.
In the peer to peer network, software applications can be installed on the single computer and shared by every computer in the network. They are also cheaper to set up because most desktop operating systems have the software required for the network installed by default. On the other hand, the client-server model works with any size or physical layout of LAN and doesn't tend to slow down with a heavy use. .
Peer-to-peer networks are typically less secure than a client-server networks because security is handled by the individual computers, not controlled and supervised on the network as a whole. The resources of the computers in the network can become congested as they have to support not only the workstation user, but also the requests from network users. It may be difficult to provide systemwide services when the client operating system typically used in this type of network is incapable of hosting the service.
Client-server networks with their additional capacities have a higher initial setup cost for networking than peer to peer networks. The long-term aspect of administering a client-server network with applications largely server-hosted surely saves administering effort compared to administering the application settings per each client. In addition the concentration of functions in performant servers allows for lower grade performance qualification of the clients.
It is possible to set up a server on a modern desktop computer, but it is recommended to consider investment in enterprise-wide server facilities with standardised choice of hardware and software and with a systematic and remotely operable administering strategy. It is easier to configure and manage the server hardware and software compared to the distributed administering requirements with a flock of computers.
Challenges
Generally a server may be challenged beyond its capabilities. Then a single server may cause a bottleneckBottleneck
A bottleneck is a phenomenon where the performance or capacity of an entire system is limited by a single or limited number of components or resources. The term bottleneck is taken from the 'assets are water' metaphor. As water is poured out of a bottle, the rate of outflow is limited by the width...
or constraints problem. However, servers may be cloned and networked to fulfill all known capacity and performance requirements. Limitations include network load, network address volume, and transaction
Transaction processing
In computer science, transaction processing is information processing that is divided into individual, indivisible operations, called transactions. Each transaction must succeed or fail as a complete unit; it cannot remain in an intermediate state...
recovery time.
Aspects of comparison for other architectural concepts today include cloud computing
Cloud computing
Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility over a network ....
as well. Possible design decision considerations might be:
- As soon as the total number of simultaneous client requests to a given server increases, the server can become overloaded. Contrast that to a P2P network, where its aggregated bandwidth actually increases as 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. However, this simple model ends with the bandwidth of the network: Then congestion comes on the network and not with the peers.
- Any single entity paradigm lacks the robustness of a redundant configuration. Under client–server, should a critical server fail, clients’ requests cannot be fulfilled by this very entity, but may be taken by another server, as long as required data is accessible. In P2P networks, resources are usually distributed among many nodes which generate as many locations to fail. If dynamic re-routing is established, even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download.
- Mainframe networks use dumb terminals. All processing is completed on few central computers. This is a method of running a network with different limitations compared to fully fashioned clients.
- Using intelligent client terminals increases the maintenance and repair effort. Lesser complete netbookNetbookNetbooks are a category of small, lightweight, legacy-free, and inexpensive laptop computers.At their inception in late 2007 as smaller notebooks optimized for low weight and low cost — netbooks omitted certain features , featured smaller screens and keyboards, and offered reduced computing...
clients allow for reduction of hardware entities that have limited life cycles.
See also
- Hybrid client
- Inter-serverInter-serverIn computer network protocol design, inter-server communication is an extension of the client–server model in which data are exchanged directly between servers...
- Mainframe computerMainframe computerMainframes are powerful computers used primarily by corporate and governmental organizations for critical applications, bulk data processing such as census, industry and consumer statistics, enterprise resource planning, and financial transaction processing.The term originally referred to the...
- Mobile software
- Name serverName serverIn computing, a name server is a program or computer server that implements a name-service protocol. It maps a human-recognizable identifier to a system-internal, often numeric, identification or addressing component....
- Observer patternObserver patternThe observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods...
- Push technologyPush technologyPush technology, or server push, describes a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server...
- Pull technologyPull technologyPull technology or client pull is a style of network communication where the initial request for data originates from the client, and then is responded to by the server. The reverse is known as push technology, where the server pushes data to clients.. Usually, customers will look for a site and...
- ServentServentIn general a servent is a peer-to-peer network node, which has the functionalities of both a server and a client. This is a portmanteau derived from the terms server and client; it is a play on the word "servant"....
- Standalone serverStandalone serverA Standalone server is a type of server that is not part of a larger network infrastructure such as an Active Directory domain. In a general sense, a standalone server provides services to clients without relying on any external resources, including authentication...
- Thin clientThin clientA thin client is a computer or a computer program which depends heavily on some other computer to fulfill its traditional computational roles. This stands in contrast to the traditional fat client, a computer designed to take on these roles by itself...
- Multitier architectureMultitier architectureIn software engineering, multi-tier architecture is a client–server architecture in which the presentation, the application processing, and the data management are logically separate processes. For example, an application that uses middleware to service data requests between a user and a database...
- Client (computing)Client (computing)A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
- Server (computing)Server (computing)In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...