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