DSR - Chapitre 1
DSR - Chapitre 1
DSR - Chapitre 1
Mahran Farhat
farhatmahran@gmail.com
3
Plan
4
Introduction aux systèmes distribués
Présentation générale
Système distribué en opposition à un système centralisé
Système centralisé
Tout est localisé sur la même machine et accessible par le
programme
Système logiciel s'exécutant sur une seule machine
Les applications accèdent localement aux ressources
nécessaires (données, code, périphériques, mémoire ...)
Système distribué
Ensemble d’ordinateurs indépendants connectés en
réseau et communiquent via ce réseau
Cet ensemble apparaît du point de vue de l'utilisateur
comme une seule entité 5
Introduction aux systèmes distribués
Dans ce cours
Conception logicielle des systèmes distribués: développement
d’applications réparties
Par défaut sur une architecture matérielle de type ordinateurs
connectés en réseau
Exemples de systèmes distribués
Serveur FTP
Serveur Web
7
Introduction aux systèmes distribués
Autres exemples
Calculs scientifiques
Plusieurs architectures matérielles généralement utilisées
Ensemble de machines identiques reliées entre elles par
un réseau dédie et très rapide (cluster)
Ensemble de machines hétérogènes connectées dans un
réseau local ou bien encore par internet
Principe général
Un (ou des) serveur distribue des calculs aux machines
clients
Un client exécute son calcul puis renvoie le résultat au
serveur
Avantage : utilisation d'un maximum de ressources de calcul
Inconvénient : Si réseau ou serveur plante, alors arrêt du
8
système
Introduction aux systèmes distribués
Inconvénients
Si problème au niveau du réseau : le système marche mal ou
plus du tout
Bien souvent, un élément est central au fonctionnement du
système : serveur
Si serveur plante : plus rien ne fonctionne
Goulot potentiel d'étranglement si débit d'information très
important
Sans élément central
Gestion du système totalement décentralisée et distribuée 10
Hétérogénéité
Des machines utilisées (puissance, architecture matérielle...)
Des systèmes d'exploitation tournant sur ces machines
Des langages de programmation des éléments logiciels formant
le système
Des réseaux utilisés : impact sur performances, débit,
disponibilité ...
Réseau local rapide
Internet
13
Réseaux sans fil
Les propriétés des systèmes distribués
Machine
Une ou plusieurs machines peut planter, engendrant une
paralysie partielle ou totale du système
Sécurité
Nature d'un système distribué fait qu'il est beaucoup plus sujet à
des attaques
Communications à travers le réseau peuvent être interceptées
On ne connaît pas toujours bien un élément distant avec qui
on communique
Solutions
Connexion sécurisée par authentification avec les éléments
distants
16
Cryptage des messages circulant sur le réseau
Les propriétés des systèmes distribués
Transparence
Fait pour une fonctionnalité, un élément d'être invisible ou caché
à l'utilisateur ou un autre élément formant le système distribué
Devrait plutôt parler d'opacité dans certains cas ...
But: cacher l’architecture, le fonctionnement de l’application ou
du système distribué pour apparaitre à l’utilisateur comme une
application unique cohérente
L'ISO définit plusieurs transparences (norme RM-ODP): accès,
localisation, concurrence, réplication, mobilité, panne,
performance, échelle 17
Les propriétés des systèmes distribués
Quelques difficultés
Propriété Difficulté engendrée
Asynchronisme du système de Difficulté de détecter les
communication (pas de borne défaillances
supérieure stricte pour le temps de
transmission d’un message)
Dynamisme(la composition du système Difficulté de définir un état global
change en permanence) du système et la difficulté
d’administrer le système
Grande taille (nombre de composants, La capacité de croissance
d’utilisateurs, dispersion (scalability) est une propriété
géographique) importante, mais difficile à
réaliser
20
Applications réparties
22
Applications réparties
23
Applications réparties
25
Applications réparties
28
Modèles d’interaction dans un système distribué
30
Modèles d’interaction dans un système distribué
Interaction
Message du client vers le serveur pour faire une requête
Exécution d’un traitement par le serveur pour répondre à la
requête
Message du serveur vers le client avec le résultat de la requête
Particularité du modèle
Liens forts entre le client et le serveur
Un client peut aussi jouer le rôle de serveur (et vice-versa) dans
une autre interaction
Nécessité généralement pour le client de connaitre précisément e
serveur (sa localisation , exemple URL du site web)
Interaction de type « 1 vers 1 »
32
Modèles d’interaction dans un système distribué
Particularités du modèle
Dépendance plus faible entre les participants
Pas besoin pour l’émetteur d’être directement connecté aux
récepteurs ni même de savoir combien ils sont
Interaction de type « 1 vers N »
34
Modèles d’interaction dans un système distribué
Mémoire partagée
Les éléments communiquent via une mémoire partagée à l’aide
d’une interface d’accès à la mémoire
Ajout d’une donnée à la mémoire
Lecture d’une donnée dans la mémoire
Retrait d’une donnée de la mémoire
Le middleware gère l’accès à la mémoire pour chacun des
participants
Particularité du modèle : aucun lien, aucune interaction directe
entre les participants 35
Modèles d’interaction dans un système distribué
Mémoire partagée
Complexité du modèle: dans la gestion de la mémoire ( on est
dans un système distribué, comment gérer une mémoire dans ce
contexte )
Plusieurs solutions
Déployer toute la mémoire sur un seul site (accès simple
mais goulot potentiel d’étranglement)
Eclater la mémoire sur plusieurs sites ( avec ou sans
duplication des données , cependant il faut mettre en place des
algorithmes +/- complexes de gestion de mémoire distribuée) 36
Modèles d’interaction dans un système distribué
Mémoire partagée
Modèle pair à pair (peer to peer)
Un seul rôle: pas de distinction entre les participants : chaque
participant est connecté avec tous les participants d’un groupe et
tout le monde effectue les mêmes types d’actions, et pour partager
des données, il faut effectuer un calcul commun …
Exemples
Modèles d’échanges de fichiers (bit-torrent) : avec parfois
un mode hybride client/serveur – P2P (le serveur sert à
connaitre la liste des fichiers et effectuer des recherches, le
mode P2P est utilisé ensuite pour les transferts, chacun envoie
une partie du fichier à d’autres participants)
Algorithmes de consensus : chacun mesure une valeur (la
même en théorie), l’envoie aux autres et localement chacun
37
exécute le même algorithme pour élire la bonne valeur
Communication dans un système distribué
Sockets
Web services
EJB
38
Mahran Farhat farhatmahran@gmail.com