mercredi 4 mars 2009

UDDI avec BPEL PM 10.1.3.4 - OSR - Oracle Service Registry

Voici un article qui propose de relier BPEL PM à OSR (Oracle service registry).

OSR est un annuaire UDDI qui permet de référencer vos services. Osr propose donc plus de souplesse dans la gestion de vos services: référencement, descriptions, spécifications techniques ....

OSR peut s'installer sur Oracle Application Server ou Oracle Weblogic Server. Cet annuaire UDDI V2 & V3 utilise une base de données pour y stocker l'ensemble des informations de vos services.

Pour mon exemple, j'ai positionné un WebService qui renvoit le chiffre que vous lui pousser ... et je l'ai inscrit dans OSR via l'interface web:








Avec dans un premier temps une référence pointant vers mon service Stock v1.0

ensuite dans BPEL, j'ai créé un processus qui utilise le service Stock v1.0 :
pour rajouter le partner link j'ai effectué un browse depuis Jdev suite à un paramétrage de mon annuaire UDDI:


Ensuite pour que le "endpoint" soit dynamique en fonction de l'information stockée dans OSR, il suffit de positionner sur le partnerLink la propriété registryServiceKey comme suit:






la clé spécifiée est celle du service dans OSR (selection en orange) qui sera différente en fonction de votre OSR. Elle constitue un identifiant unique :


Ensuite dans la console BPEL il faut paramétrer votre lien entre le serveur BPEL et OSR comme suit:




uddiLocation = http://votreserveur:votreport/registry/uddi/inquiry

uddiPassword = urn:unknown (si vous acceder à votre annuaire sans https)

uddiUsername= urn:unknown (si vous acceder à votre annuaire sans https)



Redémarrez votre SOA suite pour que ces paramètres soient pris en compte.

Ensuite lors de l'éxécution du processus BPEL vous aurez ce type de liste d'instance si on spécifie le endpoint du service Stock dans OSR à http://hsimonne-fr/orabpel/default/Stock/1.0 puis à http://hsimonne-fr/orabpel/default/Stock/2.0


On constate que sur le premier appel, Bpel PM contacte OSR pour récupérer le endpoint dynamiquement (qui sera stocké dans le cache wsdl) pour joindre le service Stock.

Ensuite lors du changement et redéploiement du service Stock (processus BPEL) en version 2.0, la seconde éxecution du processus UDDItesthugu_BPELProcess1 (v. 1.0) utilise encore la version 1.0 car je n'ai pas changé le endpoint dans OSR.

La dernière execution du processus UDDItesthugu_BPELProcess1 (v. 1.0) utilise la version 2.0 de Stock car je viens de la modifier dans OSR.

Cela démontre la gestion dynamique des endpoints avec BPEL.

Je vous ferai peut être un article associé à OSB & OSR mais le principe reste le même ...

pour plus d'informations sur OSR: http://www.oracle.com/technology/tech/soa/uddi/index.html

un document de type tutorial en anglais que j'ai utilisé: http://hugues.simonnet.free.fr/logiciels/blog/OSRBPELPM1013IntegrationLab.pdf

Aucun commentaire: