Oracle Service Bus et Oracle Advanced Queuing, première partie

Un nouvel article, toujours pour vous parler de la SOA Suite mais cette fois-ci d’un autre composant : l’OSB. OSB comme Oracle Service Bus.
Ce « nouveau » composant de la SOA Suite n’est en réalité pas si neuf que ça puisqu’il s’agit en fait de l’Aqualogic Service Bus de BEA qui a été rebadgé suite au rachat. Il s’agit donc d’un produit mature ayant fait ses preuves puisqu’il fait partie des ESB (Enterprise Service Bus) les plus utilisés sur le marché.
Dans cet article, je vais vous montrer comment publier des messages dans une file de messages AQ (Advanced Queuing). On remarquera au passage la simplicité de la mise en œuvre par rapport à BPEL (cf. série d’articles « BPEL et AQ »).
Bien entendu, il est nécessaire de configurer le serveur Weblogic et la base AQ avant d’attaquer le connecteur OSB … Pour cela, je vous laisse regarder les 2 premiers articles de la série « BPEL et AQ » 😉

Création du « Business Service » :

La première étape consiste à créer un Business Service  de type « Messaging Service » :

Dans l’onglet « Messagging », précisez le type de message envoyé : Text, XML, etc. Dans mon cas, je souhaite envoyer un message XML, je précise donc le format du message en spécifiant un schéma XML (XSD) :

C’est dans l’onglet « Transport » que l’on va spécifier le protocole d’échange, ici : JMS.
Précisez le endpoint, c’est-à-dire la queue dans laquelle vous souhaitez déposer le message. Le format est le suivant :
jms://serveur :port/JNDI_fabrique_connexions/JNDI_queue

Remarque : les noms JNDI sont ceux configurés sur le serveur.
Enfin, précisez le type de message et le type d’objet en destination : queue ou topic.
Le business service est donc prêt, il reste à générer le proxy …

Génération du « Proxy Service » :

Pour créer le proxy, il suffit de le générer à partir du business service que l’on vient de créer :

Ajout d’une activité log pour loguer une partie du message qui est envoyé dans la queue :

Ayant défini la structure du message XML préalablement, il est possible de récupérer un nœud en particulier à l’aide d’un chemin XPATH :

Le proxy est maintenant prêt, il reste à tester que tout fonctionne correctement …

Tests & Résutat :

  • Tester le proxy depuis la console OSB :

  • On voit bien apparaître dans les logs le nom de la personne qui a été envoyée dans la queue :
####<20 mai 2010 11 h 50 CEST> <Warning> <ALSB Logging> <s1237.gie.intra>
<AdminServer> <[ACTIVE] ExecuteThread: '14' for queue: 'weblogic.kernel.Default
 (self-tuning)'> <<anonymous>> <> <cefb2b0b2d922bac:170ef8a:128af7d16da:-7ff3
-00000000000053bb><1274349005760> <BEA-000000> < [RouteTo_PushMessageToJMSBS,
null, null, REQUEST] personne envoyee dans la file de messages : romain>
  • Le message envoyé figure bien dans la queue :

Queue Weblogic

Si vous souhaitez publier des messages dans une file Weblogic, la méthode est la même en ce qui concerne le développement du connecteur OSB.
Il vous faut, au préalable, configurer les objets suivants sur le serveur Weblogic :

  • un « JMS Server » de type « FileStore » par exemple
  • un module contenant une queue et une fabrique de connexions


L’avantage est que vous pourrez ensuite visualiser les messages et leur contenu directement dans la console Weblogic :

Conclusion

Ce petit tuto montre la simplicité de la mise en œuvre d’un connecteur OSB publiant des messages dans une file de messages AQ.
Dans le prochain article, je détaillerai la mise en place du consommateur (tout aussi simple) …