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 =

  • Partie programmation réseau JAVA NIO : 9 points, dont 2 pour le devoir maison et 7 pour le TP noté
  • Projet en binôme sur la mise en œuvre d’algorithmes répartis : 8 points
  • Étude d’un article de recherche en tutorat : 3 points

 

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) 13/05
DM Étape 1 (Maven et fichier JAVA NIO) 13/05
DM Étape 2 (TCP avec JAVA NIO) 20/05
DM Étape 3 (Sérialisation, RPC) 27/05
DM Étape 4 (Multithreading) Optionnelle
Code du DM pour les étapes de 1 à 3 incluse 27/05
QCM introduction (sur Moodle) 28/05
QCM élection (sur Moodle) 29/05
QCM diffusion (sur Moodle) 05/06
1è lecture et compréhension de l'article 07/06
QCM exclusion mutuelle (sur Moodle) 10/06
QCM interblocage (sur Moodle) 17/06
QCM détection de terminaison (sur Moodle) 18/06
2è lecture et compréhension de l'article 13/06
3è lecture et compréhension de l'article 18/06
Diapositives/QCM de l'article de recherche 19/06
Mise en œuvre : installation, ossature de départ 29/05
Mise en œuvre de l'élection 03/06
Mise en œuvre de la diffusion causale 10/06
Mise en œuvre de l'exclusion mutuelle 17/06
Mise en œuvre de la détection de terminaison 21/06
Rapport et code de la mise en œuvre 21/06

Séquencement