Code
IGSF CSC 4509
Level
M1
Graduate
Graduate
Semester
Spring
Domain
Informatique
Program
Programme Ingénieur
Language
Français/French
ECTS Credits
4
Class hours
45
Workload
90
Program Manager(s)
Department
- Informatique
Educational team
Organisation
Cours/TD/TP/projet/examen : 0/20/25/0Learning objectives
À l'issue du module, les étudiants sont 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 :
- 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.
À l'issue du module, les étudiants sont 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.
CDIO Skills
- 1.3 - Advanced engineering fundamental knowledge, methods and tools
- 3.1.2 - Team Operation
- 4.3.2 - Defining Function, Concept and Architecture
- 4.4.1 - The Design Process
- 4.4.3 - Utilization of Knowledge in Design
Prerequisites
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)
Keywords
Algorithmique répartie, programmation réseau (JAVA NIO), mise en œuvre d'algorithmes répartis
Content
- 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.
Evaluation
Note finale = 9/20 TP noté + 3/20 travail en groupe sur la lecture et présentation d'articles + 8/20 série de TP avec rendus (rapport et code)
La présence en cours est prise en compte dans l'évaluation.
Assessment formula
Note finale = 9/20 TP noté + 3/20 travail en groupe sur la lecture et présentation d'articles de recherche + 8/20 série de TP avec rendus (rapport et code)
La présence en cours est prise en compte dans l'évaluation.
References
Supports de cours :
- « Algorithmes répartis » » (Cours en ligne avec simulations)
- « Architecture des systèmes distribués » (diapositives commentées)
- Tutoriels en ligne Oracle, série « The Java Tutorials »
Bibliographie :
- A.S. Tanenbaum. Distributed Operating Systems. Prentice Hall, 1995.
- G. Tel. Introduction to Distributed Algorithms 2nd edition. Cambridge University Press, 2000.
- M. Raynal, Distributed Algorithms for Message-Passing Systems, Springer, 2013.
- G. Travis, Getting started with NIO, ibm.com/developerWorks, July 2003.
- A. Hitchens. JAVA NIO, O'Reilly, 2002
- Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, 1992.
Pedagogical methods
Assiduité : CC
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.