Vous êtes sur la page 1sur 12

Systèmes distribués

Notion de système distribué et introduction au modèle


client/serveur

Khaled Barbaria
khaled.barbaria@ensta.org

Faculté des Sciences de Bizerte


LF SI3, LA TIT3

2009-2018

Notion de système distribué et modèle client/serveur 1 - 12 Khaled Barbaria


Plan I

1 Objectifs et Plan du cours

2 Évolutions technologiques favorisant les systèmes distribués

3 Notion de Système Distribué


Définitions

4 Modèle client/serveur

Notion de système distribué et modèle client/serveur 2 - 12 Khaled Barbaria


Objectifs du cours

Maîtriser les définitions de systèmes répartis.


Présenter les caractéristiques des systèmes répartis et montrer
leurs différences avec les systèmes centralisés.
Présenter les problèmes posés par la répartition et les techniques
de leur résolution.
Détailler les méthodes et techniques d’ingénierie et de
développement des systèmes distribués.

Notion de système distribué et modèle client/serveur 3 - 12 Khaled Barbaria


Évolutions technologiques

Évolutions technologiques
Développement de microprocesseurs puissants et peu coûteux
En 1980 : la machine coûte 107 dollars et exécute une instruction
par seconde
En 2005 : la machine coûte 103 dollars et exécute 109 instructions
par seconde.
Développement des réseaux locaux et à large échelle
Les réseaux locaux permettent à une centaine de machines
d’échanger des données de petite taille en quelques
microsecondes (millisecondes)
Les réseaux à large échelle connectent des millions de machines
avec des vitesses variables de 64 Kbps (kilobits par seconde) à
plusieurs gigabits par seconde.

Notion de système distribué et modèle client/serveur 4 - 12 Khaled Barbaria


Définitions I

Tanenbaum
Un Système distribué est une collection de calculateurs indépendants
qui apparaît aux utilisateurs comme une seule machine.

Calculateurs : des petits noeuds du réseau de capteurs aux


super-calculateurs les plus puissants en passant par les PC et les
smart-phones.
indépendants : autonomes
utilisateurs du système distribué : humains, ou autres applications
une seule machine :
Collaboration : Comment établir cette collaboration ?
Transparence : cacher la composition interne du système, les
différences entre les composants, la manière avec laquelle ils
communiquent, ce qui permet de facilement l’étendre ou remplacer
certains de ces éléments

Notion de système distribué et modèle client/serveur 5 - 12 Khaled Barbaria


Définitions II
Les utilisateurs interagissent avec le système d’une manière
cohérente et uniforme indépendamment du temps et du lieu de
l’interaction

L. Lamport
Un système distribué est un système dans lequel votre machine peut
être rendue inutilisable à cause d’une autre machine dont vous n’avez
jamais entendu parler.

Les défaillances sont généralement partielles et peuvent être très


graves
Transparences : limitées par la réalité
Problèmes de complexité
Sécurité des composants
Sécurité du médium de communication (réseau)

Notion de système distribué et modèle client/serveur 6 - 12 Khaled Barbaria


Modèle client/serveur I

Modèle C/S
Se base sur la notion de service et décompose l’application en
deux parties : client et serveur
modèle Client/Serveur largement répandu
Serveurs Web, serveurs de temps, serveurs de mail, serveurs de
fichiers, serveurs de nommage (e.g. Domain Name Server)
..plein d’autres (transformer une chaîne de caractère en une autre,
convertir un fichier, effectuer des calculs exigeants en ressources,
etc.)

Serveur
En attente des demandes de services (Requêtes)
Les demandes sont traitées et des Réponses sont formulées

Notion de système distribué et modèle client/serveur 7 - 12 Khaled Barbaria


Modèle client/serveur II

Client
Lorsqu’il veut accéder à un service il envoie une requête qui décrit
sa demande (càd le service qu’il attend). L’envoi peut être
bloquant ou pas (généralement non bloquant).
Il attend l’arrivée de la réponse. L’attente peut être bloquante ou
pas (généralement bloquante).

Notion de système distribué et modèle client/serveur 8 - 12 Khaled Barbaria


Modèle client/serveur III

Définition d’un modèle C/S


Pour définir une application client/serveur il faut préciser :
Protocole applicatif (l’ensemble des messages et leurs
enchaînements, càd quel message envoyer en réponse à chaque
message)
Protocole du transport (comment les données sont échangées ?
exemple TCP, UDP, ou autre) Codes du clients et du serveur
Code du client
Code du serveur

Notion de système distribué et modèle client/serveur 9 - 12 Khaled Barbaria


Clients lourd et léger I

Definition
Une application est dite en client léger si les principaux traitements se
font au niveau du serveur. Elle est en client lourd si le client prend en
charge l’intégralité du traitement et ne dépend du serveur que pour
l’échange des données.

Le client léger ne se charge que des aspects présentation et


potentiellement quelques traitements mineurs (exemple affichage
HTML
Le client lourd prend généralement en charge l’intégralité du
traitement (exemples : client avec des capacités d’affichage
poussées (3D, GUI), clients utilisant les serveurs uniquement pour
stocker les données, Outlook).

Notion de système distribué et modèle client/serveur 10 - 12 Khaled Barbaria


Clients lourd et léger II

Client léger Client lourd


Autonomie Dépendant du ser- Grande autonomie
veur même si serveur
indisponible
Ressources Limitées Bonne à forte exploita-
nécessaires tion
Fluidité d’exécu- Dépendante du ré- Dépendante des res-
tion seau sources
Maintenance Simple (1 serveur) Obligation de mettre à
jour tous les clients !

Notion de système distribué et modèle client/serveur 11 - 12 Khaled Barbaria


État d’un serveur
Definition (Serveur sans état et serveur avec état)
Un serveur est dit sans état s’il traite chaque requête comme une
opération indépendante (aucun lien avec les requêtes précédentes). Il
est avec état si la réponse à une requête dépend des requêtes
précédentes.

Sans état Avec état


Conception simple du ser- Gestion de l’état nécessaire
veur
Nécessite d’extraire l’informa- Nécessite de mettre à jour les
tion sur le client depuis sa re- informations sur les clients
quête
Tolérance aux fautes simple Nécessite de synchroniser
les états entre les répliques

Notion de système distribué et modèle client/serveur 12 - 12 Khaled Barbaria