Architectures des Systèmes Distribués
Y.BENHAMZA
INTTIC, Oran
November 19, 2017
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 1 / 49
Styles d’Architecture Définition
Définitions
.
Architectures Logicielles: décrivent l’organisation et l’interaction
des composants logiciels; met l’accent sur l’organisation logique du
logiciel (l’interaction des composants, etc.)
Architectures systèmes: décrivent le placement des composants
logiciels sur des machines physiques
La réalisation d’une architecture peut être:
Centralisée (la plupart des composants situés sur une seule machine)
Décentralisée (la plupart des machines ont à peu près les mêmes
fonctionnalités)
Hybride (une combinaison).
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 2 / 49
Styles d’Architecture Définition
Architecture Logicielle: Différents Style
Un style architectural décrit d’une manière particulière pour
configurer un ensemble de composants et de connecteurs.
Composant- un module avec des interfaces bien définies (réutilisable,
remplaçable).
Connecteur- lien de communication entre les modules.
Architectures appropriés pour les systèmes distribués:
architectures en couches.
architectures basées objets.
architectures centrées autour des données.
architectures basés sur les événements.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 3 / 49
Styles d’Architecture architectures en Couche / Objet
Architecture Logicielle: En couche & basé Objet
Figure 1.1 : (a)style architectural en couche & (b) style architectural basé objet
L’Architecture basé objet est moins structuré.
Composant = Objet (instance de Classe).
Connecteur d’Objet = RPC ou RMI.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 4 / 49
Styles d’Architecture Architectures centrée donné
Architecture Logicielle: Centrée sur les Données
L’Objectif principal: l’accès aux données et la mise à jour
Les Processus interagissent par lecture et modification de données
dans un certain référentiel partagé (actif ou passif)
Base de données traditionnelle (passive): réponse aux demandes
Le Système Blackboard (actif): les clients résolvent un problème en
collaboration; système met à jour les clients lorsque l’information
change.
Un autre exemple: les systèmes distribués basés sur le Web, où la
communication par le biais des services Web
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 5 / 49
Styles d’Architecture Architecture basée Évènement
Architecture Logicielle: Basée Évènement
Figure 1.2 : (a) Style architecturale basé sur les Évènements.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 6 / 49
Styles d’Architecture Architecture basée Évènement
Architecture Logicielle: Basée Évènement
Figure 1.3 : (b) Style architecturale basé sur les données partagés.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 7 / 49
Styles d’Architecture Architecture Système
Architecture Système
Distribution verticale (Centralisé): Client-serveur standard
Organisation,communication et contrôle verticale (hiérarchique)
(semblable à l’architecture logicielle en couche).
Séparation logique des fonctions entre client (requêtes) et
serveur(réponse)
Logiquement différents composants résident sur différents nœuds
Distribution horizontale (Distribué): pair-à-pair (P2P)
Communication et contrôle Horizontale (Pas de hiérarchie, tous égaux)
Fonctionnalité symétrique, chemin de communication moins structuré.
Une meilleure répartition de charge, plus résistant aux attaques par
déni de service, plus difficile à gérer que C/S.
Hybride: combinaison des éléments C/S et P2P
système avec serveur de bord
système distribué collaborative
La Classification de système comme centralisé ou distribué se réfère à
la communication et l’organisation de contrôle
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 8 / 49
Styles d’Architecture Architecture Système
Architecture Client-Serveur
Les processus sont divisés en deux groupes (clients et serveurs).
Communication synchrone: protocole de demande-réponse
Dans les réseaux locaux, souvent mis en œuvre avec un protocole sans
connexion (non fiable)
Dans WANs, la communication est généralement orienté connexion
TCP / IP (fiable)
Forte probabilité de défaillances de communication
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 9 / 49
Styles d’Architecture Architecture Système
Architecture Client-Serveur
Figure 1.4 : Interaction Client-serveur
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 10 / 49
Styles d’Architecture Architecture Système
Échecs de Transmission
Avec transmissions sans connexion, l’échec de toute sorte signifie pas
de réponse.
Possibilités:
Message requête a été perdu
Message de réponse a été perdu
Le serveur a échoué, soit avant, pendant ou après l’exécution du service
le client peut-il dire que des erreurs ci-dessus a eu lieu?
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 11 / 49
Styles d’Architecture Architecture Système
Idempotence
réponse typique à la demande perdue dans la communication sans
connexion: re-transmission
Considérez effet de ré-envoyer un message tel que ”incrément X de
1000” Si le premier message a été donné suite, maintenant l’opération
a été effectuée deux fois
opérations idempotentes: peuvent être réalisées plusieurs fois sans
dommage
par exemple, ”Retourne la valeur actuelle de X”; vérifier la disponibilité
d’un produit
Non-idempotente: ”incrément X”, commander un produit
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 12 / 49
Styles d’Architecture Architecture Système
Architecture en Couche pour Client-Serveur
Niveau Interface Utilisateur: l’interface graphique (généralement)
pour interagir avec les utilisateurs finaux
Niveau de traitement: données des applications de traitement - la
fonctionnalité de base
Niveau des données: interagit avec la base de donnée ou un
système de fichier
Les données sont généralement persistantes; existent même si aucun
client y accède
Fichier ou base de donnée système
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 13 / 49
Styles d’Architecture Architecture Système
Application en couche
Figure 1.5 : L’organisation simplifié d’un moteur de recherche sur trois
différentes couches.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 14 / 49
Styles d’Architecture Architecture Système
Exemples
Moteur de recherche Web
Interface: tapez un mot clé (chaine de caractère)
Niveau de traitement: processus pour générer des requêtes DB,
réponses de rang, réponses de format.
Niveau de donnée: base de données de pages Web
Le système d’aide à la décision des courtiers en valeurs mobilières
Interface: probablement plus complexe que simple recherche
Traitement: programmes pour analyser les données; reposent sur les
statistiques, IA peut-être, peut nécessiter de grandes simulations
Niveau de données: BDD de l’information financière
Bureau ”suites bureautiques”
Interface: accès à divers documents, les données,
Traitement: traitement de texte, des requêtes de base de données,
feuilles de calcul, ...
systèmes et/ou des bases de données de fichiers: données
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 15 / 49
Styles d’Architecture Architecture Système
Cartographie de l’architecture logicielle au matériel du système
Correspondance entre modules logiciels logiques et des ordinateurs réels
Les architectures multi-niveaux
Couche et de niveau sont des termes à peu près équivalentes, mais la
couche implique généralement un logiciel et un niveau est plus
susceptible de se référer au matériel.
À deux niveaux et trois niveaux sont les plus courantes
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 16 / 49
Styles d’Architecture Architecture Système
Serveur fournit une gestion de traitement et des données; client
fournit un affichage graphique simple (client léger)
Perte de performance perçue au client
Plus facile à gérer, plus fiable, les machines clientes ne doivent pas être
si grand et puissant
À l’autre extrême, l’ensemble du traitement d’application et certaines
données réside dans la (approche client lourd) client
Avantage: réduit la charge de travail au serveur; plus évolutive
Inconvénient: plus difficile à gérer par admin système, moins sécurisé
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 17 / 49
Styles d’Architecture Architecture Système
Problème d’extensibilité
Du Client Léger au Client Lourd
Figure 1.6 : Organisation client-serveur alternative
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 18 / 49
Styles d’Architecture Architecture Système
Architecture Trois-Tiers
Dans certaines applications, les serveurs peuvent aussi avoir besoin
d’être des clients, ce qui conduit à une architecture à trois niveaux,
le traitement des transactions distribuées
Les serveurs Web qui interagissent avec les serveurs de bases de
données
Distribuer la fonctionnalité à travers trois niveaux de machines au lieu
de deux.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 19 / 49
Styles d’Architecture Architecture Système
Architecture Trois Tiers
Figure 1.7 : Un exemple d’un serveur agissant comme client
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 20 / 49
Styles d’Architecture Architecture Système
Pair-à-Pair P2P
Les nœuds agissent à la fois comme client et serveur (interaction
symétrique).
Chaque nœud agit en tant que serveur pour une partie des données
du système complet
réseaux Overlay relient les nœuds dans le système de P2P
Les nœuds dans l’overlay utilisent leur propre système d’adressage pour
mémoriser et récupérer des données dans le système
Les nœuds peuvent acheminer les demandes à des endroits qui ne
peuvent pas être connus par le demandeur
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 21 / 49
Styles d’Architecture Architecture Système
Les réseaux Overlay
Réseaux logiques ou virtuels, construits au-dessus d’un réseau
physique.
Un lien entre deux nœuds dans le recouvrement peut être constituée
de plusieurs liaisons physiques.
Les messages de la superposition sont envoyés à des @ logiques, et
non @ (IP) physiques
Diverses approches utilisées pour résoudre les adresses logiques à
l’intégrité physique.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 22 / 49
Styles d’Architecture Architecture Système
Les réseaux Overlay
Chaque nœud dans un système P2P sait comment communiquer avec
plusieurs autres nœuds.
Le réseau de recouvrement peut être :
structuré (nœuds et le contenu sont connectés selon un plan qui
permet de simplifier les recherches ultérieures);
non structurés (le contenu est affecté à des nœuds sans tenir compte
de la topologie du réseau. )
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 23 / 49
Styles d’Architecture Architecture Système
Architectures P2P Structuré
Une approche commune est d’utiliser une table de hachage distribuée
(DHT) pour organiser les nœuds.
En algorithmique, une table de hachage est souvent représentée par
un tableau de listes chainées.
Les fonctions traditionnelles de hachage convertissent une clé à une
valeur de hachage, qui peut être utilisé comme un index dans une
table de hachage.
Les clés sont uniques - chacune représente un objet à stocker dans la
table;
La valeur de la fonction de hachage est utilisée pour insérer un objet
dans la table de hachage et de le localiser(récupérer).
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 24 / 49
Styles d’Architecture Architecture Système
Architecture P2P Structuré
Dans une DHT, chaque clé d’un objet (donnée) et/ou de nœud est
affecté à un nombre aléatoire extrait par une fonction de hachage à
partir d’un très grand espace d’identifiant (pour garantir l’unicité)
Une fonction de mappage affecte les objets aux nœuds, en fonction de
la valeur de la fonction de hachage.
Une recherche, également basé sur la valeur de la fonction de
hachage, retourne l’adresse réseau du nœud qui stocke l’objet
demandé.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 25 / 49
Styles d’Architecture Architecture Système
Caractéristique de la DHT
Extensible : à des milliers, voire des millions de nœuds de réseau
Le temps de recherche augmente plus lentement que la taille;
habituellement O(log(N))
Tolérante au panne - capable de se réorganiser lorsque les nœuds
échouent
Décentralisée - aucun coordinateur central (des algorithmes
décentralisés)
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 26 / 49
Styles d’Architecture Architecture Système
Algorithme de Routage Chord - P2P structuré
Les nœuds sont logiquement disposées en cercle
Nœuds et éléments de données ont des identificateurs de m bits (clés)
à partir d’un espace de noms pow(2,m)
par exemple, la clé d’un nœud est un hachage de son adresse IP et la
clé d’un fichier pourrait être le hachage de son nom ou de son contenu
ou une autre clé unique.
La fonction de hachage est cohérente; ce qui signifie que les clés sont
répartis uniformément entre eux.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 27 / 49
Styles d’Architecture Architecture Système
Insertion d’élément dans la DHT
Un élément de données avec une valeur clé k est mappé sur le nœud
avec le plus petit identifiant id telle que id superOu= k (mod 2m)
Ce nœud est le successeur de k, ou succ (k)
la division modulaire est utilisé
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 28 / 49
Styles d’Architecture Architecture Système
Figure 1.8 : Mappage entre éléments de donné et les nœuds du réseau Chord
avec m=4
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 29 / 49
Styles d’Architecture Architecture Système
Recherche d’élément dans la DHT
Chaque nœud du réseau connaı̂t l’emplacement d’une certaine
fraction des autres nœuds.
Si la clé désirée est stockée dans l’un de ces nœuds, il la demande
directement
Sinon, il demandera à l’un des nœuds qu’il connait à regarder dans son
ensemble de nœuds connus.
La demande va se propager à travers le réseau de recouvrement jusqu’à
ce que la clé désirée soit trouvée.
temps de recherche est O (log (N)))
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 30 / 49
Styles d’Architecture Architecture Système
Connexion(Rejoindre)
Générer identificateur aléatoire, id du noeud, en utilisant la fonction de
hachage distribuée
Utilisez la fonction de recherche pour localiser succ (id)
Contacter succ (id) et son prédécesseur et s’insérer automatiquement
dans l’anneau.
Déconnexion (normalement)
Notifier le prédécesseur et le successeur;
Déplacer les données vers succ (id)
Déconnexion (en raison de l’échec)
Périodiquement, les nœuds peuvent exécuter des algorithmes
”auto-stabilisation”
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 31 / 49
Styles d’Architecture Architecture Système
Résumé
Déterministe: Si une donné est dans le système, elle sera trouvée
Pas besoin de savoir où un élément est stocké
opérations de recherche sont relativement efficaces
systèmes P2P basé DHT s’étendent (extensibilité) bien
BitTorrent et Coral Content Distribution Network incorporent des
éléments de DHT
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 32 / 49
Styles d’Architecture Architecture Système
Architecture P2P non-structuré
Les P2P non-structuré organise le réseau superposé comme un graphe
aléatoire.
Chaque nœud connait un sous-ensemble de nœuds, ses voisins
Les voisins sont choisis de différentes manières: nœuds proches
physiquement , des nœuds qui ont rejoint à peu près au même
moment, etc.
Les éléments de données sont mappés au hasard à un nœud dans le
système et la recherche est aléatoire, contrairement à la recherche
structurée Chord.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 33 / 49
Styles d’Architecture Architecture Système
Recherche d’élément (P2P non Structuré)
Envoyez une demande à tous les voisins connus
Si non trouvé, les voisins transmettre la demande à leurs voisins
Fonctionne bien dans les petites et les réseaux de taille moyenne, la
mise à l’échelle n’est pas performante
”Time-to-live” compteur peut être utilisé pour contrôler le nombre de
tronçons
Exemple de système : Gnutella et Freenet (Freenet utilise un système
de mise en cache pour améliorer les performances)
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 34 / 49
Styles d’Architecture Architecture Système
SuperNoeud
Maintenir des indices à certains ou tous les noeuds dans le système
Prise en charge de la découverte de ressources
Agir en tant que serveurs à nœuds réguliers par les pairs, les pairs à
d’autres Superpeer
Améliorer l’évolutivité en contrôlant les inondations
Peut également surveiller l’état du réseau
Exemple: Napster
Figure 1.9 : SuperNoeud
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 35 / 49
Styles d’Architecture Architecture Système
Architecture Hybride
Combinez client-serveur et P2P architectures
systèmes Edge-serveur; par exemple. FAI, qui agissent en tant que
serveurs à leurs clients, mais coopèrent avec d’autres serveurs de
périphérie pour héberger le contenu partagé
systèmes distribués en collaboration; par exemple, BitTorrent, qui
prend en charge le téléchargement parallèle et le téléchargement de
morceaux d’un fichier. Tout d’abord, d’interagir avec le système C / S,
puis faire fonctionner de manière décentralisée.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 36 / 49
Styles d’Architecture Architecture Système
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 37 / 49
Styles d’Architecture Architecture Système
Figure 1.10 : Aperçue d’internet comme constitué d’une collection de serveur de
bord
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 38 / 49
Styles d’Architecture Architecture Système
Système distribué Collaborative - BitTorrent
Les clients contactent un répertoire global (serveur Web) pour
localiser un fichier .torrent avec les informations nécessaires pour
localiser un tracker; un serveur qui peut fournir une liste de nœuds
actifs qui ont des morceaux du fichier désiré.
En utilisant les informations du tracker, les clients peuvent télécharger
le fichier en morceaux à partir de plusieurs sites du réseau. Les clients
doivent également fournir des morceaux de fichiers à d’autres
utilisateurs.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 39 / 49
Styles d’Architecture Architecture Système
Figure 1.11 : Le principal fonctionnement de BitTorrent
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 40 / 49
Styles d’Architecture Architecture Système
BitTorrent-Justification
Conçu pour forcer les utilisateurs de systèmes de partage de fichiers
pour participer au partage.
Simplifie le processus de publication des fichiers volumineux, par
exemple des jeux
Quand un utilisateur télécharge votre fichier, il devient à son tour un
serveur qui peut télécharger le fichier à d’autres demandeurs.
Partager la charge - ne pas inonder votre serveur
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 41 / 49
Styles d’Architecture Architecture Système
Freenet
”Freenet est un logiciel gratuit qui vous permet de publier et
d’obtenir des informations sur l’Internet sans crainte de censure. Pour
parvenir à cette liberté, le réseau est entièrement décentralisé et les
éditeurs et les consommateurs d’informations sont anonymes. Sans
l’anonymat, il ne peut jamais être une véritable liberté d’expression,
et sans la décentralisation du réseau sera vulnérable aux attaques
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 42 / 49
Styles d’Architecture Architecture Système
P2P Vs Client/Serveur
l’informatique P2P permet aux utilisateurs finaux de communiquer
sans un serveur dédié.
La communication est (encore) le plus souvent synchrone (blocage)
Il y a moins de risque de goulots d’étranglement de performance
puisque la communication est plus distribué. Distribution des données
conduit à la distribution de charge de travail.
La découverte de ressources est plus difficile que dans l’informatique
centralisé client-serveur et la recherche (look-up/récupération) est
plus lente
P2P peut être plus tolérant aux pannes, plus résistant à des attaques
par déni de service parce que le contenu du réseau est distribué.
hôtes individuels peuvent être peu fiables, mais dans l’ensemble, le
système devrait maintenir un niveau de service constant
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 43 / 49
Styles d’Architecture Architecture Système
Architecture Vs Middleware
où se situe le middleware dans une architecture?
Middleware: la couche logicielle entre les applications utilisateur et
plates-formes distribuées.
Objectif: assurer la transparence de la distribution
Les applications peuvent accéder à des programmes en cours
d’exécution sur les nœuds distants sans comprendre l’environnement
distant
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 44 / 49
Styles d’Architecture Architecture Système
Appendix
Content Adressable Network - P2P Structuré
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 45 / 49
Styles d’Architecture Architecture Système
Un espace de dimension d est divisé entre tous les nœuds (voir page
46)
Chaque noeud et chaque élément de données est attribué un point
dans l’espace.
recherche de données équivaut à connaı̂tre la région des points limites
et le noeud responsable de chaque région.
Y.BENHAMZA (INTTIC, Oran) Architectures des Systèmes Distribués November 19, 2017 46 / 49
Styles d’Architecture Architecture Système
Architecrue P2P Structuré
2-dim espace [0,1] x [0,1] est
réparti entre 6 nœuds
Chaque noeud a une région
associée
Chaque élément de données
CAN sera attribué un point
unique dans l’espace
Un nœud est responsable de
tous les éléments de données
mises en correspondance avec sa
région
Y.BENHAMZA (INTTIC, Oran) Figure 1.12 : Le mappage
Architectures des Systèmes Distribués des2017
November 19, données
47 / 49
Styles d’Architecture Architecture Système
Architecrue P2P Structuré
2-dim espace [0,1] x [0,1] est
réparti entre 6 nœuds
Chaque noeud a une région
associée
CPour ajouter une nouvelle
région, découper une région
Pour supprimer une region
existante,le voisin prendra la
releve
Y.BENHAMZA (INTTIC, Oran) Figure 1.13 : Découpper
Architectures des Systèmes Distribués Novemberune region48 / 49
19, 2017