Plan de cours

Plan de cours

Cours:
INF8480 - Systèmes répartis et infonuagique
Département:
Génie informatique et génie logiciel
Trimestre:
Automne 2020
Crédits:
3 Crédits (3 / 1,5 / 4,5)
Web:
http://www.polymtl.ca/etudes/cours/details.php?sigle=INF8480

Professeur: Michel Dagenais
Local: M-3426
Tel: 514-340-4711/4029
Courriel: michel.dagenais@polymtl.ca

Chargés de laboratoire:

- Pierre-Frédérick Denys

Description de l’annuaire

Introduction aux systèmes répartis et à l'infonuagique. Environnement de développement technologique et réseautique des systèmes répartis. Architectures client-serveur, pair à pair, orientées-services et totalement réparties. Infrastructure, plate-forme et applications en tant que services. Concepts d’objets distants et d’intergiciels. Virtualisation des nœuds et du réseau. Notions de synchronisation du temps et de systèmes transactionnels répartis. Méthodes et techniques de conception de services performants, répartis, virtualisés, sécuritaires et tolérants aux défaillances. L'informatique et le développement durable dans le contexte d'applications réparties et de l'infonuagique.

Prérequis:

INF3405

Objectifs

Ce cours vise à permettre d'utiliser efficacement les réseaux (Internet) pour implanter des applications informatiques réparties, infonuagiques, et ainsi accéder des ressources à distance, ou distribuer le traitement entre plusieurs ordinateurs, afin d'augmenter la performance ou la tolérance aux pannes. Le tout sera placé dans une perspective de développement durable.

À la fin du cours, l'étudiant sera en mesure de :

  • expliquer les notions de base des systèmes répartis et de l'infonuagique ainsi que les implications pour le développement durable;
  • décrire les concepts architecturaux les plus répandus dans les environnements répartis;
  • analyser et comparer les architectures client-serveur, pair-à-pair, orientée-services, totalement réparties et virtualisées (infrastructure, plate-forme et application en tant que service);
  • développer des applications performantes, réparties, virtualisées, sécuritaires et tolérantes aux défaillances

Méthodes d’enseignement et déroulement du cours

Le cours présente un mélange équilibré de concepts théoriques et pratiques importants ainsi que de descriptions de protocoles, logiciels et librairies qui permettent de les mettre en oeuvre. L'étudiant est en premier lieu appelé à faire des lectures préparatoires avant chaque séance de cours et de laboratoire. Les points majeurs de chaque module sont revus rapidement en classe et les aspects plus critiques sont détaillés à l'aide d'exemples, d'exercices et d'études de cas. Les étudiants doivent ensuite mettre en oeuvre les concepts et technologies ainsi appris, lors des travaux pratiques.

Évaluation

  • Contrôle périodique:   en raison de la pandémie, examen en ligne; pondération 30%. L'examen se déroule pendant les heures de cours, la date est indiquée dans l'horaire détaillé.

  • Examen final: aucune documentation permise sauf un aide-mémoire, préparé par l’étudiant, qui consiste en une feuille de format lettre manuscrite recto verso; pondération 40%; en présentiel, pendant la période d'examens finaux. En raison de la pandémie, il se peut qu'un examen en présentiel ne soit pas autorisé, auquel cas une solution de remplacement comme un examen en ligne sera utilisée.

  • Travaux pratiques et exercices: pondération 30%; 12 questionnaires sur Moodle portant sur les lectures préparatoires, les concepts du cours et les travaux pratiques, un par semaine, tel qu'indiqué dans l'horaire détaillé, comptent pour 1.5 points chacun pour un total de 18 points; 6 remises de résultats pour les travaux pratiques comptent pour 2 points chacune pour un total de 12 points. Les travaux pratiques peuvent être réalisés en équipe de 1 ou 2 maximum. En équipe de 2, les co-équipiers auront les mêmes paramètres d'entrée pour le travail pratique et pourront donc réaliser conjointement les manipulations et la programmation correspondante. Il est possible de changer de co-équipier à chaque travail pratique. Chaque étudiant répond individuellement au questionnaire. Cependant, les co-équipiers, ayant les mêmes paramètres d'entrée, pourront fournir les mêmes réponses aux questions qui portent sur les résultats du travail pratique. 

  • Condition de réussite du cours: Une moyenne pondérée de moins de 40% pour le contrôle périodique et l'examen final entraînera automatiquement un échec.

Documentation

Manuel de référence principal:

Autres livres de référence:

  1. G. Coulouris, J. Dollimore, T. Kindberg, G. Blair, Distributed Systems: Concepts and Design, Addison-Wesley, 5th Ed., 1047 pages, 2012.
  2. R. Orfali, Client/server survival guide, 1999, ressource électronique sur le site web de la bibliothèque.
  3. F. Stajano, Security for ubiquitous computing, Wiley, 1st Ed., 247 pages, 2002.
  4. R.J. Andersson, Security engineering: a guide to building dependable distributed systems, Wiley, 1st Ed., 612 pages, 2001.
  5. K. Kopparapu, Load balancing servers, firewalls, and caches, ressource électronique sur le site web de la bibliothèque.
  6. G. Friesen, Java 2 By Example, 2nd Edition, 2002, ressource électronique sur le site web de la bibliothèque.
  7. S. Holzner, Java 2 Black Book, 1st Ed., 2001, ressource électronique sur le site web de la bibliothèque.
  8. J. Siegel, CORBA 3 fundamentals and programming, Wiley, 2nd Ed., 899 pages, 2000.
  9. S. Goswami, Internet protocols: advances, technologies and applications, Kluwer, 1st Ed., 316 pages, 2003.
  10. D.K. Barry, Web services and service-oriented architectures: the savvy manager's guide, 2003, ressource électronique sur le site web de la bibliothèque.
  11. L.F. Cabrera, Web services architecture and its specifications: essentials for understanding WS, 2005, ressource électronique sur le site web de la bibliothèque.
  12. A. Tanenbaum, Computer networks, Prentice Hall, 4th Ed., 891 pages, 2003.
  13. B. McNab, Network Security Assessment, O’reilly, 1st Ed., 373 pages, 2004.
  14. L. Bass, Software architecture in practice, Addison-Wesley, 1st Ed., 452 pages, 1998.

Programme du cours

  1. Introduction aux systèmes répartis. Historique. Concepts de base, modèles et caractéristiques de ces systèmes. Exemples d’applications réparties sur Internet. (3 heures)
  2. Architecture des clients de l'Infonuagique. Terminaux légers, virtualisation du bureau, machines virtuelles dans les fureteurs Web, et applications mobiles. (3 heures)
  3. Processus serveurs pour l'infonuagique. Services pour les machines virtuelles et conteneurs, les fichiers ou les applications. Exemples de Amazon EC2 et OpenStack, et de Kubernetes et Docker. (3 heures)
  4. Communication dans les systèmes répartis. Communication inter-processus. Messages de groupes. Appels de procédures à distance Modèles d’intergiciels. Sun RPC, gRPC, CORBA et ses services. (3 heures)
  5. Communication par objets répartis. Concepts d'objets répartis et d’interfaces distantes. Java RMI, et .NET Remoting. (3 heures)
  6. Services de fichiers. Services de fichiers répartis et poste à poste. Composantes et interfaces. Mécanismes pour l'implantation. Exemples: Sun NFS, CMU AFS, GFS, Ceph, Napster, Gnutella et BitTorrent. (3 heures)
  7. Résumé de mi-session et contrôle périodique. (3 heures)
  8. Service de répertoire de noms. Modèle et Mécanismes. Exemples: DNS, GNS, X.500, LDAP. (3 heures)
  9. Services de temps et de coordination. Synchronisation d'horloges physiques. Synchronisation par des horloges logiques. Coordination dans un système réparti. (3 heures)
  10. Cohérence et réplication pour les données réparties. Transactions et procédures de recouvrement. Contrôle des opérations simultanées (verrous, méthodes optimistes, ordonnancement par identificateur de temps). Protocoles pour les mises à jour atomiques réparties. Contrôle des accès simultanés répartis. Transactions en présence de réplication. (3 heures)
  11. Tolérance aux pannes. Modèles de pannes. Tolérance aux pannes par la réplication. Modèles de réplication. Ordonnancement des requêtes et cohérence. (3 heures)
  12. Informatique et développement durable. Rappels sur le dévelopement durable. Cycle de vie des composantes d'un centre de donnée, fabrication des appareils, opération, et recyclage en fin de vie. Implications de l'informatique et de l'infonuagique sur le développement durable: dématérialisation, optimisation des procédés, consommation d'énergie. (3 heures)
  13. Conclusion. Exemples et résumé de fin de session. (3 heures)

Laboratoires

  1. Découverte des technologies de l'infonuagique et mise en place de l'environnement (3 heures)
  2. Application client-serveur utilisant les appels de procédure à distance gRPC. (3 heures)
  3. Mise en place d'un système de fichiers répartis. (3 heures)
  4. Mise en place de services simples de temps et de noms. (3 heures)
  5. Validation de transactions. (3 heures)
  6. Mise en place d'un service infonuagique tolérant aux pannes basé sur l'orchestration Kubernetes. (3 heures)

Qualités

Dans le cadre de ce cours, les étudiants développeront les qualités précisées dans le tableau ci-dessous. La qualité Impact sur la société et l'environnement sera évaluée lors de l'examen final. ( www.polymtl.ca/etudes/bc/qualites)

1- Connaissance en génie 2- Analyse de problèmes 3- Investigation 4- Conception 5- Utilisation d’outils d’ing. 6- Travail en équipe 7- Communication 8- Professionnalisme 9- Impacts Environm. 10- Déontologie 11- Économie et gestion de projets 12- Apprentissage continu
x x x x x x
Modifié le: lundi 31 août 2020, 11:11