Vous êtes sur la page 1sur 22

Le modèle client-serveur

IGHIOUR RACHID

1/24
Qu’est-ce qu’un serveur ?

Un serveur est un ordinateur ou un système qui met des ressources, des données, des
services ou des logiciels à la disposition d’autres ordinateurs, qualifiés de « clients », sur
un réseau. En théorie, un ordinateur est considéré comme un serveur à partir du
moment où il partage des ressources avec une machine cliente. Il existe de nombreux
types de serveurs, notamment les serveurs web, les serveurs de messagerie ou encore
les serveurs virtuels.
Un système x peut simultanément fournir des ressources à un système y et utiliser celles
que ce dernier met à sa disposition. En d’autres termes, un périphérique peut agir à la
fois comme serveur et comme client.

Comment fonctionne un serveur ?

. Pour faire office de serveur, un périphérique doit être configuré pour écouter les
requêtes que les clients lui transmettent via une connexion réseau. Cette fonction peut
être disponible sur un système d’exploitation sous la forme d’une application ou d’un
rôle installé, ou bien d’une combinaison des deux.

2/24
Par exemple, le système d’exploitation Windows Server de Microsoft intègre une
fonctionnalité permettant d’écouter et de répondre aux requêtes clients. Les rôles ou
services installés ont aussi pour fonction d’étoffer les types de requêtes clients auxquels
le serveur est capable de répondre. Pour prendre un autre exemple, un serveur web
Apache répond aux requêtes d’un navigateur via une application tierce (en l’occurrence
Apache) installée sur un système d’exploitation.
Quand un client sollicite des données ou une fonctionnalité auprès d’un serveur, il
envoie une requête sur le réseau. Le serveur la reçoit et y répond en communiquant
l’information qui lui a été demandée. C’est le mode requête-réponse du modèle client-
serveur.
Un serveur va souvent effectuer d’autres tâches dans le cadre d’une requête-réponse :
vérifier l’identité de l’auteur de la requête, s’assurer que le client a l’autorisation
d’accéder aux données ou ressources qu’il sollicite, et formater correctement ou
renvoyer la réponse requise selon la méthode qui en est attendue.

3/24
Les différents types de serveurs

Il existe des types de serveurs pour toutes sortes de fonctions. Beaucoup de réseaux
contiennent au moins un ou deux types de serveurs d’usage courant :
 Serveurs de fichiers

Les serveurs de fichiers hébergent et diffusent des fichiers que peuvent partager une
multitude de clients ou d’utilisateurs. Grâce au stockage central des fichiers, il est plus
simple d’effectuer des sauvegardes et de déployer des solutions de tolérance aux
pannes que si on tentait d’assurer la sécurité et l’intégrité des fichiers sur chacun des
appareils appartenant à une entreprise. La partie matérielle du serveur de fichiers est
parfois conçue pour maximiser les vitesses de lecture et d’écriture afin d’optimiser les
performances.
 Serveurs d’impression

Le serveur d’impression permet d’administrer et de répartir les fonctions d’impression.


Au lieu de connecter une imprimante à chaque poste de travail, on fait appel à un
serveur commun qui va prendre en charge les demandes d’impression de beaucoup de
clients. De nos jours, les modèles d’imprimantes les plus volumineux et sophistiqués

3/24
intègrent parfois leur propre serveur d’impression, ce qui évite de recourir à un serveur
informatisé. Ce serveur interne fonctionne comme les autres, en répondant aux
demandes d’impression émanant d’un client.
 Serveurs d’applications

Le serveur d’applications offre un contexte d’exécution aux ordinateurs clients pour leur
éviter d’exécuter des applications localement. Les serveurs de ce type hébergent la
plupart du temps des applications gourmandes en ressources que se partage une large
communauté d’utilisateurs. Par ce biais, les clients ne sont plus tenus de disposer de
ressources suffisantes pour faire tourner les applications, et il devient inutile d’installer
et de garder à jour des logiciels sur une multitude de machines : on se contente de le
faire sur le serveur, et tous les utilisateurs en bénéficient.
 Serveurs DNS

Les serveurs DNS (pour Domain Name System) sont des serveurs d’applications utilisés
pour résoudre les noms de domaines des ordinateurs clients, c’est-à-dire traduire des
noms conçus pour être compris de l’homme en adresses IP exploitables par une
machine. Le système DNS est une base de données largement répandue qui contient des
noms et d’autres serveurs DNS dont chacun peut servir à demander le nom d’un

4/24
ordinateur qui, autrement, resterait inconnu. Quand un client a besoin de l’adresse d’un
système, il envoie à un serveur DNS une requête DNS portant le nom de la ressource
visée. Le serveur DNS répond en lui fournissant l’adresse IP nécessaire, qu’il trouvera au
sein de sa table de noms.
 Serveurs de messagerie

Les serveurs de messagerie sont un des types de serveurs d’applications les plus
répandus. Ils reçoivent les courriers électroniques adressés à un utilisateur et les
gardent en mémoire jusqu’à ce qu’ils soient sollicités par un client au nom de
l’intéressé. Posséder un serveur mail permet de configurer et de rattacher correctement
une machine au réseau à tout moment. Elle sera alors prête à envoyer et recevoir des
messages au lieu de demander à toutes les machines clientes de faire tourner en
continu leur propre sous-système de messagerie.
 Serveurs web

Les serveurs web comptent parmi les catégories de serveurs les plus répandues sur le
marché à l’heure actuelle. Un serveur web est un genre de serveur d’applications qui
héberge des logiciels et des données que les utilisateurs vont solliciter sur internet ou
sur un intranet. Ces serveurs répondent aux demandes de pages web ou d’autres

5/24
services web qui proviennent de navigateurs tournant sur des ordinateurs clients. Parmi
les serveurs web les plus populaires, on peut citer ceux d’Apache, de Microsoft Internet
Information Services (IIS) et les serveurs Nginx.

6/24
Architecture répartie

► réseaux, ordinateurs plus puissants, OS ouverts


► interfaces et API standard (RFC)
► traitement effectué en partie sur les clients
Serveur
BD
OS

Requête Réponse Règles

Réseau d’entreprise

Windows Mac UNIX


Applications Applications Applications

Clients

7/24
Le modèle

► Client : processus demandant l’exécution d’une opération à


un autre processus par envoi de message contenant le
descriptif de l’opération à exécuter et attendant la réponse de
cette opération par un message en retour.
► Serveur : processus accomplissant une opération sur
demande d’un client, et lui transmettant le résultat.
► Requête : message transmis par un client à un serveur
décrivant l’opération à exécuter pour le compte du client.
► Réponse : message transmis par un serveur à un client suite
à l’exécution d’une opération, contenant le résultat de
l’opération.

8/24
Types d’architecture client-serveur

Le modèle : Un client, plusieurs serveurs :


Application
Client Serveur Serveur
Processus Processus
client système

Système Système Plusieurs clients, un serveur :


Hardware Client Maître Client
Hardware

Client Serveur

Un client, un serveur :
Esclave Esclave
Client Serveur

9/24
C/S orienté client ou serveur

► Client lourd
• stocke les données et les applications localement. Le
serveur stocke les fichiers mis à jour
• Le client effectue une bonne partie du traitement
• Le serveur est plus allégé
► Serveur lourd
• On effectue plus de traitements sur le serveur :
transactions, groupware, etc
• Déploiement plus aisé
► Client léger
• Client à fonctionnalité minimale (terminaux X, périphérique
réseau (Network Appliance), ordinateur réseau (network
computer))
• Beaucoup de charge sur le serveur et le réseau

10/2
Dialogue client-serveur

Primitives de service :
► SendRequest()
► ReceiveResponse()
► ReceiveRequest()
► SendResponse()
Serveur

Client
Requête

Réponse

SendRequest() SendResponse()
ReceiveResponse() ReceiveRequest()

Session Session

Transport Transport

Réseau

11/2
Messages client-serveur

► Trois grands types de message : REQ, REP et ACK


► Autres types possibles : AYA (Are You Alive), BUSY
(ordinateur temporairement occupé), ERR (Erreur), etc.

12/2
Échange de messages

► Dans un environnement hétérogène, on doit effectuer une


présentation adéquate des données.
► Traduction des données (XDR (Sun), ASN.1 (CCITT), etc)
► Assemblage des paramètres émis et des résultats
(marshalling)
► Désassemblage des paramètres reçus et des résultats
(unmarshalling)

Traduction Traduction
Assemblage Désassemblage

Présentation Présentation

Session Session

Transport

13/24
Modes de dialogue

► Mode synchrone
• n’utilise pas de file d’attente
• les messages sont émis aussitôt
• mode bloquant (ex. RPC)
► Mode asynchrone
• utilise une file d’attente
• mode non bloquant
• favorise le multitâche (ex. FIFO, email)

14/24
Opérations bloquantes

Le processus se bloque jusqu’à ce que l’opération se termine.

Appel
read() Lecture

Copie dans
le tampon

Retour

Serveur

Client

15/24
Opérations non bloquantes

Par événements Par signaux


read() Appel

WOULDBLOCK signal() Activer SIGIO


Appel Attente des
données Retour
Attente des
WOULDBLOCK données
Signal SIGIO
Appel
Copie dans handler()
le tampon Appel
Retour read() Copie dans
le tampon
Retour
Serveur

Serveur
Client

Client

16/24
Conception d’une application c/s

Dans une application client-serveur, il faut décider de


l’emplacement des composantes de :
► présentation : interfaces textuelles ou graphiques,
interactions, entrée des données, validation, etc.
► logique d’application : traitements associés à l’application
► accès aux données : stockage et accès aux données (base
de données, serveur web, etc)

17/24
Modèle client-serveur à deux niveaux

Modèle de Gartner pour les systèmes à deux niveaux (2-tiers) :

Présentation Présentation Présentation Présentation Présentation


Client Logique Logique Logique

Données
Présentation

Logique Logique Logique


Serveur Données Données Données Données Données

BD Données Transactions Présentations Présentations


réparties distantes réparties distantes réparties
Classe 1 Classe 2 Classe 3 Classe 4 Classe 5

18/24
Client-serveur à trois niveaux

Modèle de Gartner pour les systèmes à trois niveaux (3-tiers) :

Présentation Présentation Présentation Présentation

Client Logique Logique

Données

Logique Logique Logique Logique


Serveur
de milieu
Données

Logique Logique
Serveur
Données Données Données Données

19/24
20/24
21/24

Vous aimerez peut-être aussi