plan-algo-reparti

publicité
Master Réseaux et Systèmes Distribués (RSD)
Algorithmique des systèmes
et applications réparties
Badr Benmammar
[email protected]
Plan
 Pré requis
 Introduction aux systèmes distribués
 Programmation réseau en Java : Socket
 Temps dans un système distribué
 Introduction aux composants logiciels (JavaBeans)
 Introduction aux Java Server Pages (JSP)
 Algorithmique distribuée
 Exclusion mutuelle distribuée
 Diffusion atomique
 Élection d’un maître
 Consensus
2
Plan – cours 0
 Gestion des fichiers
 Classe File
 Quelques flots :
FileReader : lire un fichier caractère par caractère
 FileWriter : écrire des caractères dans un fichier
 PrintWriter : println et print dans un fichier
 BufferedReader : rechercher un mot dans un fichier

 Sérialisation : enregistrer et restaurer des objets
 L’interface Serializable
 ObjectOuputStream : écrire des objets dans un fichier
 ObjectInputStream : lire des objets à partir d’un fichier
3
Plan – cours 1
 Partie I : Systèmes distribués
 Définition
 Objectifs
 Avantages et inconvénients
 Applications réparties
 Partie II : Communication dans un système distribué
 Manières de communication
 Modèles de communication
 Type de communication
 Partie III : Algorithmique distribuée
 Voies d’études des systèmes distribués
 Éléments de base d’un système distribué
 Modèles conceptuels de systèmes distribués
4
Plan – cours 2




Définition
Modes de communication
Exemple de communication
Schémas d’écriture des sockets
 Créer un socket sans délai d’expiration
 Créer un socket avec un timeout
 Créer un serveur de socket à l’écoute sur un port
 Lecture directe du stream d’un socket
 Ecriture directe dans le stream d’un socket
 Lecture et écriture de plus haut niveau
 Lecture ligne par ligne de texte d’un socket
 Ecriture de texte dans un socket
 Lecture de données Java à partir d’un socket
 Ecriture de données Java dans un socket
 Transmission de données en passant par une chaîne de caractères
 Transmission d’objet par les sockets
 Communications entre un applet Java et un serveur à l’aide des sockets
5
Plan – cours 3
 Partie 1 : Temps dans un système distribué
 Temps logique
 Chronogramme
 Dépendance causale
 Parallélisme logique
 Délivrance

FIFO

Causale
 Partie 2 : Horloges logiques
 Estampille (horloge de Lamport)
 Vectorielle (horloge de Mattern)
 Matricielle
6
Plan – cours 4
 Introduction aux composants logiciels (JavaBeans)
 Objet + Pattern = Bean
 Patterns d’un Bean
 Pattern des propriétés simples
 Sérialisation en XML
…
 Introduction aux Java Server Pages (JSP)
 Pourquoi les JSP ?
 JSP vs Servlet
 Code des JSP
 Utiliser une classe java dans une JSP
 Déboguer les JSP
 Enchaîner les pages JSP
 JSP et JavaBeans
 JSP et MySQL
7
Plan – cours 5
 Définition
 Quelques exemples
 Méthodes pour gérer l’exclusion mutuelle distribuée
 Contrôle par un coordinateur

Algorithme d’exclusion mutuelle centralisé implanté en réparti
 Contrôle par jeton

Algorithme de « Le Lann » en 1977


Anneau sur lequel circule le jeton en permanence
Algorithme de « Ricart et Agrawala » en 1983

Jeton affecté à la demande des processus
 Contrôle par permission

Permission individuelle : Algorithme de « Ricart et Agrawala » en 1981

Permission par arbitre : Algorithme de Maekawa en 1985

Non traité dans ce cours
8
Plan – cours 6
 Diffusion
 Basique
 Fiable
 Ordonnancement
 FIFO
 Causal
 Total
 Diffusion atomique
 Types de diffusion
 Relations entre les diffusions
9
Plan – cours 7
 Élection
 Motivations
 Principes
 Phases d’Élection
 Phase de préparation
 Phase de décision
 Phase de proclamation du résultat
 Algorithmes d’Élections
 Algorithme de Chang et Roberts (1979)
10
Plan – cours 8
 Consensus : principe général
 Conditions à valider
 Consensus dans différents environnements (communications fiables dans tous
les cas) :
 Sans faute
 Synchrone, panne franche
 Asynchrone, panne franche
 Asynchrone, fautes byzantines
 Synchrone, fautes byzantines

Problème des généraux byzantins
 Consensus : résumé
11
Téléchargement