mardi 26 février 2008

Démarrer un processus Bpel depuis l'arrivée d'un Email


Bpel Manager d'Oracle peut déclencher un processus métier à partir de l'arrivée d'un email dans une boîte spécifique.

Pour réussir cette recette il faut :


- un serveur email (je vous propose en gratuit : http://www.argosoft.com/ (Mail Server Freeware suffit)

- Soa Suite (du moins Bpel suffira)
- un client email pour pousser l'email qui va instancier votre processus



Paramètrage de Bpel Manager:

- Créer un répertoire : ORACLE_HOME\bpel\domains\default\metadata

- Créer un second répertoire : ORACLE_HOME\bpel\domains\default\metadata\MailService
Ajouter le fichier XML (BpelMailAccount.xml) suivant : ICI dans ce répertoire.

Ensuite, il suffit de créer un Processus Bpel asynchrone qui utilise comme Schéma XSD le fichier présent dans le répertoire en input : ORACLE_HOME\bpel\system\xmllib\Mail.xsd

Ajouter le schéma au projet Jdev (par un Add Schéma dans la vue structure Bpel) utilisé par Mail.xsd (sinon vous aurez des erreurs de compilation) :
ORACLE_HOME\bpel\system\xmllib\common.xsd


Valider la compilation ... Si c'est ok passer à l'étape suivante:

- Configurer l'agent qui va s'activer pour scruter les emails de boîte décrite dans BpelMailAccount.xml.

Il faut éditer le fichier bpel.xml de votre projet et rajouter des lignes pour que le partnerLink scrute les emails:




Ensuite vous déployer et balancer un email dans la boîte en question, et le processus se déclenche .....

Attention, si vous modifier le processus Bpel, le fichier bpel.xml est reinitialisé, pensez à rajouter les lignes pour le fonctionnement de l'agent.

PS: J'ai validé cela sur la version 10.1.3.3 et 10.1.3.1 ... en attendant la V11 SOA

Un grand merci à ce blog :

lundi 25 février 2008

Oracle Business Rules en mode WebDav

Afin de rendre vos règles dynamiques entre l'éxecution du processus Bpel et le changement de paramètrage de vos règles, il faut utiliser Oracle Business Rules avec un serveur Webdav.

On peut d'ailleurs l'activer trés simplement avec OHS (Oracle Http Server). Je l'explique dans un autre article.

Il faut ensuite créer une connexion à votre serveur WebDav dans mon cas OHS:


puis un connexion à votre moteur de règles Oracle Business Rules :


Ensuite dans Jdev 10.1.3x, vous créer un projet Bpel qui utilise une action DECIDE.

Puis cliquer sur le bouton "create decision service" pour avoir l'écran suivant :



Ce qui donne :

Ps: Dans un futur article je vous expliquerai comment on travaille avec RuleAuthor : c'est l'interface web de Oracle Business Rules ....










WebDav avec OHS - Oracle Http Server

Par défaut OHS vous propose d'activer WEBDAV (Protocole d'échange et de partage de documents).
Ce module est pré configuré, il suffit de l'activer dans le fichier de configuration de Apache. Ce dernier ce trouve dans votre répertoire ORACLE_HOME\Apache\oradav\conf\moddav.conf

il suffit de le paramétrer comme suit :




Ensuite il faut créer un nouveau répertoire (correspondant à votre url webdav) dans le home de Apache, c'est à dire dans :
ORACLE_HOME\Apache\Apache\htdocs\rule_repository

NE COPIER PAS de fichier dans ce répertoire, car l'arborescence WebDav serait alors détériorée. Il faut ensuite via un client WebDav (comme ruleauthor) créer ses fichiers.

Il faut alors ré initialiser votre HTTP_SERVER, soit pas un violent Shutdown de SOA soit par la ligne de commande opmn :

ORACLE_HOME\opmn\bin>opmnctl stopproc process-type=HTTP_Server

puis

ORACLE_HOME\opmn\bin>opmnctl startproc process-type=HTTP_Server

et voilou !

Bpel paramètres - runtime & wsdl

Afin de faciliter l'accès à des variables d'environnement, comme par exemple le "hostname" lors de l'execution d'un processus vous pouvez utiliser dans une propritété comme wsdlruntimeLocation ces variables :

http://${hostname}:${http_port}/rules/${domain_id}/${process_id}/${process_revision}/Monservice

The parameters for this syntax are defined as follows:
Parameter
${hostname}
Description
The name of the host that on which the application server is installed

${http_port}
The HTTP port of the application server

${domain_id}
The BPEL domain

${process_id}
The BPEL process name

${process_revision}
The BPEL process version

Ainsi dans la propriété cela permet d'assouplir les déploiements ....

mardi 5 février 2008

AD4J - instrospection de vos Webapp


AD4J permet d'introspecter vos application web J2EE sur n'importe quel serveur d'applications.

Cette offre est proposée sous la forme de Pack dans le produit OEM (Oracle Enterprise Manager).

Datasheet "Diagnostic Pack for Oracle Application Server"
Datasheet "Diagnostic Pack for Non Oracle Middleware"

AD4J est trés simple à mettre en oeuvre, il a un agent qui écoute vos jvm (de vos serveurs d'applications : weblogic, websphere, Oc4j, Sap ... Cet agent est une simple WebApp à déployer.

On peut ainsi réaliser un diagnostique trés rapidement, et bien plus facilement que sur un outil trés complexe comme Willy ou Jprobe ou Mercury ou Precise ...

L'installation est trés simple et le résultat immédiat.

Cela ressemble beaucoup à TRACKER (outil interne BEA France Consulting) sauf que le résultat est plus simple à exploiter. Ce produit est intégré à OEM (grid control).

On visualise en moins de 2 min l'état d'une jvm et les points bloquants de vos webapp. On peut faire un diagnostique rapidement jusqu'à la base de données.


On peut aussi faire des états de type "snapshot" sur un tir de charge et visualiser les méthodes les plus couteuses. Un graphe de l'appel de vos méthodes java est également généré.


D'autres écrans :

lundi 28 janvier 2008

ALSB & BPEL

Un petit test avant la fusion entre BEA et Oracle :
Dans ce mémo je démontre l'intéraction entre l'ESB (ex: BEA) et l'orchestrateur Bpel Process Manager.

Je vous confirme que cela fonctionne parfaitement par cette petite démo:
1 - il faut télécharger ALSB (version 2.6 actuelle, v3 fin Q1 normalement)
2 - installer ALSB (20mn à feu doux)
3 - paramétrer l'ESB via l'interface Web (http://monserveur:7021/sbconsole)


Dans un premier temp il faut importer le contrat d'interface WSDL et tout ce qui va avec. Pour cela on utilise dans ALSB la fonction d'import "Bulk ressources from url"



puis on fait suivant :

On paramètre ensuite son Business Service, qui correspond à l'interface du service que vous exposer sur votre bus. Ce BS (Business Service) peut être un web service, un fichier, un message tuxedo, du jms .... C'est l'interface de votre service disponible dans votre SI (système d'information).

On paramètre ensuite un Proxy Service, interface de consommation du service que vous mettez à la disposition de vos consommateurs de services. Ils peuvent être multiple et utiliser des transformation xquery, xpath, xslt ...

Pour mon petit test j'ai utilisé la même interface en le proxy service et le business service. J'ai définit un flux xml de l'un vers l'autre dans la console ALSB:




On peut rajouter des modifications, sur la requête comme sur la réponse. Une fois le PS (proxy service) configuré vous avez alors une interface de consommation disponible. Cette interface peut être testée avec SOAPui ou directement depuis la console de ALSB afin d'avoir un processus Bpel qui se déclenche depuis le bus ALSB :

A gauche de cette image vous avez la console ALSB et en arrière plan Bpel Process Manager.


Evolution de ALSB :

La version 3.0 a été présentée recemment sous forme de web séminaire, je vous propose 2 copies d'écrans. On notera que l'interface de paramètrage passe enfin dans Eclipse, (car la console tout seul à force c'était pas toptop).





Faudra que tout cela passe dans Jdev maintenant ..... et pourquoi pas les 2 possibilités ???

Pour le moment l'intégration des produits n'est toujours pas définit !

mercredi 23 janvier 2008

Oracle - GS1 : Démonstrateur ONS (root & local)


Oracle participe au démonstrateur GS1 sur l'ONS (Object Naming Service).

Une présentation de GS1 France sera faite de l'utilité de l'ONS dans le monde RFID. Un démonstrateur utilisant la technologie Oracle Sensor Edge sera présenté. Ce démonstrateur utilise un lecteur ALIEN, le middleware Oracle (SES, EPCIS, ONS client ...), les serveurs Orange Business Services (pour l'ONS).


Plus de détail sur le site de GS1 France :





Ce démonstrateur effectuera des requêtes vers un ONS Local puis ONS Root et affichera les informations de produit lu par le lecteur RFID dans une application Web. Toutes ces informations proviennent du résultat d'une requête EPCIS normalisée.


Etant donné que j'ai participé à ce démonstrateur, je vous propose un extrait de la présentation de demain dans les locaux de GS1 France sur ce lien : ICI


Bonne lecture et peut être à demain chez GS1 France !