Programmation d'applications réseaux

Préambule

Objectifs du cours

Concevoir et mettre en œuvre des applications logicielles, en Java, qui gèrent des communications réseaux :

  • au dessus des protocoles IP, UDP ou TCP ;
  • en utilisant des architectures adaptées au besoin (serveurs concurrents, entrées-sorties non bloquantes...) ;
  • et en intégrant les mécanismes fondamentaux des protocoles de communication (représentation des données, trames, flots, acquittements...).
  • Principaux thèmes couverts

  • représentation des données, manipulation avec les objets implémentant l'interface java.nio.Buffer
  • transmissions en UDP, fiabilisation d'une transmission, rôles clients/serveur, découverte des entrées-sorties non bloquantes
  • clients TCP, gestion des flux de données, protocoles et formatage des données, le cas HTTP
  • serveurs TCP concurrents et leurs limites, mise en œuvre des entrées-sorties non-bloquantes
  • Principes pédagogiques

    Toutes les séances sont des cours/TP qui mélangent :

  • des apports conceptuels basiques (quelques slides)
  • une mise en œuvre immédiate (application directe)
  • une réflexion et expérimentation personnelle encadrée (sur un problème un peu plus complexe)
  • des restitutions, consolidations, capitalisations (problèmes soulevés, solutions possibles, "dogmes" à respecter)
  • Organisation

    Participer activement aux séances est nécessaire...

  • les interactions pédagogiques en cours/TP sont riches
  • le respect des horaires et du groupe est indispensable (contrôles, feed-back, vérifications par le même enseignant)
  • ... mais pas suffisant !

  • exercices à poursuivre, à finir, à déposer sur e-learning
  • cours à revoir, réflexions à mener
  • projet (assez gros) à réaliser
  • Évaluation

    30% TPnoteUDP + 30% TPnoteTCP + 40% PROJET

  • TPnote[UDP | TCP] : épreuves individuelles sur machines
  • PROJET constitué de trois notes :
    • rédaction d'une RFC décrivant le protocole
    • soutenance bêta du projet à mi-parcours
    • livraison finale, packagée et documentée
  • Ce qu'il faut faire

  • participer activement à chaque séance
  • revoir les slides et poursuivre les exercices à la maison
  • déposer systématiquement son travail sur e-learning
  • commencer le projet dès qu'il est donné et travailler régulièrement