RSX102

Technologies pour les applications en réseau


6 crédits Eric GRESSIER-SOUDAN EPN05 - Informatique Unité d'enseignement de type mixte

Publié Du 01-09-2019 au 31-08-9999

Prérequis

Ce cours s'appuie sur des connaissances en systèmes informatiques et en réseaux couches basses. Pour s'inscrire les élèves doivent posséder un niveau de connaissances correspondant à la réussite aux unités de valeur des deux premières années de licence L1 et L2 ou RNCP niveau III. En particulier UTC505 est obligatoire sinon un équivalent qui traite du même programme. UTC501, UTC502, UTC503 sont vivement recommandées. 

Objectifs pédagogiques

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.

Compétences

Les connaissances ciblées concernent l'architecture des applications au-dessus d'Internet, pour cela les auditeurs doivent maîtriser nombre de concepts : transport d'information, gestion de l'hétérogénéité des données et des architectures, modèles de programmation client/serveur, communication par messages, communication par variables partagées, cohérences des données, passage à l'échelle, architecture du Cloud... et les repères clefs de certaines applications connues comme la blockchain, les CDN... 

A l'issue de cet enseignement, les auditeurs auront comme compétences des facultés d'analyse des aspects réseaux couches hautes des applications et systèmes d'informations mis en oeuvre sur Internet et pourront être critiques des solutions élaborées par un fournisseur, une maîtrise d'ouvrage ou une maîtrise d'oeuvre. S'ils viennent à faire du développement d'application, ils auront des compétences qui contribuent à un profil qu'on qualifie aujourd'hui parfois de "netdevops".

Contenu

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 :

  • 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)

Modalités de validation

  • Examen final

Description des modalités de validation

Un examen final de 3h valide cette UE.

Thésaurus du Cnam :

  • Applications réparties
  • Architecture client-Serveur
  • Architecture de base web

Thésaurus Formacode :

  • 24284 - architecture client serveur

Secrétariat

Libellé
EPN05 - Informatique
Nom du contact
Mmadi Hamida
Adresses email
hamida.mmadi@lecnam.net
Numéros de téléphone
01 40 27 28 21
Adresse postale
2 rue Conté accès 33.1.11B
Paris 75003