jeudi 22 janvier 2009

SB transport - entre BPEL PM et OSB

Après avoir détaillé le transport BPEL-10g (ICI), je me devais de préciser le transport SB.


Le but de cet article est de pousser un message depuis BPEL en utilisant la préconisation de la doc (ICI)

pour effectuer le lien suivant:

Avant tout il faut créer dans OSB un Business Service. Dans mon cas j'ai utilisé un BS qui pousse un message JMS dans une queue de OSB.



Ensuite en utilisant un WSDL que vous créer avec Eclipse WorkShop ou depuis Jdev vous configurer l'interface de consommation à savoir le PROXY service.

Notre proxy va se baser sur notre WSDL (exemple : ICI). Il faut importer ce WSDL en tant que ressources et construire comme suit le proxy:



Une fois ces opérations réalisées, nous allons dans Bpel PM pour faire un processus qui va faire du polling sur une table et envoyer à OSB via SB transport le contenu des nouvelles lignes ajoutées:


où l'interface "bdPooling" utilise le DB adapter pour scruter une table et en fonction de la présence de ligne déclenche le processus. Celui-ci effectue un Assign pour initialiser les variable du "partner link" qui est notre proxy service avec le protocole SB transport.

Pour insérer le WSDL de ce proxy de type SB transport, il suffit de l'exporter depuis le bus en utilisant depuis la console OSB l'icone de notre proxy suivant:



Le jar exporté contient alors le WSDL et si besoins les XSD mon exemple: (ICI).


Note: Pour les XSD n'oublier pas de les importer dans votre processus BPEL sinon il ne va pas compiler.



Ensuite on configure dans Bpel PM un partner link qui utilise notre WSDL basé sur le proxy service de type SB Transport:




Deployer ensuite le processus vers votre serveur BPEL PM pour le tester. Pour mon exemple, je rajoute une ligne dans ma table et automatiquement le proxy service par le transport SB pousse le message au BS de type JMS.

Pour être certain, je peux même visualiser le message dans la queue JMS de WebLogic. Cela se fait depuis la console du serveur d'application WebLogic.

Et voilou ... ;)

Aucun commentaire: