Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37
plan 1 Préambule 2 3 Objectifs Aspect statique Aspect dynamique Gérard Padiou Conception des systèmes répartis 2 / 37
Plan 1 Préambule 2 3 Objectifs Aspect statique Aspect dynamique Gérard Padiou Conception des systèmes répartis 3 / 37
Préambule : quelques «indicateurs» de tendance... Répartition communication entre objets informatisés L Internet des objets (The Internet of thinks) 1 24 milliards d appareils connectés entre eux en 2020 du porte-clé au réfrigérateur en passant par les plantes... Marché estimé à 1,2 billiards de dollars. Impact sur les protocoles réseaux : exemple UBN (ultra narrow band) sigfox L informatique dans les nuages (cloud computing) : l accès pour tous aux ressources/services informatiques Effet annexe : l analyse et l exploitation de grandes quantités de données (big data) 1. http://frenchweb.fr/decryptage-quelle-revolution-nous-reserve-internet-des-objets/77406 Gérard Padiou Conception des systèmes répartis 4 / 37
Préambule : aspects de la distribution (répartition) Distributed Computing Algorithms Applications Systems Architectures Gérard Padiou Conception des systèmes répartis 5 / 37
Préambule : de quoi allons nous parler? Distributed Applications Systems Computing Algorithms Architectures Temps réel & Multimedia, Simulation répartie, Objets communicants, Mobilité, etc Introduction, Causalité, Modèle standard Principes algorithmiques Problèmes génériques : élection, terminaison, consensus, cliché, etc Fichiers, Mémoire répartie, Tolérance aux fautes (diffusion de groupe), etc Gérard Padiou Conception des systèmes répartis 6 / 37
Plan Préambule 1 Préambule 2 3 Objectifs Aspect statique Aspect dynamique Gérard Padiou Conception des systèmes répartis 7 / 37
Modèle centralisé ou réparti Modèle centralisé Les processus se partagent des ressources critiques ou pas Modèle réparti Les processus échangent des données par messages Gérard Padiou Conception des systèmes répartis 8 / 37
Préambule Apports de la répartition Accès aux ressources distantes et partage : ressources physiques : imprimantes, traceurs,... ressources logiques : fichiers, données : textuelles, audio, images, vidéo. Répartition géographique Puissance de calcul Disponibilité Flexibilité Gérard Padiou Conception des systèmes répartis 9 / 37
Préambule Apports de la répartition Accès aux ressources distantes et partage : ressources physiques : imprimantes, traceurs,... ressources logiques : fichiers, données : textuelles, audio, images, vidéo. Répartition géographique Puissance de calcul Disponibilité Flexibilité Gérard Padiou Conception des systèmes répartis 9 / 37
Préambule Apports de la répartition Accès aux ressources distantes et partage : ressources physiques : imprimantes, traceurs,... ressources logiques : fichiers, données : textuelles, audio, images, vidéo. Répartition géographique Puissance de calcul Disponibilité Flexibilité Gérard Padiou Conception des systèmes répartis 9 / 37
MAIS modèle d exécution plus complexe... Problèmes... m1 est-il toujours envoyé avant m2 dans toute exécution? e 1 S 1 m1 est-il toujours reçu avant m2 dans toute exécution? m 1 e 2 S 2 Peut-on déduire? date(r 1 ) < date(r 2 )? date(e 1 ) < date(e 2 ) r 1 S 3 r 2 m 2 Fort non déterminisme : explosion des états possibles Gérard Padiou Conception des systèmes répartis 10 / 37
Idée... pour en savoir plus Dates dans messages... date(e 1 ) < date(e 2 )? e 1 avant? e 2 <m 1,date(e 1 )> Pas sûr... car l horloge n existe pas!!! r 1 e 1 S 1 e 2 S 2 S 3 r 2 <m 2,date(e 2 )> Gérard Padiou Conception des systèmes répartis 11 / 37
En réalité... Préambule il existe 2 horloges... date(e 1 ) < date(e 2 ) e 1 avant e 2 e 1 <m 1,date(e 1 )> S 1 e 2 S 2 H 1 Si les horloges sont synchronisées! r 1 S 3 r 3 <m 2,date(e 2 )> H 2 Pas de référentiel temporel unique Gérard Padiou Conception des systèmes répartis 12 / 37
Modèle d exécution plus complexe... suite S 1 Problème... P3 veut savoir si P1 ou P2 ont ouvert des fichiers? f 1 ouvert? P 1 f 1 P 2 S 2 Connaissance instantanée impossible ouvert? P 3 f 2 f 2 S 3 Un processus ne peut pas connaître instantanément l état courant de ses partenaires. Gérard Padiou Conception des systèmes répartis 13 / 37
Les épines... en résumé Impact de la répartition Pas d horloge globale : chaque site a son horloge Pas d état global immédiat accessible à un site Fiabilité globale relative : probabilité non négligeable d un arrêt d une machine, d un processus quel que part Sécurité relative : usagers potentiels nombreux... Non-déterminisme (parallélisme) : systèmes asynchrones Conséquence : modèle de calcul différent du cas centralisé Ordre partiel entre les événements d un calcul réparti Calcul d état global passé Gérard Padiou Conception des systèmes répartis 14 / 37
Les épines... en résumé Impact de la répartition Pas d horloge globale : chaque site a son horloge Pas d état global immédiat accessible à un site Fiabilité globale relative : probabilité non négligeable d un arrêt d une machine, d un processus quel que part Sécurité relative : usagers potentiels nombreux... Non-déterminisme (parallélisme) : systèmes asynchrones Conséquence : modèle de calcul différent du cas centralisé Ordre partiel entre les événements d un calcul réparti Calcul d état global passé Gérard Padiou Conception des systèmes répartis 14 / 37
Les épines... en résumé Impact de la répartition Pas d horloge globale : chaque site a son horloge Pas d état global immédiat accessible à un site Fiabilité globale relative : probabilité non négligeable d un arrêt d une machine, d un processus quel que part Sécurité relative : usagers potentiels nombreux... Non-déterminisme (parallélisme) : systèmes asynchrones Conséquence : modèle de calcul différent du cas centralisé Ordre partiel entre les événements d un calcul réparti Calcul d état global passé Gérard Padiou Conception des systèmes répartis 14 / 37
Les épines... en résumé Impact de la répartition Pas d horloge globale : chaque site a son horloge Pas d état global immédiat accessible à un site Fiabilité globale relative : probabilité non négligeable d un arrêt d une machine, d un processus quel que part Sécurité relative : usagers potentiels nombreux... Non-déterminisme (parallélisme) : systèmes asynchrones Conséquence : modèle de calcul différent du cas centralisé Ordre partiel entre les événements d un calcul réparti Calcul d état global passé Gérard Padiou Conception des systèmes répartis 14 / 37
Les épines... en résumé Impact de la répartition Pas d horloge globale : chaque site a son horloge Pas d état global immédiat accessible à un site Fiabilité globale relative : probabilité non négligeable d un arrêt d une machine, d un processus quel que part Sécurité relative : usagers potentiels nombreux... Non-déterminisme (parallélisme) : systèmes asynchrones Conséquence : modèle de calcul différent du cas centralisé Ordre partiel entre les événements d un calcul réparti Calcul d état global passé Gérard Padiou Conception des systèmes répartis 14 / 37
Thèmes de recherche sur la répartition Concevoir, modéliser, expérimenter Modélisation théorique Algorithmique Langages Systèmes d exploitation Intergiciels (middleware) Gérard Padiou Conception des systèmes répartis 15 / 37
Une idée clé : la notion de transparence Principe de conception Un bon système réparti est un système qui semble centralisé (qui s utilise comme) Gérard Padiou Conception des systèmes répartis 16 / 37
Idée : masquer la répartition Niveaux de transparence Accès Localisation Partage Réplication Fautes Mécanismes Interface Nommage Synchronisation Groupe Atomicité au cœur du Cloud computing : Niveaux de transparence Migration Charge Échelle Mécanismes Mobilité Réflexivité Reconfiguration Gérard Padiou Conception des systèmes répartis 17 / 37
Idée : masquer la répartition Niveaux de transparence Accès Localisation Partage Réplication Fautes Mécanismes Interface Nommage Synchronisation Groupe Atomicité au cœur du Cloud computing : Niveaux de transparence Migration Charge Échelle Mécanismes Mobilité Réflexivité Reconfiguration Gérard Padiou Conception des systèmes répartis 17 / 37
Idée : masquer la répartition Niveaux de transparence Accès Localisation Partage Réplication Fautes Mécanismes Interface Nommage Synchronisation Groupe Atomicité au cœur du Cloud computing : Niveaux de transparence Migration Charge Échelle Mécanismes Mobilité Réflexivité Reconfiguration Gérard Padiou Conception des systèmes répartis 17 / 37
Idée : masquer la répartition Niveaux de transparence Accès Localisation Partage Réplication Fautes Mécanismes Interface Nommage Synchronisation Groupe Atomicité au cœur du Cloud computing : Niveaux de transparence Migration Charge Échelle Mécanismes Mobilité Réflexivité Reconfiguration Gérard Padiou Conception des systèmes répartis 17 / 37
Idée : masquer la répartition Niveaux de transparence Accès Localisation Partage Réplication Fautes Mécanismes Interface Nommage Synchronisation Groupe Atomicité au cœur du Cloud computing : Niveaux de transparence Migration Charge Échelle Mécanismes Mobilité Réflexivité Reconfiguration Gérard Padiou Conception des systèmes répartis 17 / 37
Idée : masquer la répartition Niveaux de transparence Accès Localisation Partage Réplication Fautes Mécanismes Interface Nommage Synchronisation Groupe Atomicité au cœur du Cloud computing : Niveaux de transparence Migration Charge Échelle Mécanismes Mobilité Réflexivité Reconfiguration Gérard Padiou Conception des systèmes répartis 17 / 37
Idée : masquer la répartition Niveaux de transparence Accès Localisation Partage Réplication Fautes Mécanismes Interface Nommage Synchronisation Groupe Atomicité au cœur du Cloud computing : Niveaux de transparence Migration Charge Échelle Mécanismes Mobilité Réflexivité Reconfiguration Gérard Padiou Conception des systèmes répartis 17 / 37
Idée : masquer la répartition Niveaux de transparence Accès Localisation Partage Réplication Fautes Mécanismes Interface Nommage Synchronisation Groupe Atomicité au cœur du Cloud computing : Niveaux de transparence Migration Charge Échelle Mécanismes Mobilité Réflexivité Reconfiguration Gérard Padiou Conception des systèmes répartis 17 / 37
Transparence d accès Propriété Accès à une ressource distante accès à une ressource locale. Niveau langage de commande : sh rsh (non transparence) Niveau service système : read,write identiques que le fichier opérande soit local ou distant (tranparence) Niveau langage à objet : Appel de méthode local ou à distance identique pour l appelant (tranparence) Solution : Notion d interface Cas des intergiciels à objets : langage IDL et bus logiciel Gérard Padiou Conception des systèmes répartis 18 / 37
Transparence de localisation Propriété La localisation d une ressource reste cachée. Non transparence : commande rsh bach.enseeiht.fr Transparence : Niveau service système : open( nom-fichier,... ) : nom du fichier indépendant de la localisation du fichier Niveau langage à objet : références aux objets distants sans nécessité de connaître leur localisation Solution : Services de nommage gérant des noms globaux Cas des intergiciels à objets : serveurs de noms. Gérard Padiou Conception des systèmes répartis 19 / 37
Transparence du partage Propriété L usage partagé (et en parallèle) d une ressource doit rester cohérente ( sémantique équivalente au cas centralisé). Niveau service système : cohérence d accès à un fichier partagé : assurer les contraintes d exclusion mutuelle des lecteurs/rédacteurs, mais trop couteux Niveau langage à objets : limiter l exécution en parallèle des méthodes sur un objet Solution : Mécanismes de synchronisation Problème : mécanismes connus mais souvent couteux en réparti. Gérard Padiou Conception des systèmes répartis 20 / 37
Transparence de la réplication Propriété La répartition permet la redondance pour plus de fiabilité Niveau service système : assurer le maintien de plusieurs copies cohérentes d un même fichier. Niveau langage à objets : assurer la réplication transparente d un objet. Niveau intergiciel : assurer que plusieurs serveurs répliqués évoluent en cohérence. Solution : Synchronisme virtuel Notion de groupe et de protocoles de diffusion atomique Gérard Padiou Conception des systèmes répartis 21 / 37
Transparence des fautes Propriété La répartition induit un contexte moins fiable que celui du centralisé et nécessite donc de prévoir le traitement des fautes. Niveau service système : un service n est plus accessible (serveur de noms!!!) Niveau langage à objets : un appel à distance de méthode peut échouer... Solution : Traitement d exception et Atomicité Atomicité : un traitement s exécute en entier ou pas du tout. Gérard Padiou Conception des systèmes répartis 22 / 37
Transparence de la migration Propriété Permettre la migration de code, de processus, d agents, d objets. Niveau service système : déplacer un serveur d une machine chargée à une machine sous-utilisée Niveau langage à objets : code mobile : exemple des applets Java, exemple des fichiers postscript objets mobiles (ou agents mobiles) Solution : la mobilité des traitements et/ou des données Agents mobiles (contexte d exécution mobile), Code mobile Gérard Padiou Conception des systèmes répartis 23 / 37
Transparence de charge Propriété Masquer (et empécher) les phénomènes de surcharge, écroulement. La répartition permet naturellement la mise en œuvre de techniques d équilibrage de charge Niveau système : reconfigurer dynamiquement les services sur les machines disponibles selon la charge des serveurs. Niveau grappe (cluster) : répartir les traitements parallèles de façon équilibrée sur les différents processeurs. Solution : réflexivité Réflexivité : possibilité d auto observation des composants. Gérard Padiou Conception des systèmes répartis 24 / 37
Transparence d échelle Propriété Permettre l extension d un système sans remettre en cause son fonctionnement global. Niveau système : introduire de nouveaux serveurs sur de nouvelles machines pour s adapter à une augmentation de l activité applicative. Solution : Adaptabilité et autonomie Adaptabilité et autonomie : mise en œuvre de mécanismes automatique d adaptation dynamique. Gérard Padiou Conception des systèmes répartis 25 / 37
En résumé Répartition Accès et partage de ressources via un réseau de communication à tout usager qui en a le droit et où qu il soit Gérard Padiou Conception des systèmes répartis 26 / 37
de répartition du contrôle et des données Gestion d un parking Entrée Parking de N places Invariant : 0 <= R - D <= N R Médium de communication Sortie D.. Droit de restitution R - D < N (il existe une place) Droit de location R - D > 0 (il existe un véhicule) Gérard Padiou Conception des systèmes répartis 27 / 37
Spécification utilisant la notion d observation Définition de la relation d observation Abstraction d une communication entre 2 processus Relation entre une variable source Src et une variable image Img : l image Img est une copie + ou ancienne de la source Src. Processus Observateur via l image `Img `Img Src Processus Observé via la source Src `Img t 2 2 3 3 Src 2 6 3 1 valeur t valeur courante courante Gérard Padiou Conception des systèmes répartis 28 / 37
Spécification utilisant la notion d observation Formalisation Abstraction du calcul : une exécution vue comme une suite infinie d états (de transitions) σ = σ 1 ; σ 2 ;... ; σ i... Notation : σ i.x valeur de la variable x dans l état σ i Une horloge h : compteur croissant tel que : i 0 : h(i) i Une observation est une relation notée x x : - Informellement, la suite des valeurs prises par x est une sous-suite des valeurs prises par x dans l ordre chronologique. - Formellement : la relation x x est vérifiée ssi : σ : σ 0. x = σ 0.x h :: i 0 : σ i. x = σ h(i).x Forme de cohérence faible : des valeurs peuvent être perdues Gérard Padiou Conception des systèmes répartis 29 / 37
Spécification utilisant la notion d observation Répartition par réplication en cohérence faible Deux observations : R R D D ; Le couple de variables (D, R) est accessible en sortie ; Le couple de variables ( D, R) est accessible en entrée ; Possibilité de test d un prédicat local plus fort que le prédicat global (réparti) : - en entrée : R D < N R D < N - en sortie : R D > 0 R D > 0 Divers protocoles peuvent implanter la relation d observation. Gérard Padiou Conception des systèmes répartis 30 / 37
Centraliser? L approche client/serveur : appel procédural à distance L état global est centralisé quelque part et accessible à distance selon le protocole de l appel procédural à distance ; Interface du service : interface Superviseur { /* Pré : R D < N */ void autoriser_entrer() ; /* Pré : R D > 0 */ void autoriser_sortir() ; } État global représentable par NbV éhicules R D ; Gérard Padiou Conception des systèmes répartis 31 / 37
État global «mobile» L approche message «jeton» L état global circule entre les sites selon une structure d anneau ; Interface du service : class Passage { static int obtenirjeton() ; static void libérerjeton(int nouvel_état) ; } État global représentable dans le message jeton par le nombre de véhicules dans le garage. Restitution : un essai? int nbv = Passage.obtenirJeton(); Passage.libérerJeton(nbv++) ; Location : à voir? Gérard Padiou Conception des systèmes répartis 32 / 37
État global «mobile» : l approche message «jeton» Contrôle des restitutions while (true) { nbv= Passage.obtenirJeton() ; if (nbv < N && demande_de_restitution) { nbv++ ; /* autoriser une entrée */ } Passage.libérerJeton(nbv) ; } Contrôle des locations while (true) { nbv = Passage.obtenirJeton(); if (nbv > 0 && demande_de_location) { nbv-- ; /* autoriser une sortie */ } Passage.libérerJeton(nbv) ; } Gérard Padiou Conception des systèmes répartis 33 / 37
Objectifs Aspect statique Aspect dynamique Plan 1 Préambule 2 3 Objectifs Aspect statique Aspect dynamique Gérard Padiou Conception des systèmes répartis 34 / 37
Objectifs Aspect statique Aspect dynamique Modéliser un calcul réparti Objectifs Description statique et comportementale ; Abstraction pour faciliter l analyse ; Validation de propriétés (sûreté et vivacité). Les éléments de modélisation Les activités, processus, sites, etc notion de site logique ; La communication : liens, liaisons, canaux, protocoles (point-à-point, diffusion),... Les connaissances globales de chaque site logique. Gérard Padiou Conception des systèmes répartis 35 / 37
Objectifs Aspect statique Aspect dynamique Modèle de calcul réparti Aspect statique Graphe structurel (statique) Sommets sites logiques Arcs liaisons Nombreux attributs : Parallélisme Fiabilité Performances P 1 P 2 c 1 c 2 c3 c 4 P 3 c 5 P 4 P 5 Inconvénient : modèle statique, mais permet de poser les bases des problèmes de la répartition. Gérard Padiou Conception des systèmes répartis 36 / 37
Objectifs Aspect statique Aspect dynamique Modèle de calcul réparti Aspect dynamique Description globale (dans un repère temporel global) ; Description événementielle ; Trois types d événements : émission, réception, interne ; Modélisation de la communication : diffusion, perte, délais, etc A e 1 i 1 e 2 r 3 e 4 B r 2 r 1 e 5 r' 3 e 6 r 4 C e 3 r" 3 i 2 r 5 Gérard Padiou Conception des systèmes répartis 37 / 37