École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Écrit par

dans

Master Professionnel en Informatique, option Génie Logiciel (MGL) › Master 2 › Master GL · S4 · UE3 — Environnement de développement

Programmation distribuée

Code PDI5431 5 crédits CM 20h · TD 10h · TP 20h · TPE 50h Évaluation : CC + ET

👤 MC MAHAMADOU ISSOUFOU TIADO — Maître de conférences en Réseaux et Télécommunications

Se connecter pour s'inscrire Créer un compte

4 leçon(s) · 1 quiz · 0 inscrit(s)

Présentation

Ce cours de spécialité prépare l’ingénieur en génie logiciel à concevoir et programmer des applications réparties : services web et mobiles à forte charge, plateformes de paiement, systèmes d’information multi-sites. Il combine fondements théoriques (temps logique, exclusion mutuelle, consensus, cohérence) et pratique de la programmation (threads, sockets, RPC/gRPC, messagerie) au travers de travaux pratiques guidés.

Objectifs d’apprentissage

  • Caractériser un système distribué et évaluer le gain d’une parallélisation (Amdahl, Gustafson) ;
  • Programmer des échanges entre processus par sockets, RPC/gRPC et API, en maîtrisant les sémantiques d’appel ;
  • Calculer des horloges logiques et appliquer des algorithmes d’exclusion mutuelle et d’élection ;
  • Choisir un modèle de réplication et de cohérence (CAP, quorums) ;
  • Concevoir une application tolérante aux pannes (messagerie, idempotence, 2PC/Saga, consensus).

Prérequis

Programmation orientée objet (Java ou Python), systèmes d’exploitation (processus, threads), réseaux TCP/IP, bases de données transactionnelles.

Plan du cours

  1. Leçon 1 — Systèmes distribués, concurrence et parallélisme
  2. Leçon 2 — Communication : sockets, RPC et services distants
  3. Leçon 3 — Temps, horloges logiques et coordination répartie
  4. Leçon 4 — Middleware, réplication et tolérance aux pannes

Modalités d’évaluation

Volume horaire : 20 h de cours magistraux, 10 h de travaux dirigés, 20 h de travaux pratiques, 50 h de travail personnel (5 crédits). Évaluation : contrôle continu (TP guidés notés, exercices d’algorithmique répartie, quiz) et examen terminal écrit.

Bibliographie

  • Andrew S. Tanenbaum, Maarten van Steen, Distributed Systems, 3e éd., distributed-systems.net.
  • George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, Distributed Systems: Concepts and Design, Pearson.
  • Martin Kleppmann, Designing Data-Intensive Applications, O’Reilly.
  • Brian Goetz et al., Java Concurrency in Practice, Addison-Wesley.
  • Leslie Lamport, « Time, Clocks, and the Ordering of Events in a Distributed System », Communications of the ACM, 21(7), 1978.

Évaluation globale de la matière

Connectez-vous pour suivre votre progression.

Programme

  1. 🔒 Leçon 1 — Systèmes distribués, concurrence et parallélisme · 90 min
  2. 🔒 Leçon 2 — Communication : sockets, RPC et services distants · 90 min
  3. 🔒 Leçon 3 — Temps, horloges logiques et coordination répartie · 90 min
  4. 🔒 Leçon 4 — Middleware, réplication et tolérance aux pannes · 90 min
  5. 🔒 Quiz — Programmation distribuée · quiz

Évaluation globale de la matière

Connectez-vous pour suivre votre progression.