atelier 16 - par Jacques LAFORGUE

publicité
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
ATELIER 16
I.
Objectifs
L’objectif de cet atelier est de montrer par un exemple simple, une architecture 3 tiers
dite « Http », comme décrite en cours :
- le 1er tier est le client léger de type applet s’exécutant dans le navigateur IE
- le 2ème tier est constitué de servlets qui s’exécutent dans un serveur HTTP
- le 3ème tier est constitué par un serveur applicatif RMI
Cet exemple pourra servir de modèle pour la réalisation d’un projet en TP.
2 cas sont implémentés :
- le 1er cas utilise un mini serveur Http développé de toute pièce en Java. Ce
cas permet de voir et comprendre la base d’architecture du fonctionnement
d’un serveur Http
- le 2ème cas utilise un vrai serveur Http, Tomcat version 5.0.
Le 1er cas permet une exécution suivant 3 architectures :
- une architecture main unique (CasMain)
- une architecture client-serveur dite lourde (CasRMI)
- l’architecture 3 tiers (internet) (CasRMI-HTTP)
Ceci permet de démontrer l’utilisation d’une interface qui sépare l’interface IHM de
l’applicatif.
II. Pré requis
Pour le cas 1 et le cas 2, le pré-requis est le JdK java alors que pour le cas 2, il est
nécessaire d’installer Tomcat.
Tomcat se télécharge librement sur Internet et sa procédure d’installation est
largement décrite sur Internet.
Il n’y a pas de configuration particulière de Tomcat.
III. Recommandations
Il n’y a pas de recommandation pour le cas 1 qui est autonome avec son script
unique de compilation.
Pour le cas 2, les recommandations sont de faire la sauvegarde du répertoire
webapps de Tomcat car le script de compilation va y installer les fichiers nécessaires
à l’exécution de l’application.
page - 1 -
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
Pour plus d’information, lire les fichiers README.txt situés dans chacun des cas.
IV. Présentation et concepts
L’application consiste en l’exécution d’un programme RMI dont le rôle est de fournir
les 2 services suivants :
- String getDate() : retourne un texte contenant un préfixe et une date en heure,
minute et secondes.
- void setPrefixe(String valeur) : change le préfixe du texte.
Une IHM affiche ce texte cycliquement (thread) et permet de changer la valeur du
préfixe.
page - 2 -
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
Architecture RMI :
Objet Distribué
Prefixe
IHM
setPrefixe(v)
Applicatif
getDate()
Bus RMI
Architecture HTTP :
Objet Distribué
Prefixe
IHM
servlet
setPrexixe
setPrefixe(v)
servlet
getDate
getDate()
Internet
Serveur HTTP
page - 3 -
Bus RMI
Applicatif
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
V. Architecture des répertoires
Entre le cas 1 et 2 l’architecture des répertoires est sensiblement la même. Pour le
cas 2, il existe une différence pour les servlets qui doivent être sous l’arborescence
classique des programmes web.
Cas 1 (CasRMI-HTTP) correspond au cas complet:
la racine contient les scripts de compilation et d’exécution ainsi que les
sources des programmes main (qui ne sont pas dans des packages)
bin
répertoire dans lequel sont générés les .class et les .jar
cnamp
répertoire des sources qui est structuré en 6 répertoires :
app
package java de l’applicatif
applets
sources des applets java
html
les fichiers html
ihm
package java de l’ihm
myhttp
package du mini-serveur HTTP
servlets
sources des servlets
www
arborescence des fichiers web utilisé par le mini serveur
Cas 2 :
la racine contient les scripts de compilation et d’exécution ainsi que les
sources des programmes main (qui ne sont pas dans des packages)
bin
répertoire dans lequel sont générés les .class et les .jar
cnamp
répertoire des sources qui est structuré en 6 répertoires :
app
package java de l’applicatif
applets
sources des applets java
html
les fichiers html
ihm
package java de l’ihm
myhttp
package du mini-serveur HTTP
servlets
sources des servlets
Le répertoire servlets est structuré en sous-repertoire web pour chacun des servlets :
<nom du servlets>
WEB-INF
web.xml
le fichier de description du servlet
classes
les .classe du servlet
lib
packages nécessaires à l’exécution du servlet
src
sources du servlet
Il n’y a pas de répertoire www car les fichiers sont copiés dans la webapps de
Tomcat par le script de compilation.
page - 4 -
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
VI. Compilations et exécutions
Cas 1 - CasMain
Pour compiler :
compilMain.bat
Pour exécuter :
runMain.bat
Cas 1 - CasRMI
Pour compiler :
compilRMI.bat
Pour exécuter :
runOrb.bat
runAppXXXServeur.bat
runIhmXXXClient.bat
Cas 1 - CasRMI-HTTP
Pour compiler :
compil.bat
Pour exécuter :
runOrb.bat
runAppXXXServeur.bat
runHttpd.bat
localhost (link sur IE)
runIhmXXXClient.bat
Cas2_AvecTomcat
Pour compiler :
compil.bat
Pour exécuter :
runOrb.bat
runAppXXXServeur.bat
startup Server Tomcat.bat
localhost (link sur IE)
runIhmXXXClient.bat
exécution de l'adaptateur RMI
exécution de l'OD (1 seule exécution)
exécution de l'IHM (autant que l'on veut)
exécution de l'adaptateur RMI (sur 9100)
exécution de l'OD (1 seule exécution)
exécution du mini-serveur Http (sur 9200)
équivalent à taper dans l'IE l'URL :
http://localhost:9200
on peut exécuter le client IHM en parallèle
également
ATTENTION la var d'env suivante doit être
définie dans le fichier avec le path de votre
JEE:
set JEE_LIB="C:\Sun\AppServer3\lib"
(dans mon cas)
exécution de l'adaptateur RMI (sur 9100)
exécution de l'OD (1 seule exécution)
lancement du serveur Tomcat
équivalent à taper dans l'IE l'URL :
http://localhost:8080
on peut exécuter le client IHM en parallèle
également
page - 5 -
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
VII. Architecture logiciel, réseau et matériel
Dans le cas CasMain:
page - 6 -
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
Dans le cas CasRMI :
Dans le cas CasRMI-HTTP complet :
page - 7 -
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
page - 8 -
NFP 214 - Systèmes et réseaux répartis
Jacques LAFORGUE
IPST-CNAM
VIII. Compilation
Pour chacun des cas, la compilation se fait tout simplement en exécutant le script
compil.bat.
Pour comprendre ces scripts, allez voir les commentaires qui s’y trouvent.
IX. Exécutions
Voir les fichiers README.txt
page - 9 -
Téléchargement