Algorithmique et communications des applications réparties

Catalogue des cours de Télécom SudParis

Code

CSC 4509

Niveau

Graduate (M1)

Période

Spring (P4)

Domaine

Informatique

Langue d'enseignement

Français

Crédits ECTS

4

Heures programmées / Charge de travail

45 / 90

Responsable(s)

  • CONAN Denis

Département

- Informatique

Equipe pédagogique

  • CONAN Denis
  • LALLET Eric

Objectifs

À l'issue du module, les étudiants seront capable, dans le cadre du développement d’une application répartie de petite taille, mais réaliste, et dont le cahier des charges est fourni, de :
- développer entièrement une application répartie avec TCP/IP en utilisant la bibliothèque JAVA NIO avec des communications en modes connecté et déconnecté, et en modes synchrone et asynchrone,
- lire, donner une exécution, et expliquer les preuves des algorithmes répartis de base (élection, diffusion, exclusion mutuelle, interblocage et détection de terminaison),
- de mettre en œuvre les algorithmes étudiés par insertion dans l'application répartie développée dans le module et avec écriture de scénarios de tests simples (c.-à-d. sans utilisation de canevas logiciel d'émulation ou de simulation) pour vérifier les propriétés de correction et de progression.

Contenu

- Communication non fiable par échange de messages (UDP),
- Communication bidirectionnelle par canal fiable (TCP),
- Asynchronisme, lecture non bloquante, applications multiclientes, multiserveurs,
- Algorithmique répartie,
- Principes de base (synchronisme/asynchronisme, spécifications, modèles...),
- Problématique des systèmes répartis : motivations et caractéristiques fondamentales,
- Algorithmes par vagues, écho,
- Communications de groupe, diffusion, et ordres FIFO, causal et total,
- Élection,
- Exclusion mutuelle, interblocage et détection de terminaison.

Prérequis

Algorithmique séquentielle (CSC3101, bonne pratique), Système d'exploitation UNIX (CSC3102, bonne pratique), Programmation orientée objet avec le langage Java (CSC4102, bonne pratique) , Architecture matériel et langage C (CSC4103, bonne pratique), Programmation réseau en langage C (NET4102), Programmation système (CSC4508, bonne pratique)

Mots-clés

Algorithmique répartie, programmation réseau (JAVA NIO), mise en œuvre d'algorithmes répartis

Evaluation

Note finale = 8/20 TP noté + 4/20 travail personnel (QCM) + 8/20 série de TP avec rendus (rapport et code)
La présence en cours est prise en compte dans l'évaluation sous la forme d'un retrait d'un point par absence non justifiée

Approches pédagogiques

Les cours intégrés (CI/TD) consistent en 20h d'introduction à la conception d'applications réparties. Les travaux pratiques se décomposent en 22h de manipulations réalisées en binôme et en 3h (1 TP noté) de manipulations notées réalisées en monôme. L’ensemble des TP permettent de réaliser une étude de cas en binôme, avec un travail complémentaire à réaliser en binôme et un compte rendu (ou rapport final) à rendre en fin de module.

Programme

Programme Ingénieur

Fiche mise à jour : 20/12/2016 14:57:14