NB : cet article fait partie d’une série de présentation et de tutoriaux pour démystifier Mule ESB : http://net-progress.blogspot.com/)
Introduction
L’application à développer est très simple, mais montre les premiers pas dans la création d’un projet d ‘intégration :
Nom du projet : Exercice_01_echo_System
Son objectif est limité : présenter une abstraction de la console de saisie IN et de sortie OUT
Pour commencer, créer un projet de type Mule (Exercice_01_echo_System) et un fichier de configuration de Mule (echo-system-config.xml)
Présentation générale du fichier de configuration de Mule
Le fichier de configuration de Mule est au format XML. L’IDE de Mule présente se base surl la version vision simplifie d’un éidteur XML de
Une configuration Mule, minimale est de ce type :
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns=" …
<model …> |
|
<stdio:connector…/> | Les déclarations globales au niveau de la configuration |
<service …>
| Une déclaration d’au moins un service |
<inbound> </inbound>
| Au moins un point d’entrée, pour recevoir les messages Une abstraction du transport et des détails des protocoles |
<component> </component>
| Le service métier à invoquer |
<outbound> </outbound>
| Un point de sortie, pour envoyer des messages Une abstraction du transport et des détails des protocoles |
</service>
| |
</model> </mule> |
Le lien est alors simple à faire avec cette vision de l’intégration
Construction pas à pas d’un exemple simple :
Utiliser une configuration de Mule : echo-system-1-config.xml.
La première partie du fichier XML est le prologue :
1: <?xml version="1.0" encoding="UTF-8"?>
La seconde partie est la définition des namespaces à utiliser par Mule
1: <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
2: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3: xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
4: xsi:schemaLocation="
5: http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
6: http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd">
Ensuite on déclare le connecteur qui sera utilise par les points de contactes : ici on utilise le système d’entrée sorties classiques IN/OUT. Chez Mule la déclaration est basée sur le namespaces stdio.
1: stdio:connector name="SystemStreamConnector"
2: promptMessage="Saisir les informations nécessaires: "
3: messageDelayTime="1000"/>
Dans sa première version, le Service de l’application cible ne fait que deux choses :
1) recevoir sur le Système IN : des messages en texte
2) expédier ces messages vers le Système OUT
on a donc besoin de deux partie
1) <inbound>
a. Pour définir ce <inbound>, on utilise le namespaces du protocole de transport cible
<inbound> <stdio:inbound-endpoint system="IN"/> </inbound> |
1) <outbound>
b. Pour définir ce < outbound >, on utilise le namespaces du protocole de transport cible : <stdio:outbound-endpoint system="OUT"/>
c. Mais il faut ajouter une indication sur le Routage du message en définissant le routeur à utiliser. Dans notre cas nous avons besoin simplement d’un routage systématique sans altération du message ni filtrage : c’est l’objectif du routeur de Mule dit <pass-through-router>
<outbound> <pass-through-router> <stdio:outbound-endpoint system="OUT"/> </pass-through-router> </outbound> |
Ainsi la définition du service est la suivante
1: <model name="echoSystemSimple">
2: <service name="echoService">
3: <inbound>
4: <stdio:inbound-endpoint system="IN"/>
5: </inbound>
6: <outbound>
7: <pass-through-router>
8: <stdio:outbound-endpoint system="OUT"/>
9: </pass-through-router>
10: </outbound>
11: </service>
12: </model>
Le fichier de configuration devient :
1: <?xml version="1.0" encoding="UTF-8"?>
2: <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
3: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4: xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
5: xsi:schemaLocation="
6: http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
7: http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd">
8: <stdio:connector name="SystemStreamConnector"
9: promptMessage="Saisir les informations nécessaires: "
10: messageDelayTime="1000"/>
11: <model name="echoSystemSimple">
12: <service name="echoService">
13: <inbound>
14: <stdio:inbound-endpoint system="IN"/>
15: </inbound>
16: <outbound>
17: <pass-through-router>
18: <stdio:outbound-endpoint system="OUT"/>
19: </pass-through-router>
20: </outbound>
21: </service>
22: </model>
23: </mule>
L’exécution du projet dans Mule est très simple :
3 commentaires :
Merci pour ce tutoriel,il m'a vraiment beaucoup servi pour m'initier à l'intégration.
merci pour ce tutoriel. mais je veux savoir de plus un exemple plus complexe: un client communique avec un service web à travers Mule (Mule dans ce cas présente un médiateur), on utilise les notions suivantes SOAP, UDDI, WSDL
merci
merci,ce tutoriel est très intéressant pour débuter en mule
Enregistrer un commentaire