205 lines
9.1 KiB
HTML
205 lines
9.1 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="CONTENT-TYPE" content="text/html;
|
|
charset=windows-1252">
|
|
<title></title>
|
|
<meta name="GENERATOR" content="OpenOffice.org 1.1.4 (Win32)">
|
|
<meta name="CREATED" content="20051025;2415301">
|
|
<meta name="CHANGEDBY" content="Daniel Hagimont">
|
|
<meta name="CHANGED" content="20051025;3523617">
|
|
</head>
|
|
<body dir="LTR" lang="fr-FR">
|
|
<p align="CENTER"><font style="font-size: 28pt" size="6"><b>TP ESB<br>
|
|
<i><small><small><small><small><br>
|
|
</small></small></small></small></i></b><i><small><small><small><small>Daniel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hagimont</small></small></small></small></i><b><br>
|
|
</b></font></p>
|
|
<p><br>
|
|
</p>
|
|
<p><big><b>Sujet</b></big><br>
|
|
</p>
|
|
<p>Le but de ce TP est de travailler avec le framework Mule étudié
|
|
en cours, autour d'un scénario d'intégration d'applications.<br>
|
|
Dans ce scénario, nous voulons intégrer 4 applications :<br>
|
|
</p>
|
|
<p>- Saisie : une application permettant de saisir les données
|
|
personnelles d'une personne qui s'inscrit quelque part (par
|
|
exemple un étudiant à l'enseeiht)<br>
|
|
- Email : une application de gestion d'emails utilisée par un
|
|
administratif qui valide les inscriptions<br>
|
|
- BD : un serveur de base de données enregistrant les étudiants<br>
|
|
- Login : un système d'exploitation sur lequel on gère des comptes
|
|
utilisateurs (cette fonction est accessible par un Web Service) </p>
|
|
<p>Le but de d'implanter le scénario suivant d'intégration :<br>
|
|
- Saisie : les données d'une personne sont saisies et
|
|
l'application permet d'exporter les données en XML Ces données
|
|
doivent être ensuite transmises à l'administratif par email<br>
|
|
- Email : l'admistratif verifie la cohérence des données, puis
|
|
valide l'inscription en répondant à ce mail (à l'adresse spécifiée
|
|
dans ReplyTo).<br>
|
|
- Web : ces données doivent alors être intégrées dans la base de
|
|
données. Elles sont donc reçues par email (la réponse) et intégrée
|
|
dans la base de données.<br>
|
|
- Login : les mêmes données sont exploitées pour demander la
|
|
création d'un compte utilisateur sur une machine avec un web
|
|
service<br>
|
|
</p>
|
|
<p><br>
|
|
<b><big>Les applications à utiliser : legacy</big></b></p>
|
|
<p>- saisie : ce répertoire contient une petite application de
|
|
saisie (voir le readme)<br>
|
|
- bd : ce répertoire contient la base de données à lancer (hsqldb)<br>
|
|
- ws : ce répertoire contient le Web Service permettant de
|
|
demander la création d'un login, à déployer dans un Tomcat (voir
|
|
readme)<br>
|
|
- il faudra avoir une adresse email correspondant à celle utilisée
|
|
par l'administratif et une utilisée pour recevoir la réponse de
|
|
l'administratif<br>
|
|
<br>
|
|
</p>
|
|
<p><big><b>Environnement Logiciel</b></big></p>
|
|
JDK 1.7 : il vous faut utiliser cette version de Java pour utiliser
|
|
la version de Mule ci-dessous.<br>
|
|
- source use-jdk7.bash permet
|
|
d'utiliser ce JDK1.7<br>
|
|
- utiliser JDK1.8 pour
|
|
les autres logiciels (activeMQ, HSQLDB)<br>
|
|
<p>Mule Studio 1.3.0 : cette version est open source<br>
|
|
- copiez l'installation dans
|
|
votre répertoire nosave<br>
|
|
- décompressez la<br>
|
|
- lancer MuleStudio avec le
|
|
JDK1.7<br>
|
|
</p>
|
|
<p>legacy.tgz : contient les applications à intégrer<br>
|
|
- à copier chez vous<br>
|
|
</p>
|
|
<p>apache-activemq-5.12.1-bin.tar.gz : activeMQ<br>
|
|
- à copier chez vous </p>
|
|
<p>sujet-esb.tgz : les exemples de base utiles pour réaliser cette
|
|
intégration<br>
|
|
- à copier chez vous<br>
|
|
</p>
|
|
<p>Tout cela se trouve dans <big><b>/mnt/n7fs/ens/tp_dh/tp-esb</b></big><br>
|
|
</p>
|
|
<p><big><b><br>
|
|
Exemples</b></big><br>
|
|
</p>
|
|
Les exemples qui vous sont fournis sont situés dans le répertoire tp
|
|
:<br>
|
|
<p> - xml : un exemple de fichiers et de parsing xml<br>
|
|
- pour tester<br>
|
|
- importez ou recréez le
|
|
projet<br>
|
|
- créez des répertoires
|
|
/tmp/in et /tmp/out<br>
|
|
- exécutez le flow<br>
|
|
- copiez
|
|
legacy/saisie/example.xml dans /tmp/in<br>
|
|
- regarder dans /tmp/out<br>
|
|
</p>
|
|
<p> - jdbc : un exemple d'utilisation d'une BD<br>
|
|
- pour tester<br>
|
|
- importez ou recréez le
|
|
projet<br>
|
|
- ajoutez le driver jdbc
|
|
(legacy/bd/hsqldb/lib/hsqldb.jar) dans votre projet<br>
|
|
- lancez la BD<br>
|
|
- ant
|
|
start (dans legacy/bd)<br>
|
|
- créer la table dans la BD<br>
|
|
- ant db<br>
|
|
- regardez dans la BD<br>
|
|
- ant
|
|
console<br>
|
|
- exécutez le flow<br>
|
|
- copiez
|
|
legacy/saisie/example.xml dans /tmp/in<br>
|
|
- regardez à nouveau dans la
|
|
BD<br>
|
|
</p>
|
|
<p>- smtp : un exemple d'envoi d'email avec SMTP<br>
|
|
- pour tester<br>
|
|
- importez ou recréez le
|
|
projet<br>
|
|
- modifiez l'adresse email
|
|
pour ne pas m'envoyer un email !<br>
|
|
- exécutez le flow<br>
|
|
- copiez
|
|
legacy/saisie/example.xml dans /tmp/in<br>
|
|
- regardez votre mailbox<br>
|
|
</p>
|
|
<p>- imap : un exemple de lecture d'email avec IMAP<br>
|
|
- pour tester<br>
|
|
- importez ou recréez le
|
|
projet<br>
|
|
- utilisez une adresse gmail
|
|
(j'en ai une qui est tpdhlogin/tpdhpasswd, mais c'est mieux
|
|
d'avoir la votre)<br>
|
|
- exécutez le flow<br>
|
|
- envoyez un email à cette
|
|
adresse<br>
|
|
- regardez dans /tmp/out<br>
|
|
</p>
|
|
<p>- ws : un exemple d'appel à un web service<br>
|
|
- pour tester<br>
|
|
- lancez tomcat et copiez de
|
|
WS dedans (legacy/ws/WS.war)<br>
|
|
- importez ou recréez le
|
|
projet<br>
|
|
- exécutez le flow<br>
|
|
- copiez
|
|
legacy/saisie.example.xml dans /tmp/in<br>
|
|
- regardez dans
|
|
/tmp/accounts (simule l'ajout d'un compte utilisateur)<br>
|
|
</p>
|
|
<p> - jms : un exemple d'envoi de message JMS<br>
|
|
- pour tester<br>
|
|
- importez ou recréez le
|
|
projet<br>
|
|
- ajoutez le driver de
|
|
activemq (apache-activemq-5.12.1/activemq-all-5.12.1.jar) dans
|
|
votre projet<br>
|
|
- lancez activemq<br>
|
|
-
|
|
./activemp start dans apache-activemq-5.12.1/bin<br>
|
|
- exécutez le
|
|
flow<br>
|
|
- copiez
|
|
legacy/saisie.example.xml dans /tmp/in<br>
|
|
- regardez dans /tmp/out</p>
|
|
<p> <b><big>Etapes</big></b><br>
|
|
</p>
|
|
<p>- dessinez un schéma global de l'intégration<br>
|
|
- travaillez de façon incrémentale :<br>
|
|
- connectez Saisie et Email<br>
|
|
- connectez Email et la BD<br>
|
|
- intégrez Login<br>
|
|
<br>
|
|
</p>
|
|
<p><big><b>Attention: Bug dans MuleStudio !</b></big><br>
|
|
</p>
|
|
<p>Si vous utilisez un endpoint IMAP, lorsque vous sauvegardez votre
|
|
projet, il arrive que MuleStudio génère un XML buggé.<br>
|
|
A l'exécution, vous observez une exception :
|
|
org.xml.sax.SAXParseException<br>
|
|
Si vous allez voir le XML généré, vous verrez une ligne incomplète
|
|
: <br>
|
|
http://www.mulesoft.org/schema/mule/imap s "><br>
|
|
Enlevez là en vérifiant que le XML reste bien parenthèsé.<br>
|
|
<br>
|
|
</p>
|
|
<p><br>
|
|
</p>
|
|
</body>
|
|
</html>
|