Notions d'architecture client-serveur

Présentation de l'architecture d'un système client/serveur

De nombreuses applications fonctionnent selon un environnement clients[1]/serveur[2], cela signifie que des machines clientes (des machines faisant partie du réseau) contactent un serveur, une machine généralement très puissante en terme de capacités d'entrée-sortie, qui leur fournit des services. Ces services sont des programmes fournissant des données telles que l'heure, des fichiers, une connexion...

Les services sont exploités par des programmes, appelés programmes clients, s'exécutant sur les machines clientes. On parle ainsi de client FTP, client de messagerie...

Dans un environnement purement client/serveur, les ordinateurs du réseau (les clients) ne peuvent voir que le serveur, c'est un des principaux atouts de ce modèle.

Avantages de l'architecture client/serveur

Le modèle client/serveur est particulièrement recommandé pour des réseaux nécessitant un grand niveau de fiabilité, ses principaux atouts sont :

  • des ressources centralisées

    étant donné que le serveur est au centre du réseau, il peut gérer des ressources communes à tous les utilisateurs, comme par exemple une base de données centralisée, afin d'éviter les problèmes de redondance et de contradiction

  • une meilleure sécurité

    car le nombre de points d'entrée permettant l'accès aux données est moins important

  • une administration au niveau serveur

    les clients ayant peu d'importance dans ce modèle, ils ont moins besoin d'être administrés

  • un réseau évolutif

    grâce à cette architecture ont peu supprimer ou rajouter des clients sans perturber le fonctionnement du réseau et sans modifications majeures

Inconvénients du modèle client/serveur

L'architecture client/serveur a tout de même quelques lacunes parmi lesquelles :

  • un coût élevé

    dû à la technicité du serveur

  • un maillon faible

    le serveur est le seul maillon faible du réseau client/serveur, étant donné que tout le réseau est architecturé autour de lui! Heureusement, le serveur a une grande tolérance aux pannes (notamment grâce au système RAID[3])

Fonctionnement d'un système client/serveur

Schéma de fonctionnement d'un système client/serveur (commentcamarche.net - © 2003 Pillou - GNU FDL)

Un système client/serveur fonctionne selon le schéma suivant:

  • Le client émet une requête vers le serveur grâce à son adresse et à son port, qui désigne un service particulier du serveur

  • Le serveur reçoit la demande et répond à l'aide de l'adresse de la machine client (et de son port)