- 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 termes de puissance de calcul, d'entrées-sorties et de 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 à 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 ;
- à la connexion d'un client sur le port en écoute, il ouvre un socket local au système d'exploitation;
- suite à 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 n'ayant que pour unique tâche l'exécution d'un ou plusieurs processus serveur.
Sommaire
Les différents Environnements Client-Serveur [1]
Plusieurs environnements sont organisés qui différent par les caractéristiques du réseau ou du client qu'ils contiennent :
Les Architectures réseaux rencontrées
Architecture "Mainframe"
Avant que n'apparaisse le mode client-serveur, les réseaux informatiques anciens sont configurés autour d'un ordinateur central de grande puissance appelé "Mainframe" qui gère toutes les sessions utilisateurs ouvertes par l'ensemble des terminaux-utilisateurs qui lui sont reliés.(d'où la désignation "d'informatique distribuée")
- Avantage: La gestion centralisée d'un tel dispositif est facilitée.
- Inconvénient : La performance globale repose sur les capacités de traitement du "mainframe" central.
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 systèmes 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), existe un niveau supplémentaire:
- Un client ( l'ordinateur demandeur de ressources) équipé d'une interface utilisateur (généralement un navigateur web) chargé 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
On voit que l'architecture 3 niveaux permet de spécialiser les serveurs dans une tache précise : Avantage de flexibilité, de sécurité et de performance .
Potentiellement, l'architecture peut être étendue sur un nombre de niveaux plus important : On parle dans ce cas d'architecture à N niveaux (ou multi-tier )Les 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" à sa demande qu'il a formulée. (appelée : "requête" ) .
Client "lourd"
Le poste client doit comporter un système d'exploitation capable d'exécuter en local une partie des traitements. Car 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é 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.
Comparaison architectures distribuées et Client-Serveur
Avantages
- Toutes les données sont centralisées sur un seul serveur, ce qui simplifie les contrôles de sécurité et la mise à jour des données et des logiciels.
- Les technologies supportant l'architecture client/serveur sont plus matures que les autres.
- Une administration au niveau serveur, les clients ayant peu d'importance dans ce modèle, ils ont moins besoin d'être administrés
- Toute la complexité/puissance peut être déportée sur le serveur(s), les utilisateurs utilisant simplement un client léger sur un ordinateur terminal qui peut être simplifié au maximum.
- Recherche d'information : Les serveurs étant centralisés, cette architecture est particulièrement adaptée et véloce pour retrouver et comparer de vaste quantité d'information (Moteur de Recherche sur le Web), ce qui semble être rédhibitoire pour le P2P beaucoup plus lent, à l'image de Freenet.
Inconvénients
- Si trop de clients veulent communiquer avec le serveur au même moment, ce dernier risque de ne pas supporter la charge (alors que les réseaux pair à pair fonctionnent mieux en ajoutant de nouveaux participants).
- Si le serveur n'est plus disponible, plus aucun des clients ne fonctionne (le réseau pair à pair continue à fonctionner, même si plusieurs participants quittent le réseau).
- Les coûts de mise en place et de maintenance sont élevés.
- En aucun cas les clients ne peuvent communiquer entre eux, entrainant une asymétrie de l'information au profit des serveurs.
Exemples
- La consultation de pages sur un site web fonctionne sur une architecture client/serveur. Un internaute connecté au réseau via son ordinateur et un navigateur web est le client, le serveur est constitué par le ou les ordinateurs contenant les applications qui délivrent les pages demandées. Dans ce cas, c'est le protocole de communication HTTP ou XML socket qui est utilisé.
- Les courriels sont envoyés et reçus par des clients et gérés par un serveur de messagerie. Les protocoles utilisés sont le SMTP, et le POP ou l'IMAP.
- La gestion d'une base de données centralisée sur un serveur peut se faire à partir de plusieurs postes clients qui permettent de visualiser et saisir des données.
- Le système X Window fonctionne sur une architecture client/serveur. En général le processus client (une application graphique, xeyes par exemple) tourne sur la même machine que le serveur mais peut être aussi bien lancé sur un autre ordinateur faisant partie du réseau.
- L'organisation en client léger - façon terminal-serveur- a donné naissance à des projets innovants comme par exemple le projet LTSP ou la technologie NX.
Notes
- Tout sur les systèmes d'information , Jean François Pillou , Dunod 1996
Voir aussi
Catégories :- Architecture réseau
- Architecture logicielle
Wikimedia Foundation. 2010.