Objectifs des TPs
Ces TPS doivent vous apprendre à :
Ecrire un protocole d’application
d’un serveur de façon à ce qu’il soit suffisamment complet
et précis pour qu’un client puisse être implémenté
afin d’utiliser votre serveur
Appréhender des technologies telles que le RMI de Java
qui permettent de générer automatiquement une grande partie des codes Client et Serveur
Déployer une application Client Serveur correctement
sur les postes Client et Serveur
Description
du sujet : un serveur de surnoms
Dans la lignée de services très utiles
tels que ceux offerts par les serveurs de noms (DNS...) et les serveurs
de clés, nous vous proposons de mettre en place un serveur de
surnoms. Ce serveur stocke le nom associé au surnom d'un étudiant
ou d'un enseignant du département SI de l'EPU. Deux personnes
différentes ne peuvent pas avoir le même surnom mais une
personne peut être affublée de plusieurs surnoms. Il doit
être possible par exemple d'enregistrer un nouveau surnom
et un nom associé, de modifier l'enregistrement, de lister les noms
et surnoms enregistrés dans le serveur. Le service offert ne
sera pas persistant : il initialise les associations surnom - nom au lancement
et perd les nouvelles associations lorsqu'il est arrêté.
Ressources
Vous pouvez vous référencer à
aux cours Sockets , IntroObjetRepartis , RMI et la réflexivité Java
aux
tutoriaux Java
et vous devez utiliser et compléter les classes suivantes
:
Enseignant.java,
Etudiant.java
Personne.java,
Surnom.java
6 séances encadrées sont consacrées
à ce travail.
Vous devez travailler en binôme et coopérer
ponctuellement avec d'autres binômes dont un choisi par votre
encadrant de TP
Partie Sockets (4 séances
encadrées)
1. Communication
client-serveur simplifiée en mode TCP
Etape 1
Choisissez un autre binôme
avec qui coopérer.
Lister ensemble les requêtes offertes par votre serveur
(appelées plus loin services). Vérifier que cela permet
d'offrir un service complet, suffisant et correct.
Tirer au sort la sérialisation
à mettre en œuvre (version Object ou chaîne de caractères).
Préparer un fichier protocoleDApplication.txt qui contient la description du protocole d’application
et de la sérialisation.
Etape 2
Etape 3
2. Questions de recul
Supposons que le serveur de surnoms soit
un serveur très important pour l'école et que nous soyons amenés
à mettre en place des serveurs esclaves qui soient des copies de ce
serveur. Pour simplifier nous utiliserons une communication en mode multicast
dans laquelle tous les serveurs esclaves sont des clients du serveur principal.
Via cette communication le serveur principal informe régulièrement
(délai de temps) les serveurs esclaves de son état.
Partie RMI (2 séances encadrées)
Vous allez tester et appréhender
la communication réseau par RMI
Questions de recul
Le fichier protocoleDApplication.txt en Semaine 2 (entre la deuxième et la troisieme séance)
Le fichier protocoleDApplication.txt en Semaine 4 + les codes Client et serveur + la
réponse aux questions (entre la quatrième et la cinquième
séance)
Un fichier RMI.txt expliquant le
déploiement pour un client (comparez
avec le déploiement Socket) + les questions
de recul en semaine 6 (entre la sixième semaine et l’exam)