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

Été 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 quadriciel à 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 quadriciels.



Stratégies pédagogiques

Nous allons adopter la formule "classe hybride", avec des leçons vidéo hebdomadaires, ainsi qu'une séance en-ligne (par Zoom) périodique. L'accès à un ordinateur ainsi que l'Internet maison est donc obligatoire pour prendre ce cours. Les étudiants doivent aussi utiliser la plateforme Teams pour communiquer avec l'enseignant.

Les vidéos et les séances en-ligne correspondent aux trois (3) heures par semaine pendant treize (13) semaines de cours magistral. La participation active des étudiant(e)s sera sollicitée via divers exercices durant les séances Zoom. De plus, 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. Enfin, outre les cinq (5) heures en classe et au laboratoire, chaque étudiant(e) doit fournir quatre (4) heures de travail personnel ou d’équipe par semaine.

 




Utilisation d’appareils électroniques

L'accès à un ordinateur ainsi que l'Internet maison est obligatoire pour prendre ce cours en ligne. Vous devez apporter votre ordinateur portable à l'école pour prendre les examens.




Horaire
Groupe Jour Heure Activité
01 Mercredi 18:00 - 21:30 Activité de cours
Vendredi 18:00 - 21:30 Laboratoire



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Kaiwen Zhang Activité de cours Kaiwen.Zhang@etsmtl.ca A-4475
01 Thierry Fokou Toukam Laboratoire thierry.fokou-toukam.1@ens.etsmtl.ca



Cours

Contenu:

  • Introduction aux systèmes distribués (4 heures)
    • 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és
  • Appel de procédure distante RPC (7 heures)
    • Différences entre objets locaux et objets distribués
    • Représentation de données externes: JSON, Protobuf, Thrift
    • Technologies: JSON-RPC, gRPC
  • Intergiciels de messagerie (7 heures)
    • Files d'attente: AMQP, RabbitMQ, MQTT
    • Publish/Subscribe orienté contenu
    • Kafka
  • Applications Big Data (8 heures)
    • MapReduce, Spark
    • Traitement continue de données: Storm, Flink
  • Systèmes décentralisés (13 heures)
    • Réseaux pair-à-pair: Tables de hachage distribuées
    • Applications pair-à-pair: Skype, Spotify, BitTorrent
    • Technologies de chaînes de blocs: Bitcoin, Ethereum, Hyperledger
    • Contrats intelligents: Solidity

[1] 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.

[2] ces 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.




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 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.

Il y aura trois (3) laboratoires, chacun servant d’introduction aux technologies suivantes :

  1. Publish/Subscribe
  2. Traitement de données Big/Fast Data
  3. Application décentralisée (Solidity et Ethereum)

La durée ainsi que le travail à accomplir pour chacun des laboratoires seront spécifiés durant le trimestre.

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 laboratoires sont développés en langages C/C++ ou JAVA dans un environnement Posix ou Windows. D'autres langages peuvent être proposés.




Évaluation
Examen intra    30 %
Examen final 40 %
Laboratoires (3) 30 %

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

Les examens sont sur la plateforme Moodle; toute documentation individuelle est permise. Les examens se font en présentiel. Vous devez apporter votre ordinateur portable à l'examen pour se connecter sur Moodle.

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




Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 18 juin 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.

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

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.




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.




Adresse internet du site de cours et autres liens utiles

Nous utilisons Moodle et Teams.