LES SYSTEMES REPARTIS (NFP 214&215)
Projet 3
27/05/2017
Par J. LAFORGUE
page 1
Cnam
CONSERVATOIRE
N A T I O N A L
D E S A R T S
E T M E T I E R S
CENTRE REGIONAL
MIDI - PYRENEES
1. SPECIFICATION
L'objectif de ce projet 3 est de déporter l'IHM de gestion des jeux du projet2 dans un navigateur comme Internet
Explorer sous Windows sous la forme d'un applet.
Pour cela, nous allons développer un serveur Http minimal permettant de :
d'interpréter la requête Http GET suivant les syntaxes suivantes :
o GET / : envoi du fichier index.html
o GET/fichier : envoi d'un fichier quelconque
o GET /servlet/nom_servlet : exécution d'un servlet
o GET /servlet/nom_servlet ?formulaire : exécution d'un servlet et interprétation des
élements d'un formulaire
l'implémentation des servlets se fait en réalisant le chargement dynamique de la classe de servlet
l'arborescence des fichiers gérés par le mini serveur Http est :
o www : répertoire racine contenant
les fichiers .html, les fichiers .jar utilisés par les applets
le répertoire servlets contenant les classes de servlets
Le développement de ce mini serveur Http a été réalisé l'année dernière dans le cadre du projet 3 et projet 4.
Il vous est donné dans le code de l'atelier 16.
L'architecture a respectée est celle décrite dans l'atelier 16 :
o Les IHM étant séparées de l'applicatif par une interface il est facile de les déporter dans un navigateur
o La classe applicative utilisé par une IHM est donc une nouvelle classe qui implémente les méthodes de
l'interface et réalise le traitement de chaque méthode en réalisant les étapes suivantes :
o création d'un socket sur le port du mini serveur Http
o écrire la requête demandant au serveur Http d'exécuter un servlet
o écrire sur le socket les paramètres de la méthode.
o lire le socket pour récupérer les résultats (écrits par le servlet)
o interpréter ces résultats pour les retourner
o Il faut donc créer autant de servlet que de méthode de l'interface
o Chaque servlet réalise les étapes suivantes :
o lire le socket du servelt
o interpréter les informations lues qui sont les paramètres
o appeler le traitement applicatif
o écrire sur le socket le résultat du traitement. Si le traitement est "void" on écrit quand même
une information quelconque.
IPST-CNAM
Cycle C
Années 2005-2006
J. LAFORGUE
LES SYSTEMES
REPARTIS
PROJET 3
LES SYSTEMES REPARTIS (NFP 214&215)
Projet 3
27/05/2017
Par J. LAFORGUE
page 2
L'applet que nous voulons exécuter est celui de l'ihm du serveur des jeux développée dans le cadre de l'étape 2 du
projet 2. Cet applet a 3 paramètres :
o le nom de la machine où se trouve le serveur RMI des jeux
o le port sur lequel ce serveur s'exécute
o le nom RMI du serveur des jeux ("SERV_APP" dans ma correction du projet2)
Pour pouvoir renseigner ces 2 paramètres vous devez réaliser les points suivants :
o un fichier html contient un formulaire html permettant de saisir ces 3 valeurs
o l'action du formulaire consiste à exécuter un servlet dont le traitement est de :
o récupérer les valeurs du formulaire dans la structure de servlet
o lire le fichier html de description de l'applet de l'ihm du serveur des jeux
o remplacer les valeurs de ces paramètres avec celles récupérées
o écrire le texte de ce fichier html sur le socket
Vous devez modifier le code de l'IHM du serveur des jeux développée dans le cadre du projet2 afin de l'adapter à
la nouvelle architecture car quand elle crée "IhmJeu", elle utilise la classe IhmJeuRmiImp qui n'est plus
utilisable. Il faut la remplacer par la nouvelle classe IhmJeuHttpImp qui implémente les méthodes comme décrit
précédemment.
2. ARCHITECTURE
Le projet doit être fait suivant l'architecture de répertoires et fichiers suivants :
projet2
README.txt fichier texte expliquant votre projet
compil.bat compilation de tout le projet
runAppServeurJeuOD.bat exécution du serveur de gestion des jeux (celui du projet2)
runHttpd.bat exécution du mini serveur Http (celui de l'atelier 16)
MainHttpd.java Prog principal du mini serveur Http (celui de l'atelier 16)
bin Répertoire contenant les fichiers .class de compilation
cnamp
app (fusion des app de projet1 et projet2)
applets
IhmJeuHttpImp.java
IhmServeurJeuHttpImp.java
IhmServeurJeuApplet.java (ATTENTION: cette classe n'appartient
pas à un package)
html
index.html
IhmServeurJeuApplet.html
ihm (fusion des ihm de projet1 et projet2)
jeu (fusion des jeu de projet1 et projet2)
myhttp (celui de l'atelier16)
ordi (fusion des ordi de projet1 et projet2)
servlets
ATTENTION les servlets n'appartiennent pas à un package.
Ceci est un répertoire
Servlet d'envoi de lapplet au navigateur
GetAppletIhmServeurJeuServlet.java
Les servlets des méthodes de l'interface de AppJeuInt
IhmJeuAddJoueurServlet.java
IhmJeuEnvoyerMessageServlet.java
IhmJeuGetGrilleServlet.java
IhmJeuJoueurCourantServlet.java
LES SYSTEMES REPARTIS (NFP 214&215)
Projet 3
27/05/2017
Par J. LAFORGUE
page 3
IhmJeuGetMessageServlet.java
IhmJeuGetTailleGrilleServlet.java
IhmJeuJouerServlet.java
IhmJeuSetMessageServlet.java
IhmJeuSuppJoueurServlet.java
Les servlets des méthodes de l'interface AppServeurJeuInt
IhmServeurJeuCreerUnJeuServlet.java
IhmServeurJeuGetJeuxEnCoursServlet.java
IhmServeurJeuSupprimerUnJeuServlet.java
util
AppletUtil.java Classe utilitaire
www
Les fichiers .html ici sont ceux du répertoire html (ils sont copiés ici par le
script de compilation)
index.html
IhmServeurJeuApplet.html
Ce fichier .jar est fabriqué par le script de compilation. Il contient à la racine la
classe de l'applet et les classes utilisées par l'applet (cnamp.app. ..... )
IhmServeurJeuApplet.jar
servlets
(les fichiers .class des servlets. Copiés par le script de compilation)
Les fichiers html sont les suivants :
index.html
<HTML>
<BODY>
<H1> PROJET 3<BR></H1>
<hr WIDTH="100%">
<form NAME="SERVEUR_GRILLE" ACTION="servlet/GetAppletIhmServeurJeuServlet" >
Host app jeu<input TYPE=TEXT NAME="HOST_APP_SERVEUR_JEU" SIZE=10 VALUE="localhost"
><BR>
Port app jeu<input TYPE=TEXT NAME="PORT_APP_SERVEUR_JEU" SIZE=10 VALUE="9100" ><BR>
Nom app jeu<input TYPE=TEXT NAME="NOM_APP_SERVEUR_JEU" SIZE=10 VALUE="SERV_APP"
><BR>
<input TYPE=SUBMIT NAME="ACTION" SIZE=10 VALUE="Jouer" ><BR>
</form>
</BODY>
</HTML>
IhmServeurJeuApplet.html
<hr WIDTH="100%">
<BR>
<applet
name="IhmServeurJeuApplet"
code="IhmServeurJeuApplet"
codebase=""
archive="../IhmServeurJeuApplet.jar"
width="300"
height="300"
align="Left"
LES SYSTEMES REPARTIS (NFP 214&215)
Projet 3
27/05/2017
Par J. LAFORGUE
page 4
alt="Si votre navigateur permettait java, une appliquette apparaîtrait ici."
>
<PARAM name="HOST_APP_SERVEUR_JEU" value="localhost">
<PARAM name="PORT_APP_SERVEUR_JEU" value=9100>
<PARAM name="NOM_APP_SERVEUR_JEU" value="SERV_APP">
</applet>
3. EXECUTION
Pour exécuter ce projet :
lancer le serveur de notre application :
java -classpath "bin" cnamp.app.AppServeurJeuOD 9100 (runAppServeurJeuOD.bat)
lancer le serveur http : runHttpd.bat
java -classpath "bin" MainHttpd 9200 www (runHttpd.bat)
lancer Internet Explorer:
http://localhost:9200
Dans mon cas, les ports utilisés sont 9100 et 9200. Pour vous, ces ports sont
9100 + compte
9200 + compte
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !