Ce cours a pour objet d’introduire les concepts de base en ce qui concerne les applications et les services opérant dans les réseaux tels que l’Internet. Nous nous intéresserons plus particulièrement aux couches hautes (allant le la couche transport à la couche application). La démarche pédagogique consiste à partir du modèle Client/Serveur pour aller vers les applications distribuées. Cette UE fait le lien entre l'application et le réseaux, et donne des clefs pour toute personne qui souhaite s'engager dans une démarche devops ou netdevops, et, pour toute personne qui administre et en particulier déploie des applications en réseaux.
Le cours s'intéresse aux applications Client-Serveur et Systèmes distribués dans un contexte Internet essentiellement. Ce cours développe les concepts vus en UTC505 et complète le cours RSX101. Toutefois il n’est pas indispensable d’avoir suivi RSX101 pour suivre RSX102. La liste des items ci-dessous ne préfigure pas de l'ordre dans lequel le cours se déroule.
Il a pour objet d’introduire les concepts de base en ce qui concerne les sujets suivants :
Il a pour objet d’introduire les concepts de base en ce qui concerne les sujets suivants :
- Protocoles de communication couches hautes :
- Approfondissement des concepts liés au transport d'information : TCP, ses variantes (DCCP, STCP, SST ou ses extensions dont MPTCP, UDP et ses variantes ou compléments (UDP-Lite, RTP, RTSP, RTMP)…
- HTTP, HTTPS, QUIC qu'on peut présenter sous le nom HTTP 3, HLS (HTTP Live Streaming).
- Formats d'échange de Données :
- Pour le web : HTML, XML, JSON, PacketBuffer
- Pour les télécommunications : ASN1/BER
- Paradigmes de programmation Client-Serveur :
- Sockets et Web Sockets
- Remote Procedure Call : d'ONC-RPC à gRPC
- SOAP et les Web Services, REST
- Modèle Publish/Subscribe des Files de messages : de l'IoT aux entrepôts de données : MQTT, RabitMQ, ZeroMQ, Kafka
- Introduction aux problématiques de partage de données et de tolérance aux fautes pour le Cloud :
- Exécutions en mode messages : Algorithmique distribuée, Ordre, Etat global, Coupes Cohérentes
-
- Partage de données répliquées et passage à l'échelle des architectures distribuées : cohérences uniformes, cohérences hybrides, cohérences faibles (Eventual Consistency, conjecture de Brewer et théorème CAP)
- Algorithmique distribuée en contexte tolérant aux fautes : types de pannes, consensus, auto-stabilisation
- Introduction aux architectures d'applications sur le Cloud
- Exécution : Architectures orientées Micro-services
- Stockage : P2P, data pipeline (injection pour les lacs de données)
- Exemple du Cloud Microsoft Azure (le fournisseur de Cloud peut varier)
- Quelques grandes applications Internet complèteront le cours mais la liste définitive évolue chaque année, donc cette liste est indicative :
- SMTP ou LDAP
- Un exemple de routage applicatif : les CDN
- Architectures Web 3 tiers (Front-End, Back-End, Data Base), Fermes de Serveurs Web
- ETL/DataLake
- Introduction à la Blockchain (plutôt comme un use case, et donc un séminaire qui accompagne le cours)