L'objectif de ce TP est de se familiariser avec un bus de services (ServiceMix) et un moteur BPEL (ODE).
Le projet de base pour tiw5 a été complété avec des projets de départ pour servicemix et ode:
hg clone https://forge.univ-lyon1.fr/hg/inf2018m-2014-base
Ce TP n'est pas noté, mais sert de base pour le projet TIW5.
ServiceMix est un bus de services construit autour d'un architecture OSGi basée sur Karaf. Télécharger et décompresser ServiceMix.
Lancer ServiceMix via la commande bin/servicemix
.
Dans le shell ainsi ouvert:
list
display -n 5
features:install webconsole
. La console web est maintenant disponible ici: http://localhost:8181/system/console (login karaf, mdp karaf). Dochelp
Installer la feature camel-jetty
.
Construire le projet smix-camel
fourni et le déployer dans ServiceMix, soit via la commande install
, soit via la console web.
Ce projet crée des routes Camel
Démarrer le bundle (e.g. depuis la console web), constater l'affichage puis arrêter le bundle. Regarder dans les logs et essayer de faire le lien entre ce qui se passe et ce qui a été défini dans le projet smix-camel
, en ne vous occupant pour le moment que de la premère route camel.
La deuxième route est un pont vers le service cineservice fourni dans le projet. Démarrer ce dernier via mvn tomcat7:run
. Créer un projet SOAPUI (ou réutilisez votre projet du TP Clients). Attention, le point d'accès est maintenant sur le port 8086. Dans SOAPUI, changer l'adresse du point d'accès pour passer par ServiceMix au lieu d'accéder directement à cineservice. Utiliser pour cela la configuration de la seconde route Camel. Tester.
Désactiver la route avec le timer dans le projet smix-camel. Ajouter un log à l'aller et au retour, avec des nom différents, du pont vers cineservice. Reconstruire puis redéployer2) le bundle précédent.
<note tip>Il est possible d'effectuer un déploiement via copie de fichier dans le répertoire deploy
de ServiceMix. Dans ce cas le bundle est démarré automatiquement. Il est désinstallé quand le jar est supprimé.</note>
Diviser la route en deux routes en utilisant un endpoint seda. Redéployer et tester.
ServiceMix intègre une implémentation de JMS: ActiveMQ
Installer la console web d'ActiveMQ: features:install activemq-web-console
, puis http://localhost:8181/activemqweb/
Utiliser un wire-tap
pour envoyer, en plus du seda
le message entrant sur une file JMS en plus (préférer le composant activemq en précisant karaf
comme username et password pour la file JMS). Envoyer quelques messages, puis afficher le contenu de la file depuis la console d'activemq.
Apache ODE est un moteur BPEL. L'objectif est ici de déployer un process BPEL faisant office de proxy pour le service cine-service
. On pourra suivre les étapes suivantes pour déployer ce dernier:
bootstrap.jar
et tomcat-juli.jar
du répertoire bin, ainsi que des tools.jar
du JDK dans le classpath de la launch configuration du serveur).ode-services
fourni. Deux possibilités:webapps/ode/WEB-INF/processes
de l'installation du tomcat d'ODE.mvn tomcat7:run
) puis tester avec SOAPUI.Créer un nouveau process BPEL dans le projet ode-services pour créer un nouveau service qui, étant donné un jour, effectue une réservation pour la première séance disponible pour le jour en question: