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 2019
LOG721 : Intergiciels pour applications distribués (3 crédits)





Préalables
Programme(s) : 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’é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 é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.



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

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 en classe durant les cours. 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

Pour favoriser un bon environnement d’apprentissage dans le cours, une politique d’utilisation des appareils électroniques sera appliquée. Elle est expliquée à l’adresse https://sites.google.com/a/etsmtl.net/cfuhrman/se-preparer-pour-reussir/politique-electronique.




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



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Kaiwen Zhang Activité de cours Kaiwen.Zhang@etsmtl.ca A-4475



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
    • Java RMI
  • Intergiciels de messagerie (7 heures)
    • JMS
    • AMQP
    • Publish/Subscribe orienté contenu
  • Systèmes décentralisés (14 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
  • Applications Big Data (7 heures)
    • MapReduce
    • Systèmes de fichiers distribués: NFS, GFS, HDFS
    • Code d'effacement: Reed-Solomon

[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 laboratoires. 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. Réseaux pair-à-pair (table de hachage distribuée, DHT)
  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

L'étudiant se familiarise avec les patrons architecturaux liés spécifiquement aux intergiciels (middleware) et aux applications distribuées et décentralisées. Il apprend à utiliser et combiner ces patrons de diverses façons lors de la conception d'applications distribuées selon les besoins spécifiques.

Au niveau des outils logiciels, l'étudiant utilise les technologies de pointe dans le domaine des intergiciels. Ceci inclut, mais n'est pas limité aux outils suivants:

  • Files d'attente et publish/subscribe: MQTT, RabbitMQ, AMQP
  • Réseaux pair-à-pair: DHT
  • Big Data: Hadoop, HDFS, MapReduce
  • Blockchain: Bitcoin, Ethereum, Solidity



É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 sans documentation et seule une calculatrice non programmable est permise.




Dates des examens intra
Groupe(s) Date
1 15 octobre 2019



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



Plagiat et fraude
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

Le matériel sera fourni sur Moodle à chaque semaine.




Ouvrages de références

M. Völter, M. Kircher, U. Zdun : Remoting Patterns : John Wiley & Sons Ltd : 2005




Adresse internet du site de cours et autres liens utiles

https://ena.etsmtl.ca/course/view.php?id=10501 (Moodle)




Autres informations

Ce cours utilise la plateforme Moodle pour toute communication durant le semestre. Les élèves pourront aussi utiliser Moodle pour poser des questions à l'enseignant.