Vous êtes sur la page 1sur 48

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

Vous aimerez peut-être aussi