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

Été 2022
LOG736 : Fondements des systèmes distribués (3 crédits)


Modalités de la session d’été 2022


Vous trouverez ci-dessous les modalités de la session d’été 2022. Vous devez les lire attentivement.


Pour assurer la tenue de la session d’été 2022, les modalités suivantes seront appliquées :


  • Les activités d’enseignement de la session d’été 2022 comprendront des activités en présence et à distance, lesquelles seront ajustées en fonction de l’évolution de la situation socio-sanitaire.
  • Pour les cours (ou séances de cours) donnés à distance, l’étudiant doit avoir accès à un ordinateur, un micro, une caméra et un accès à internet, idéalement de 10Mb/s ou plus. L’étudiant doit ouvrir sa caméra et/ou son micro lorsque requis, notamment pour des fins d’identification ou d’évaluation.
  • Les cours (ou séances de cours) donnés à distance pourraient être enregistrés, afin de les rendre disponibles aux étudiants inscrits au cours.
  • La notation des cours sera la notation régulière prévue aux règlements des études de l’ÉTS.
  • Les examens (intra, finaux) se feront en présence, tant que la situation socio-sanitaire le permet.
  • Le contexte actuel oblige bien sûr l’ÉTS à suivre de près l’évolution de la pandémie de COVID-19, laquelle pourrait entraîner, avant ou après le début de la session d’été 2022, un resserrement des directives et recommandations gouvernementales. Nous vous assurons que l’ÉTS se conformera aux règles en vigueur afin de préserver la santé publique et que, si requis, elle pourrait aller jusqu’à interdire l’accès physique au campus universitaire et ordonner que toutes les activités d’enseignement et d’évaluation soient exclusivement données à distance pour tout ou partie de la session d’été 2022. Ainsi, si les examens (intra, finaux) devaient se faire à distance, leur surveillance se fera à l’aide de la caméra et du micro de l’ordinateur et pourrait être enregistrée. Ceci est nécessaire pour se conformer aux exigences du Bureau canadien d’agrément des programmes de génie (BCAPG) afin d’assurer la validité des évaluations.
  • Des exigences additionnelles pourraient être spécifiées par l’ÉTS ou votre département, suivant les particularités propres à votre programme.

En vous inscrivant ou en demeurant inscrit à la session d’été 2022, vous acceptez les modalités particulières de la session d’été 2022.


Nous vous rappelons que vous avez jusqu’au 17 mai 2022 pour vous désinscrire de vos cours et être remboursé.


Pour les nouveaux étudiants inscrits au programme de baccalauréat uniquement, vous avez jusqu’au 31 mai 2022 pour vous désinscrire de vos cours et être remboursé.




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 d'un cours magistral, à 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.

Nous allons adopter la formule "classe hybride", avec des leçons vidéo hebdomadaires, ainsi que des séances intéractives sur Zoom pour faire des exercices et des discussions sur la matière de vidéos. L'accès à un ordinateur ainsi que l'Internet maison est donc obligatoire pour prendre ce cours.




Utilisation d’appareils électroniques

L'accès à un ordinateur ainsi que l'Internet maison est obligatoire pour prendre ce cours en ligne.




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



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Kaiwen Zhang Activité de cours Kaiwen.Zhang@etsmtl.ca A-4475
01 Rodrigue Tonga Naha Laboratoire (Groupe A) rodrigue.tonga-naha.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: BigTable, Hbase, Cassandra, Spanner
  • 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 sont 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 C/C++ ou JAVA dans un environnement Posix ou Windows.




Évaluation
Examen intra 30 %
Examen final 40 %
Laboratoire 1 10 %
Laboratoire 2 10 %
Laboratoire 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.

Les deux (2) examens sont sans documentation et seule une calculatrice non programmable est permise. Cette condition peut changer si les examens sont réalisés en ligne.

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




Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 27 juin 2022



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/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.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par 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 à un examen
Dans les cinq (5) jours ouvrables suivants, la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen 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 étudiants doivent consulter le Règlement sur les infractions de nature académique (https://www.etsmtl.ca/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-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 les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



Documentation obligatoire

Manuels de cours (disponible en ligne):

Coulouris, G., J. Dollimore et T. Kindberg. Distributed Systems – Concepts and Designs, 5th edition, Addison-Wesley, 2012. (CKDB)
Tanenbaum, A., van Steen, M. Distributed Systems: Principles and Paradigms. Prentice Hall International, 2001. (TS)




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 toute communication durant le semestre. Les élèves pourront aussi utiliser Slack pour poser des questions à l'enseignant.

YouTube sera utilisé pour les enregistrements vidéo, et Zoom sera utilisé pour les séances en ligne.