Systèmes Repartis

Systèmes Repartis   GIN5108
Enseignant:
Email:
Durée totale du cours: 22.5 H
Semestre: 5
Option : Ingénierie logicielle
Nombre de crédits: 2
Modules

spécialisés

Modules de

base

Sciences et techniques de

l’ingénierie

Préparation à la carrière professionnelle
X

 

Code : GIN5108 Systèmes Repartis

 

Volume Horaire                        : 1,5h Cours intégrés (par semaine)

Objectifs d’apprentissage et compétences visées

A la fin de ce cours l’étudiant sera capable de:

  • Énumérer les caractéristiques des systèmes et des applications répartis
  • Maîtriser le développement d’applications client/serveur en utilisant les sockets
  • Maîtriser le développement d’applications réparties en utilisant les RMI
  • Concevoir des algorithmes pour des applications réparties

Contenu du  cours

  • Introduction générale
    • Communication, applications réparties : services fournis, principes de réalisation
    • Place respective du système d’exploitation, des couches de communication, du middleware
    • Notions communes : noms, adresses, liaison, notions de protocole et d’interface
  • Programmation client-serveur sockets – RPC
    • Mise en œuvre du modèle client-serveur sur la couche de transport (sockets + RPC)
    • Réalisation du RPC (stubs, IDL, conversion de paramètres…)
  • Introduction aux objets répartis Java RMI
    • Introduction aux objets répartis
    • Patrons de base : proxy, factory, nommage
    • Un exemple de middleware à objets : Java RMI
    • Utilisation
    • Principes et détails techniques de mise en œuvre
  • Introduction à l’algorithmique des systèmes répartis
    • Temps et état dans un système réparti.
    • Coopération de processus répartis
    • Tolérance aux fautes
    • Consensus et validation
    • Désignation dans les systèmes répartis
    • Gestion répartie de l’information

Méthodes d’enseignement et d’apprentissage

  • Enseignement frontal (magistral) avec des exemples à résoudre en
  • Exercices théoriques et études de cas (présentation et discussion).
  • Travaux pratiques (laboratoire)
  • Travaux à faire à domicile (mini-projet, exposé, compte-rendu, …)

Connaissances et compétences pré-requises

  • Programmation C et Programmation JAVA
  • Systèmes d’exploitation
  • Introduction aux réseaux

Références bibliographiques

  • Un polycopié (Notes du cours) de l’enseignant sera
  • Autres références sous forme de tutoriaux, manuels ou documents à télécharger
  • Les recommandations bibliographiques suivantes doivent être considérées :
    • Coulouris, J. Dollimore, T. Kindberg, G. Blair, « Distributed Systems: Concepts and  Design », Addison-Wesley, 5th Ed., 1047 pages, 2012.

Modalité d’évaluation

  • 40% Contrôle continu (Test, Assiduité, Devoir surveillé, travaux non présentiels, …)
  • 60% Examen semestriel
  • Test, Assiduité, Travaux non présentiels, Mini-projets, … = 60% de Contrôle Continu
  • Note de DS = 40% de Contrôle Continu

Résultats d’apprentissage :

Compétences Techniques:

  • Conception de systèmes répartis: Les étudiants devraient être capables de concevoir des systèmes informatiques répartis en utilisant des architectures appropriées, des protocoles de communication et des modèles de distribution.
  • Programmation distribuée: Ils devraient maîtriser la programmation orientée objet, les services web, les technologies de middleware, et être capables de développer des applications distribuées.
  • Gestion des données distribuées: Les étudiants devraient comprendre les bases de données distribuées, la gestion des transactions, la réplication des données et la cohérence dans les environnements distribués.
  • Sécurité des systèmes répartis: Ils devraient être conscients des défis liés à la sécurité des systèmes répartis, y compris l’authentification, la confidentialité, l’intégrité des données et la gestion des certificats.
  • Scalabilité et performance: Comprendre les techniques de mise à l’échelle des systèmes répartis pour répondre aux besoins de performance et de charge de travail croissants.
  • Virtualisation et conteneurisation: Familiarisation avec les technologies de virtualisation et de conteneurisation (comme Docker et Kubernetes) pour le déploiement et la gestion d’applications distribuées.

Compétences Transversales:

  • Collaboration en équipe: Travailler efficacement en équipe pour la conception, le développement et la maintenance de systèmes répartis.
  • Résolution de problèmes: Capacité à analyser et à résoudre des problèmes complexes liés aux systèmes répartis.
  • Communication technique: Savoir communiquer efficacement des concepts techniques à un public non technique.
  • Pensée critique: Développer la capacité à évaluer les choix d’architecture et de conception de manière critique et à prendre des décisions informées.
  • Éthique professionnelle: Comprendre et appliquer des principes éthiques dans la conception et l’utilisation de systèmes répartis.
  • Adaptabilité: Être capable de s’adapter aux évolutions constantes des technologies et des besoins du domaine des systèmes répartis.
  1. Gestion de projet: Avoir une compréhension de base de la gestion de projet pour planifier, exécuter et contrôler des projets liés aux systèmes répartis.

Laisser un commentaire

Défiler vers le haut
Need Help? Chat with us