CSC 4509 – Algorithmique et communications des applications réparties

Portail informatique

Informations générales

Prérequis, objectifs, et mode d'évaluation :
Prérequis

Les étudiants sont invités à vérifier qu'ils possèdent les compétences suivantes :

  • en algorithmique séquentielle (CSC3101, bonne pratique),
  • en système d'exploitation UNIX (CSC3102, bonne pratique),
  • en génie logiciel avec le langage Java (CSC4102, bonne pratique),
  • en architecture matériel et langage C (CSC4103, bonne pratique),
  • en programmation réseau avec le langage C (NET4102, connaissance de base),
Objectifs du module

À l'issue du module, les étudiants seront capables, 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 :

  1. 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,
  2. lire, donner une exécution, et expliquer les preuves d'algorithmes répartis de base (élection, diffusion, exclusion mutuelle, interblocage et détection de terminaison),
  3. 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.

À l'issue du module, les étudiants seront aussi capables d'étudier en groupe des articles de recherche sur la thématique de la tolérance aux fautes, d'en discuter avec un spécialiste, et ensuite, d'en faire une présentation synthétique aux autres étudiants de la classe.

Mode d'évaluation

Note =

  • 8/18 Devoir maison avec soutenance (6 pour la soutenance + 2 pour le rendu du devoir ; le devoir peut être effectué en binôme, la soutenance est individuelle)
  • + 3/18 lecture et présentation d'un article de recherche
  • + 9/18 série de TP avec rendus (rapport et code)

 

Tableau de bord

(Légende : date conseillée [sans rendu], date limite [avec rendu])
Thème« programmation d'application répartie
avec JAVA NIO »
Thème« algorithmique répartie » Thème« mise en œuvre d'algorithmes répartis »
DM Étape 0 (installer le devoir) 11/05
DM Étape 1 (Maven et fichier JAVA NIO) 11/05
DM Étape 2 (TCP avec JAVA NIO) 17/05
DM Étape 3 (Sérialisation, RPC) 25/05
DM Étape 4 (Multithreading) Optionnelle
Code du DM pour les étapes de 1 à 3 incluse 25/05
QCM introduction (sur Moodle) 26/05
QCM élection (sur Moodle) 24/05
1è lecture et compréhension de l'article 29/05
QCM diffusion (sur Moodle) 04/06
QCM exclusion mutuelle (sur Moodle) 06/06
QCM interblocage (sur Moodle) 08/06
QCM détection de terminaison (sur Moodle) 01/06
2è lecture et compréhension de l'article 07/06
3è lecture et compréhension de l'article 14/06
Diapositives de la présentation de l'article de recherche 19/06
Mise en œuvre : installation, ossature de départ 25/05
Mise en œuvre de l'élection 31/05
Mise en œuvre de la diffusion causale 05/06
Mise en œuvre de l'exclusion mutuelle 09/06
Mise en œuvre de la détection de terminaison 23/06
Rapport et code de la mise en œuvre 23/06

Séquencement