Le cours se décline en différentes thématiques, qui regroupent certains éléments spécifiques (protocoles, cadriciels, technologies, etc.):
- Introduction aux systèmes distribués (2 heures)
- Plan de cours et 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ées
- Gestion des données: sérialisation, représentation des données, appel de procédure distante (9 heures)
- Différences entre objets locaux et objets distribués
- Représentation de données externes (normes et cadriciels): JSON, Protobuf, Thrift, Avro
- Appel de procédure distante (RPC): RMI, JSON-RPC, gRPC
- Mise en cache des données (Redis, memcached)
- Intergiciels de messagerie et intergiciels orientés-événements (7 heures)
- Files d'attente: AMQP, RabbitMQ, MQTT
- Publish/Subscribe orienté contenu
- Kafka
- Examen intra (3 heures)
- Intergiciels de traitement des données massives (6 heures)
- Traitement Big Data: MapReduce, Spark
- Traitement continu de données (stream processing): Storm, Flink
- Intergiciels dans un contexte d'infonuagique et d'informatique en périphérie (5 heures)
- Architectures en microservices
- Fonctions lambda
- Docker, Kubernetes
- Sécurité (TLS, HTTPS, JWT)
- Informatique en périphérie
- Systèmes décentralisés (4 heures)
- Réseaux pair-à-pair: tables de hachage distribuées
- Applications pair-à-pair: Skype, Spotify, BitTorrent
- IPFS / libp2p
- Tendances et paradigmes émergents (contenu exact à déterminer) (3 heures)
- Examen final (3 heures)
Notes:
[1] Les durées indiquées pour chaque thématique sont des heures approximatives d’enseignement. Ces heures sont sujettes à varier selon le déroulement du cours.
[2] Puisque le cours est en évolution, il est possible qu'il y ait des variations au niveau de certains des éléments et des thématiques secondaires présentés (par exemple, protocoles, cadriciels, technologies) ainsi que de l'ordre de présentation. Toutefois, l’ensemble des thématique principales énoncées seront abordées dans le cadre de ce cours.