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 :
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, Java RMI.
L'approche composants : exemple EJB.
Les services Web.
Introduction à la programmation par aspects (AspectJ).
|