Definition

Architecture client/serveur (ou modèle client/serveur)

Dans une relation client/serveur, un programme (le client) demande un service ou une ressource à un autre programme (le serveur). 

Le modèle client/serveur peut être utilisé par des programmes d'un même ordinateur, mais le concept est surtout utile dans le cadre d'un réseau. Dans ce cas, le client établit une connexion au serveur sur un réseau local (LAN) ou étendu (WAN), tel qu'Internet. Lorsque le serveur a répondu à la demande du client, la connexion est terminée. Un navigateur Internet est un programme client qui demande un service à un serveur. Le service et la ressource fournis par le serveur donnent lieu à l'affichage d'une page Web. 

Les transactions informatiques dans lesquelles le serveur répond à une demande d'un client sont très courantes et le modèle client/serveur est devenu l'un des concepts pivots de l'informatique en réseau.

La plupart des progiciels utilisent le modèle client/serveur, de même que le principal programme d'Internet, TCP/IP. Par exemple, lorsque vous consultez votre compte bancaire à partir de votre ordinateur, un programme client de votre ordinateur transmet une requête à un programme serveur de votre banque. Ce programme peut à son tour transmettre une requête à son propre programme client, qui envoie alors une requête à un serveur de base de données sur un autre ordinateur de la banque. Lorsque le solde de votre compte a été extrait de la base de données, il est renvoyé au client de données de la banque, qui à son tour le renvoie au client de votre PC, qui affiche ces informations. 

Les programmes client et serveur font souvent partie d'un programme ou d'une application de plus grande envergure. Comme plusieurs programmes clients partagent les services du même programme serveur, un serveur spécifique, appelédaemon, peut être activé pour attendre les demandes des clients.

Dans le domaine marketing, le client/serveur permettait de distinguer l'informatique distribuée par des ordinateurs personnels (PC) du modèle informatique monolithique et centralisé utilisé par les mainframes. Mais cette distinction a pratiquement disparu, car les mainframes et leurs applications ont également adopté le modèle client/serveur et ont intégré l'informatique en réseau. 

Il existe d'autres modèles de relations entre programmes, comme la relation maître/esclave et la relation de gré-à-gré (ou Peer-to-peer, P2P). Dans le modèle P2P, chaque nœud du réseau peut fonctionner comme serveur et comme client. Dans le modèle maître/esclave, un périphérique ou un processus (appelé maître) contrôle un ou plusieurs autres périphériques ou processus (appelés esclaves). Lorsque la relation maître/esclave est établie, le contrôle est toujours unilatéral, du maître à l'esclave.

Cette définition a été mise à jour en juillet 2016

Pour approfondir sur Architectures logicielles et SOA