TP ESB
Daniel
Hagimont
Sujet
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.
Dans ce scénario, nous voulons intégrer 4 applications :
- Saisie : une application permettant de saisir les données
personnelles d'une personne qui s'inscrit quelque part (par
exemple un étudiant à l'enseeiht)
- Email : une application de gestion d'emails utilisée par un
administratif qui valide les inscriptions
- BD : un serveur de base de données enregistrant les étudiants
- Login : un système d'exploitation sur lequel on gère des comptes
utilisateurs (cette fonction est accessible par un Web Service)
Le but de d'implanter le scénario suivant d'intégration :
- 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
- 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).
- 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.
- 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
Les applications à utiliser : legacy
- saisie : ce répertoire contient une petite application de
saisie (voir le readme)
- bd : ce répertoire contient la base de données à lancer (hsqldb)
- ws : ce répertoire contient le Web Service permettant de
demander la création d'un login, à déployer dans un Tomcat (voir
readme)
- 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
Environnement Logiciel
JDK 1.7 : il vous faut utiliser cette version de Java pour utiliser la version de Mule ci-dessous.Mule Studio 1.3.0 : cette version est open source
- copiez l'installation dans
votre répertoire nosave
- décompressez la
- lancer MuleStudio avec le
JDK1.7
legacy.tgz : contient les applications à intégrer
- à copier chez vous
apache-activemq-5.12.1-bin.tar.gz : activeMQ
- à copier chez vous
sujet-esb.tgz : les exemples de base utiles pour réaliser cette
intégration
- à copier chez vous
Tout cela se trouve dans /mnt/n7fs/ens/tp_dh/tp-esb
Exemples
- xml : un exemple de fichiers et de parsing xml
- pour tester
- importez ou recréez le
projet
- créez des répertoires
/tmp/in et /tmp/out
- exécutez le flow
- copiez
legacy/saisie/example.xml dans /tmp/in
- regarder dans /tmp/out
- jdbc : un exemple d'utilisation d'une BD
- pour tester
- importez ou recréez le
projet
- ajoutez le driver jdbc
(legacy/bd/hsqldb/lib/hsqldb.jar) dans votre projet
- lancez la BD
- ant
start (dans legacy/bd)
- créer la table dans la BD
- ant db
- regardez dans la BD
- ant
console
- exécutez le flow
- copiez
legacy/saisie/example.xml dans /tmp/in
- regardez à nouveau dans la
BD
- smtp : un exemple d'envoi d'email avec SMTP
- pour tester
- importez ou recréez le
projet
- modifiez l'adresse email
pour ne pas m'envoyer un email !
- exécutez le flow
- copiez
legacy/saisie/example.xml dans /tmp/in
- regardez votre mailbox
- imap : un exemple de lecture d'email avec IMAP
- pour tester
- importez ou recréez le
projet
- utilisez une adresse gmail
(j'en ai une qui est tpdhlogin/tpdhpasswd, mais c'est mieux
d'avoir la votre)
- exécutez le flow
- envoyez un email à cette
adresse
- regardez dans /tmp/out
- ws : un exemple d'appel à un web service
- pour tester
- lancez tomcat et copiez de
WS dedans (legacy/ws/WS.war)
- importez ou recréez le
projet
- exécutez le flow
- copiez
legacy/saisie.example.xml dans /tmp/in
- regardez dans
/tmp/accounts (simule l'ajout d'un compte utilisateur)
- jms : un exemple d'envoi de message JMS
- pour tester
- importez ou recréez le
projet
- ajoutez le driver de
activemq (apache-activemq-5.12.1/activemq-all-5.12.1.jar) dans
votre projet
- lancez activemq
-
./activemp start dans apache-activemq-5.12.1/bin
- exécutez le
flow
- copiez
legacy/saisie.example.xml dans /tmp/in
- regardez dans /tmp/out
Etapes
- dessinez un schéma global de l'intégration
- travaillez de façon incrémentale :
- connectez Saisie et Email
- connectez Email et la BD
- intégrez Login
Attention: Bug dans MuleStudio !
Si vous utilisez un endpoint IMAP, lorsque vous sauvegardez votre
projet, il arrive que MuleStudio génère un XML buggé.
A l'exécution, vous observez une exception :
org.xml.sax.SAXParseException
Si vous allez voir le XML généré, vous verrez une ligne incomplète
:
http://www.mulesoft.org/schema/mule/imap s ">
Enlevez là en vérifiant que le XML reste bien parenthèsé.