Public concerné et conditions d’accès
Ce cours est destiné aux élèves ayant suivi avec succès la première année du cycle d'ingénieur (cycle probatoire) ou les trois années de licence et qui souhaitent aprofondire leurs connaissances en systèmes répartis.
Finalités de l’unité d’enseignement
Objectifs pédagogiques :
Présenter les aspects concernant les systèmes et applications coopératives ou réparties (client-serveur, "middleware"). Développer les problèmes et des difficultés du domaine considéré et certaines des solutions utilisées pour les résoudre, l'organisation et la syntaxe de l'interface de quelques produits très répandus, l'ingénierie et la mise en oeuvre des techniques et outils proposés.
Capacité et compétences visées :
Connaisssances générales sur les systèmes répartis et les middleware.
Contenu de la formation
Introduction
Notions générales associées à la répartition.
Concepts matériels et logiciels. Objectifs : parallélisme, flexibilité, indépendance de localisation, sûreté et sécurité, extensibilité.
Introduction aux différentes approches de systèmes et de répartition :
- middleware réseaux en mode message, à événements,
- en mode RPC (approches à objets répartis CORBA, approches à composants),
Introduction aux approches micronoyaux (Chorus).
La gestion des communications
Modes de communication par messages.
Ingénierie des applications distribuées en mode message : outils de spécification utilisant les automates synchronisés.
Modes de communication par appel de procédures distantes. Sémantiques de l'appel de procédure distante.
La gestion des activités et la synchronisation
Problèmes et solutions de synchronisation en mode message : ordres partiels, causalité.
La réalisation de propriétés d'ordre dans les systèmes répartis : applications à la solution de problèmes de diffusion, de reprise arrière.
La tolérance aux pannes dans les systèmes répartis : différentes approches de la redondance, introduction à l'algorithmique répartie par tolérance aux pannes (détection de panne, consensus, diffusion, synchronisation d'horloges, élection).
Le partage des données
La désignation dans les systèmes répartis, les différents niveaux de désignation, les gestions d'annuaires.
Les cohérences mémoires en univers réparti : principaux modèles de consistance.
Les systèmes de fichiers répartis. Exemple : NFS, AFS. Support de la mobilité dans les fichiers répartis.
Exemples d'intergiciels (middleware)
Les systèmes d'objets répartis : concepts associés à la notion d'objet répartis, exemples de systèmes CORBA, DCOM, Java RMI.
L'approche composants : exemple EJB.
Introduction à la programmation par aspects (AspectJ).
Bibliographie
|
Auteur |
Titre |
|
A.S. TANENBAUM |
Distributed operating systems (Prentice Hall). |
|
G. COULOURIS, J. DOLLIMORE, T. KINDBERG |
Distributed systems (ADDISON WESLEY) | |