Logo ÉTS
Session
Cours
Responsable(s) Kaiwen Zhang

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





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