Logo ÉTS
Session
Cours
Responsable(s) Kaiwen Zhang

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Kaiwen Zhang


PLAN DE COURS

Automne 2024
LOG736 : Fondements des systèmes distribués (3 crédits)





Préalables
Programme(s) : 7065,7070,7365,7610
             
  Profils(s) : Tous profils  
             
    LOG645    
             
Unités d'agrément
Total d'unités d'agrément : 58,8 60,0 % 40,0 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours
Ce cours présente les principaux fondamentaux des systèmes distribués tels que le réseau informatique, horloges, les modèles de tolérance aux pannes, coordination, la réplication et les transactions. Le cours vise aussi à introduire les principes avancés de systèmes distribués, tels que les patrons pour le traitement de données massives (p. ex. : MapReduce), les réseaux pair à pair et décentralisés, et les notions de cohérence, de disponibilité et de tolérance au partitionnement. Les systèmes distribués à grande échelle pour données massives seront utilisés à titre d’exemple.

Au terme de ce cours, les étudiantes et les étudiants seront en mesure de : démontrer l’impact des principaux mécanismes de systèmes distribués en fonction de la variété de modèles de systèmes distribués et de pannes; analyser et concevoir des systèmes distribués selon les exigences fonctionnelles et non fonctionnelles requises; concevoir et implémenter des méthodes de réplication, tolérance aux pannes, coordination dans les systèmes distribués.

Séances de laboratoire axées sur la mise en œuvre de projets permettant d'implémenter les mécanismes de base des systèmes distribués, tel que la réplication, la coordination, et la tolérance



Objectifs du cours
  • Concevoir et implémenter des architectures de systèmes distribués
  • Appliquer des principes fondamentaux pour le développement de systèmes distribués
  • Comprendre les propriétés des composantes utilisées dans la conception de systèmes distribués (horloges, consensus, etc.)
  • Apprécier les défis liés à l'entretien de systèmes à grande échelle (pannes de réseaux et de machines, concurrence, etc.)
  • Étudier des concepts avancés pour des systèmes spécialisés (Big Data, Chaîne de blocs, etc.)



Stratégies pédagogiques

Les objectifs seront atteints par un enseignement sous la forme de cours magistraux, à raison de trois (3) heures par semaine pendant treize (13) semaines. La participation active des étudiant(e)s sera sollicitée via divers exercices et discussions en classe durant les cours. Les concepts vus en classe seront mis en application par l’intermédiaire de douze (12) séances de laboratoires de deux (2) heures chacune.




Utilisation d’appareils électroniques

Dès la rentrée d'automne 2022, les étudiantes et étudiants de l'ÉTS devront posséder un ordinateur portable pour participer à l'ensemble des activités.




Horaire
Groupe Jour Heure Activité
01 Lundi 13:30 - 17:00 Activité de cours
Mardi 13:30 - 15:30 Laboratoire (Groupe A)
Mardi 15:30 - 17:30 Laboratoire (Groupe B)



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Marcos Dias de Assuncao Activité de cours Marcos.Dias-De-Assuncao@etsmtl.ca A-4616
01 Marcos Dias de Assuncao Laboratoire (Groupe A) Marcos.Dias-De-Assuncao@etsmtl.ca A-4616
01 Thierry Fokou Toukam Laboratoire (Groupe B) thierry.fokou-toukam.1@ens.etsmtl.ca



Cours

La matière ne sera pas nécessairement présentée dans cet ordre. Toutefois, l’ensemble des sujets sera présenté dans le cadre de ce cours. Les heures sont des heures approximatives d’enseignement pour chaque sujet et incluent le temps alloué à l’examen intra-trimestriel et à la revue pour l'examen final.

1.  Fondements (7 heures)

  • Introduction aux systèmes distribués
  • Caractéristiques des systèmes distribués
  • Cas d'étude: Apache Kafka, Flink
  • Théorème de CAP

2.  Synchronisation de temps (7 heures)

  • Horloge physique
  • Temps logique

3. Coordination de processus (8.5 heures)

  • Exclusion mutuelle et élection de leader
  • Algorithmes de consensus: Paxos, Raft

4.  Partage de données (9.5 heures)

  • Réplication
  • Modèles de cohérences
  • Système de fichiers distribué: GFS

7. Chaînes de blocs (7 heures)

  • Problème des généraux byzantins
  • Cryptographie asymétrique
  • Bitcoin: clés et script



Laboratoires et travaux pratiques

Des exercices seront donnés environ chaque semaine durant les cours. Ces exercices ne seront pas corrigés. Les solutions aux questions seront données et discutées durant les cours, une semaine après que les exercices soient publiés. Le but de ces exercices est d'approfondir les connaissances sur le matériel vu en classe et de se préparer pour les examens.

Trois laboratoires seront donnés, un à chaque mois. Le but de ces laboratoires est de mettre en pratique le matériel appris durant les cours. Les étudiants devront concevoir, implémenter, et évaluer des systèmes distribués qui utilisent les mécanismes et techniques du cours.




Utilisation d'outils d'ingénierie

Les laboratoires sont développés en langages Java, C/C++ ou autre dans un environnement Posix ou Windows.




Évaluation
Examen intra 30 %
Examen final 40 %
Laboratoire - Projet 1 10 %
Laboratoire - Projet 2 10 %
Laboratoire - Projet 3 10 %

L'étudiant(e) doit avoir une moyenne d'au moins 50% dans les travaux individuels (intra et final) afin de réussir le cours. Cette condition est nécessaire mais non suffisante.

La documentation est permise lors des deux (2) examens. 

Les trois (3) laboratoires sont réalisés obligatoirement en équipe de deux (2) étudiant(e)s.




Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 21 octobre 2024



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

Veuillez respecter la procédure de remise, de même que les échéances fixées :

Retard de moins de 24 heures : perte de 10 %;
Retard de plus de 24 heures, mais moins de 48 heures: perte de 20 %;
Retard de plus de 48 heures, mais moins de 72 heures: perte de 30 %;
Retard de plus de 72 heures: perte de 100 %.




Absence à une évaluation

Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou l’étudiant doit utiliser le formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.

Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS pour se rendre à l’activité.

Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du RÉPC et 6.5.2 du RÉCS) entraînera l’attribution de la note zéro (0).




Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet. À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignante ou l’enseignant du cours.

Dispositions additionnelles

L'usage des Systèmes d’intelligence artificielle générative (SIAG) sera autorisé pour certaines activités. 




Documentation obligatoire

Manuels de cours (disponible en ligne):

van Steen, M., Tanenbaum, A. S., Distributed Systems, 4th edition, distributed-systems.net, 2023
Coulouris, G., J. Dollimore et T. Kindberg. Distributed Systems – Concepts and Designs, 5th edition, Addison-Wesley, 2012.




Ouvrages de références

Tout autre matériel sera fourni en ligne à chaque semaine.




Adresse internet du site de cours et autres liens utiles

Ce cours utilise la plateforme Moodle pour la mise à disposition du contenu des cours et des laboratoires. Les élèves pourront aussi utiliser Discord pour poser des questions à l'enseignant et au chargé de laboratoire.