Logo ÉTS
Session
Cours
Responsable(s) Kaiwen Zhang

Se connecter
 

Sauvegarde réussie
La notification a été envoyée
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Kaiwen Zhang


PLAN DE COURS

Hiver 2025
LOG721 : Intergiciels pour applications distribués (3 crédits)





Préalables
Programme(s) : 7070,7365,7610
             
  Profils(s) : Tous profils  
             
    LOG210    
             
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 vise à familiariser l’étudiante ou l'étudiant avec les principaux concepts liés aux systèmes distribués ayant des composantes développées grâce à des intergiciels ("middleware") orientés objet.

Au terme de ce cours, les étudiantes et les étudiants seront en mesure de : identifier les principales caractéristiques d’un système distribué; identifier les principales caractéristiques des intergiciels orientés objet; déterminer les divers attributs de qualité d’un système affectés par la distribution de ses composantes; choisir, en se basant sur la définition d’un problème à résoudre, la technologie d'intergiciel ou de cadriciel à utiliser pour le développement d’une application distribuée; concevoir et développer des applications distribuées à l’aide des principales technologies d'intergiciels et de cadriciels.

Les sujets abordés incluent entre autres : caractéristiques des systèmes distribués; les diverses formes de transparence; patrons de messagerie et d'intergiciels; patrons pour des cadriciels d'architectures distribuées et orientées services.

Séances de laboratoire axées sur la mise en œuvre de projets permettant de se familiariser avec les caractéristiques des intergiciels et cadriciels couramment utilisés, en développant des applications distribuées.

Note sur le préalable : LOG210 Analyse et conception de logiciels (4 cr.) pour les programmes de baccalauréat en génie logiciel et baccalauréat en génie des technologies de l’information;
IND220 Systèmes d’exploitation et services Internet (3 cr.) pour le programme de baccalauréat en informatique distribuée.



Objectifs du cours

À la fin de ce cours, l'étudiant(e) sera capable de :

  • nommer les principales caractéristiques d’un système distribué et ceux qui touchent principalement le developpement d'applications distribués;
  • expliquer comment les divers attributs de qualité d’un système sont affectés par la distribution de ses composantes;
  • expliquer comment le développement d’un logiciel non distribué diffère du même développement pour un environnement d’exécution distribué;
  • expliquer les principales caractéristiques des intergiciels orientés objet;
  • justifier, en se basant sur la définition d’un problème à résoudre, le choix d’une technologie d'intergiciel ou de cadriciel à utiliser pour le développement d’une application distribuée;
  • concevoir et développer des applications distribuées à l’aide des principales technologies d'intergiciels et de cadriciels.



Stratégies pédagogiques

Le cours comprend une partie magistrale (3 heures par semaine) et des séances en laboratoire (disponibilité du chargé de laboratoire 2 heures par semaine) au cours desquelles les étudiant(e)s réaliseront des projets en équipe. Le contenu du cours sera majoritairement présenté sous forme de présentations (format PDF), à distance via la plate-forme Zoom. Les notions théoriques seront intercallées avec différents exemples et exercices afin de pratiquer les notions vues en cours. Il est également à noter que chaque étudiant(e) doit fournir quatre (4) heures de travail personnel ou d’équipe par semaine.




Utilisation d’appareils électroniques

Un ordinateur portable est requis pour suivre le cours magistral ainsi que pour la réalisation des exercices en classe et des laboratoires.




Horaire
Groupe Jour Heure Activité
01 Mardi 18:00 - 20:00 Laboratoire (2 sous-groupes)
Mercredi 18:00 - 21:30 Activité de cours



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Julien Gascon-Samson Activité de cours Julien.Gascon-Samson@etsmtl.ca A-4456 Sur RDV
01 Thierry Fokou Toukam Laboratoire (2 sous-groupes) thierry.fokou-toukam.1@ens.etsmtl.ca



Cours

Le cours se décline en différentes thématiques, qui regroupent certains éléments spécifiques (protocoles, cadriciels, technologies, etc.):

  • Introduction aux systèmes distribués (2 heures)
    • Plan de cours et introduction au cours
    • Définition d'application et système distribué
    • Exigences des applications et systèmes distribués
    • Transparence dans les applications et systèmes distribués
    • Examples d'applications distribuées
  • Gestion des données: sérialisation, représentation des données, appel de procédure distante (9 heures)
    • Différences entre objets locaux et objets distribués
    • Représentation de données externes (normes et cadriciels): JSON, Protobuf, Thrift, Avro
    • Appel de procédure distante (RPC): RMI, JSON-RPC, gRPC
    • Mise en cache des données (Redis, memcached) 
  • Intergiciels de messagerie et intergiciels orientés-événements (7 heures)
    • Files d'attente: AMQP, RabbitMQ, MQTT
    • Publish/Subscribe orienté contenu
    • Kafka
  • Examen intra (3 heures)
  • Intergiciels de traitement des données massives (6 heures)
    • Traitement Big Data: MapReduce, Spark
    • Traitement continu de données (stream processing): Storm, Flink
  • Intergiciels dans un contexte d'infonuagique et d'informatique en périphérie (5 heures)
    • Architectures en microservices
    • Fonctions lambda
    • Docker, Kubernetes
    • Sécurité (TLS, HTTPS, JWT)
    • Informatique en périphérie
  • Systèmes décentralisés (4 heures)
    • Réseaux pair-à-pair: tables de hachage distribuées
    • Applications pair-à-pair: Skype, Spotify, BitTorrent
    • IPFS / libp2p
  • Tendances et paradigmes émergents (contenu exact à déterminer) (3 heures)
  • Examen final (3 heures)

Notes:

[1] Les durées indiquées pour chaque thématique sont des heures approximatives d’enseignement. Ces heures sont sujettes à varier selon le déroulement du cours.

[2] Puisque le cours est en évolution, il est possible qu'il y ait des variations au niveau de certains des éléments et des thématiques secondaires présentés (par exemple, protocoles, cadriciels, technologies) ainsi que de l'ordre de présentation. Toutefois, l’ensemble des thématique principales énoncées seront abordées dans le cadre de ce cours.




Laboratoires et travaux pratiques

Des exercices seront donnés environ à chaque semaine durant les cours. Ces exercices seront intercalés avec la présentation de la théorie. 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.

Il y aura trois (3) laboratoires, chacun servant d’introduction à différentes technologies présentées durant le cours. Les technologies à utiliser, la durée ainsi que le travail à accomplir pour chacun des laboratoires seront spécifiés durant le trimestre. Les laboratoires pourront se faire sur votre ordinateur personnel, ou sur les ordinateurs du département LOG-TI.

N.B.: si vous éprouvez des difficultés techniques avec le matériel des laboratoires du département, s.v.p. communiquez le problème à support-logti@etsmtl.ca.




Utilisation d'outils d'ingénierie

Les outils ingénierie correspondent aux différents cadriciels, normes et technologies que nous verrons durant le cours. Certains de ces outils seront mis en pratique durant les laboratoires.




Évaluation
Devoir 1 5%
Examen intra    30 %
Devoir 2 5%
Examen final 35 %
Laboratoires (3) 25 %

Précisions:

  • L'étudiant(e) doit avoir une moyenne d'au moins 50% dans les éléments individuels (examen intra et examen final) afin de réussir le cours. Cette condition est nécessaire mais non suffisante. 
  • Les devoirs sont également réalisés de manière individuelle, mais ne comptent pas dans le double-seuil.
  • Les examens sont en ligne sur Moodle, au moyen de Safe Exam Browser.
  • Les trois (3) laboratoires sont réalisés obligatoirement en équipe (nombre d'étudiants à déterminer selon la taille du groupe).



Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 19 février 2025



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.



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

Politique d'utilisation des SIAG pour ce cours:

Les outils de type "SIAG" représentent une évolution formidable (ex., ChatGPT, Copilot, Gemini, Meta AI). Leur utilisation doit toutefois être encadrée dans un contexte pédagogique, puisque l'objectif est de former les étudiant.e.s à devenir des ingénieur.e.s compétent.e.s et qualifié.e.s. Il est donc nécessaire de développer un bonne compréhension des concepts et technologies vues dans le cours.

  • Examens: l'utilisation des SIAG n'est pas autorisée durant les examens.
  • Laboratoires: L'utilisation des SIAG pour poser des questions de programmation ponctuelles et très spécifiques est tolérée, mais chaque utilisation doit être déclarée de manière spécifique dans les rapports.
  • En cours: l'utilisation des SIAG est autorisée et bienvenue pour aider à résoudre les exercices faits en classe ou bonifier la compréhension de certains concepts (comme un tuteur). Il est toutefois attendu que les étudiant.e.s fassent les exercices par eux-mêmes. De plus, de par l'expérience-même du professeur, les SIAG fournissent régulièrement de mauvaises réponses à certains des exercices.



Documentation obligatoire

Le matériel sera fourni sur Moodle à chaque semaine et constitue l'ensemble du matériel obligatoire.




Ouvrages de références

Kleppmann, Martin. Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems. " O'Reilly Media, Inc.", 2017.

Burns, Brendan. Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services. " O'Reilly Media, Inc.", 2018.

D'autres références pourraient s'ajouter dans le contenu du cours.




Adresse internet du site de cours et autres liens utiles

Le site du cours est sur la plate-forme Moodle/ENA.