Client-serveur

L'environnement client-serveur désigne un mode de communication à travers un réseau entre plusieurs programmes ou logiciels : l'un, qualifié de client, envoie des requêtes ; l'autre ou les autres, qualifiés de serveurs, attendent les requêtes des clients et y répondent. Par extension, le client désigne également l' ordinateur sur lequel est exécuté le logiciel client, et le serveur, l'ordinateur sur lequel est exécuté le logiciel serveur.

En général, les serveurs sont des ordinateurs dédiés au logiciel serveur qu'ils abritent, et dotés de capacités supérieures à celles des ordinateurs personnels en ce qui concerne la puissance de calcul, les entrées-sorties et les connexions réseau. Les clients sont souvent des ordinateurs personnels ou des appareils individuels (téléphone, tablette), mais pas systématiquement. Un serveur peut répondre aux requêtes d'un grand nombre de clients.

Il existe une grande variété de logiciels serveurs et de logiciels clients en fonction des besoins à servir : un serveur web publie des pages web demandées par des navigateurs web ; un serveur de messagerie électronique envoie des mails à des clients de messagerie ; un serveur de fichiers permet de stocker et consulter des fichiers sur le réseau ; un serveur de données sert à communiquer des données stockées dans une base de données, etc.

Caractéristiques d'un processus serveur :

  • il attend une connexion entrante sur un ou plusieurs ports réseaux locaux  ;
  • à la connexion d'un client sur le port en écoute, il ouvre un socket local au système d'exploitation;
  • à la suite de la connexion, le processus serveur communique avec le client suivant le protocole prévu par la couche application du modèle OSI.

Caractéristiques d'un processus client :

  • il établit la connexion au serveur à destination d'un ou plusieurs ports réseaux ;
  • lorsque la connexion est acceptée par le serveur, il communique comme le prévoit la couche applicative du modèle OSI.

Le client et le serveur doivent bien sûr utiliser le même protocole de communication au niveau de la couche transport du modèle OSI. Un serveur est généralement capable de servir plusieurs clients simultanément. On parle souvent d'un service pour désigner la fonctionnalité offerte par un processus serveur. On définit aussi comme serveur, un ordinateur spécialisé ou une machine virtuelle ayant pour unique tâche l'exécution d'un ou plusieurs processus serveur.

Exemple d'architecture client-serveur : deux clients font leurs requêtes à un serveur via Internet.

Différents environnements client-serveur

L'organisation d'un environnement diffère selon l'architecture du réseau et le client [1].

Architectures réseaux

Architecture mainframe

Avant que n'apparaisse le mode client-serveur, les réseaux informatiques étaient configurés autour d'un ordinateur central appelé mainframe auquel étaient connectés des terminaux passifs (écran adjoint d’un clavier sans unité centrale).
Tous les utilisateurs sont alors connectés sur la même unité centrale.

Le mainframe n'affiche que du texte à l’écran sans graphisme (pas de bouton, pas de fenêtre…). Il est spécialisé dans la gestion d'informations de masse auquel il peut appliquer des instructions simples (addition, soustraction…) mais avec une grande vélocité. Ainsi, plusieurs milliers de personnes peuvent travailler sur cette unité centrale sans ralentissement.

Aujourd'hui, les anciens terminaux passifs ont été remplacés par des émulations logicielles installées sur les PC.

Pour pallier le manque de graphisme, différentes solutions existent dont l'intégration du mainframe dans une architecture 2, 3 ou N niveaux en laissant à d'autres la fourniture d'une interface homme-machine.

Cette architecture est déployée sur le MVS d’ IBM mais aussi sur des serveurs sous UNIX, Linux

Avantages :

  1. Gestion des données et des traitements centralisée ;
  2. Maintenance matériel minime ;
  3. Grande vélocité sur des grands volumes de données et de traitements.

Inconvénients :

  1. interface homme-machine minimaliste ;
  2. Utilisation de langages de programmation anciens ;
  3. Calcul scientifique complexe impossible.

Architecture « peer-to-peer »

Le réseau est dit pair à pair (peer-to-peer en anglais, ou P2P), lorsque chaque ordinateur connecté au réseau est susceptible de jouer tour à tour le rôle de client et celui de serveur.

Architecture à 2 niveaux

Ce type d'architecture (2-tier en anglais) caractérise les environnements client-serveur où le poste client demande une ressource au serveur qui la fournit à partir de ses propres ressources.

Architecture à 3 niveaux

Dans cette architecture (3-tier en anglais), aussi nommée trois tiers en français, un niveau supplémentaire est ajouté :

Un client (l'ordinateur demandeur de ressources) équipé d'une interface utilisateur (généralement un navigateur web) chargée de la présentation ;
Un serveur d'application (appelé middleware) qui fournit la ressource, mais en faisant appel à un autre serveur ;
Un serveur de données qui fournit au serveur d'application les données requises pour répondre au client.

Architecture à N niveaux

L'architecture 3 niveaux permet de spécialiser les serveurs dans une tâche précise : avantage de flexibilité, de sécurité et de performance. L'architecture peut être étendue sur un nombre de niveaux plus important : on parle dans ce cas d'architecture à N niveaux (ou multi-tier).

Types de clients

Client léger

Le poste client accède à une application située sur un ordinateur dit « serveur » via une interface et un navigateur Web. L'application fonctionne entièrement sur le serveur, le poste client reçoit la réponse « toute faite » à la demande (requête) qu'il a formulée.

Client lourd

Le poste client doit comporter un système d'exploitation capable d'exécuter en local une partie des traitements. Le traitement de la réponse à la requête du client utilisateur va mettre en œuvre un travail combiné entre l'ordinateur serveur et le poste client.

Client riche

Une interface graphique plus évoluée permet de mettre en œuvre des fonctionnalités comparables à celles d'un client « lourd ». Les traitements sont effectués majoritairement sur le serveur, la réponse « semi-finie » étant envoyée au poste client, où le client « riche » est capable de la finaliser et de la présenter.

Other Languages
български: Клиент-сървър
čeština: Klient-server
עברית: שרת-לקוח
Bahasa Indonesia: Klien-server
Кыргызча: Клиент/Сервер
latviešu: Klients-serveris
македонски: Client-server
Nederlands: Client-servermodel
norsk bokmål: Klient-tjener
português: Cliente-servidor
română: Client-server
Simple English: Client-server
slovenčina: Klient-server
Türkçe: İstemci-sunucu
Tiếng Việt: Client-server