Systèmes informatiques distribués
Objectifs
Introduction à la programmation distribuée en s'appuyant sur une connaissance de base des réseaux locaux et des protocoles TCP-UPD/IP. Présentation du modèle client-serveur. Introduction à la causalité, au consensus, et à la diffusion fiable.
Description
Le cours comporte deux parties:
– Introduction aux concepts de base de la programmation distribuée, au modèle client-serveur, à différents schémas de réalisation des serveurs (séquentiel, multi-entrées, à la demande, multi-threaded)
– Introduction à l'algorithmique distribuée, notion d'horloge logique, notion d'ordre causal, d'ordre total, au principe et solution du consensus distribuée et de la diffusion atomique.
Le bureau d'étude permet une mise en pratique de ces concepts et techniques de développement en s'appuyant sur les sockets BSD. Un problème de diffusion d'information est tout d'abord résolu par une approche client-serveur, une seconde solution s'appuyant sur un modèle pair-à-pair et sur la mise en œuvre d'un protocole de diffusion fiable.
Compétences visées
- Maitrise du modèle client-serveur (CS)
- Implémentation du modèle CS avec les sockets BSD sur Linux
- Connaissance d'une solution au problème du consensus
- Connaissance de protocoles de diffusion fiable
Bibliographie
Polycopiés ENSEEIHT, support de cours M. Fabre;
Polycopiés ENSEEIHT, support de cours M. Roy;
"Distributed Algorithms", Nancy A. Lynch, Morgan Kaufmann Publishers Inc. San Francisco, CA, USA ©1996, ISBN: 9780080504704
Pré-requis nécessaires
Algorithmique, programmation C/C++, réseaux locaux, principes des systèmes d'exploitation,Unix.
Contact(s)
Lieu(x)
- Toulouse