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 (3.75 heures)
    • Introduction au cours
    • Définition d'un système distribué
    • Exigences des systèmes distribués
    • Transparence dans les systèmes distribués
    • Pratiques courantes et environnement de développement
  • Principes fondamentaux de communication (3.75 heures)
    • Communication par sockets
    • Java NIO
    • Réseaux et intergiciels
  • Appel de procédure distante RPC (7.5 heures)
    • Différences entre objets locaux et objets distribués
    • Représentation de données externes: JSON, Protobuf, Thrift
    • RMI, Thrift, CORBA - Common Object Request Broker Architecture
  • Intergiciels de messagerie (9 heures)
    • JMS
    • AMQP
    • Publish/Subscribe
  • Composants côté serveur (6 heures)
    • JEE - Java Enterprise Edition, JavaServer Pages (JSP), Enterprise Java Beans (EJB)
    • Patrons MVC et Acteur
    • Frameworks pour Java, Scala, et Go: Spring, Akka
  • Orchestration de services et services web (3 heures)
    • SOA
    • BPEL
    • DNS, LDAP
  • Introduction à l'infonuagique (cloud computing) (3 heures)
    • Microservices
    • Serverless computing
  • Introduction à la programmation de Smart Contracts (3 heures)
    • Blockchains
    • Ethereum 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 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. CORBA (Common Object Request Broker Architecture)
  2. JEE (Java Enterprise Edition), servlets & JSP avec base de données
  3. JEE avec frameworks

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 orientés objet, de même qu'avec les patrons architecturaux liés aux infrastructures basées sur les composants (par ex.: JEE avec EJB). 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 basés sur le paradigme orienté objet, comme la technologie Java Enterprise Edition (JEE). Ceci inclut, mais n'est pas limité aux outils suivants:

  • Intergiciel CORBA en Java: JacORB
  • Environnement de développement intégré: Eclipse Luna pour développeur JEE
  • Outil de gestion complète de projet (compilation, configuration, déploiement): Apache Maven
  • Serveurs applicatifs JEE: Apache Tomcat, Jetty
  • Serveur de bases de données relationnelles: PostgreSQL