jeudi 25 septembre 2008

BPEL synchrone pilote un BPEL Asynchrone

Ce mémo explique comment un processus synchrone Bpel peut piloter et connaitre l'état d'un processus asynchrone.
Ce mécanisme se fait par le biais de la Correlation (voir article précédent).
Dans mon exemple le processus synchrone P1 lance l'éxecution du processus P2 asyncrhone.
P1 peut ensuite questionner P2 sur son état.
Une fois que P2 est terminé, P1 peut re demander son état et connaitre le résultat final de P2.

Dans mon exemple P1 correspond à : hugu_BPELProcess1_SYN
P2 correspond au processus BPEL : hugu_BPELProcess1

Pour l'utiliser il faut lancer P1 comme suit :









Ci joint le zip contenant P1 & P2 : ICI
Un autre exemple également fournit par un collègue : Processus d'addition ICI

Keyboard Linux

Se signer comme root

Editer le fichier/etc/sysconfig/keyboard

qui contient les deux lignes suivantes:

KEYBOARDTYPE="pc"

KEYTABLE="us"

Remplacer le us par fr dans la seconde ligne :

KEYTABLE="fr"

Reboot de la VM ou du serveur et c'est bon le clavier est en French !

mardi 23 septembre 2008

OpenWorld 2008

Tout sur l'évènement Oracle Open World de San Francisco :

http://blogs.oracle.com/oracleopenworld/


comme si on y était ... ou presque

lundi 15 septembre 2008

OSB (ALSB) et Coherence

Voici un Pattern classique sur lequel on peut mettre en oeuvre OSB + Coherence:




Voici comment on peut utiliser trés simplement Coherence (ex Tangosol) avec OSB (ex ALSB).

L'idée étant de mettre en cache des flux de données arrivant sur votre ESB (OSB: Oracle Service Bus) et de pouvoir restituer ces données lorsque le BE (WebService final) ne répond pas.

J'avais déjà proposé comme système de cache de OSB, Oracle Web Cache dans un article précédent, mais dans cet article nous allons utiliser le système Coherence qui est un cache de données répliquées sur plusieurs JVM. Ce système est bien plus performant et souple en terme d'objets que vous souhaitez mettre en cache.

Dans OSB nous allons faire un PUT des données dans un cas et un GET lorsque le Business Service ne répond pas.

Pour faire le PUT il faut le faire au retour du Business Service. Cette étape peut être réalisée lors de la réponse dans le message flow du proxy service.

Nous utiliserons dans ce retour une fonctionnalité de OSB avec l'étape Java CallOut.

Cette classe java qui contient 2 méthodes, permet d'inscrire une donnée dans le cache cohérence. Cohérence fonctionne comme un HashMap java. Il faut positionner un clé et une valeur.

L'import de cette classe dans OSB se fait par un Jar. Ce dernier sera dépend de 2 autres Jar correspondant aux API de Cohérence.







Une fois cet import réalisé, vous pouvez alors construire le proxy flow utilisant un java callout vers Coherence:



Les variables :

MonId correspond au critère de la requête sur l'OSB

MonResultat correspond au résultat du Business Service final



L'ensemble est alors stocké dans Coherence via cette classe java que vous pouvez modifier:

http://hugues.simonnet.free.fr/logiciels/blog/MyFirstSample.java


Au cas ou le Business Service ne répond pas on utilise alors (via la gestion d'erreur de OSB et les mécanisme de retry), le proxy suivant




Je vous propose mon jar ( ALSB Project 1) du projet OSB à télécharger ici:
http://hugues.simonnet.free.fr/logiciels/blog/sbconfigOSB_Coherence.jar

FastSwap - Weblogic Server 10.3

Weblogic server 10.3 permet de faciliter la vie des developpeurs ... en effet, il suffit d'activer cette option FastSwap dans le fichier descripteur
weblogic-application.xml pour être plus prodcutif en dev.

FastSwap permet de modifier une classe (ex: servlet ou autre) sur laquelle vous êtes en train de developper à la volée. C'est à dire que vous n'avez plus besoin de re déployer votre application vers Weblogic serveur, automatiquement il va en prendre compte.

Cette option ne concerne que les applications J2ee déployée en mode "exploded directories", c'est à dire dans un répertoire et non sous forme de EAR, WAR.

Les classes que vous pouvez changer sans re déployer doivent être présentes dans
WEB-INF/classes. Les librairies (format .jar) présentent dans
WEB-INF/lib ne sont pas pris en charge par cette option.

Par ailleurs cette option est non valable dans un environnement de Production.

Plus d'infos en anglais sur :

http://edocs.bea.com/wls/essex/TechPreview/pdf/FastSwap.pdf

jeudi 11 septembre 2008

Nouveau joujou de larry ellison

Quelques vidéos de ce nouveau jouet ... et en français !

mercredi 10 septembre 2008

Caractéristiques de la base de données Oracle SOA suite 10.1.3.3

Ci-dessous vous trouverez les caractéristiques d'une base de données dédiée à SOA suite 10.1.3.3.


How many Tables in the datamodel(s)
SOA suite needs :
- BPEL: 65 tables
- ESB: 78 tables
- WSM: 38 tables

How many Indexes
SOA suite needs :
- BPEL: 135 indexes
- ESB: 51 indexes
- WSM: 42 indexes

How many Views
SOA suite needs :
- BPEL: 15 views
- ESB: 22 views
- WSM: 0 views

How many Constraints
SOA suite needs :
- BPEL: 104 constraints
- ESB: 228 constraints
- WSM: 134 constraints

How many Procedures
SOA suite needs :
- BPEL: 15 procs
- ESB: 1 procs
- WSM: 0 procs

How many Triggers
SOA suite needs :
- BPEL: 0 triggers
- ESB: 4 triggers
- WSM: 0 triggers

Any other particular objects (synonyms, materialized views, etc
Other objects):
- BPEL : 2 sequences, 3 packages,3 packages body
- ESB : 5 evaluation context,10 rule set, 11 sequences
- WSM :10 sequences

jeudi 4 septembre 2008

WebCache et OSB - Cacher le résultat de OSB (ALSB)

Ce mémo va vous expliquer comment mettre en cache un requête envoyée à OSB (Oracle Service Bus - ex: ALSB).

Pour cela on utilise un super outil gratuit (Oracle Web Cache).

Côté OSB, j'ai mis en place un Business service qui appelle un webservice utilisant le code java suivant:

package com.oracle.demo;
import java.util.Random;
import javax.jws.*;
@WebService

public class WSDemo {
@WebMethod

public int getID(int i)
{ Random rd = new Random();
return rd.nextInt(i); }
}


Le poxy service dans OSB route la réquête qu'il reçoit sur le Business Service.


J'utilise SoapUi (outil de test de WebService) en utilisant l'url de mon proxy service: http://HSIMONNE-FR:7021/ALSB_Project_1/Proxy_Service_Demo

Le résultat sera donc différent à chaque appel sans utiliser le cache ....

Si l'on utilise maintenant le port 7777 qui fait référence à Oracle Web Cache, le résultat reste le même le temps d'expiration du cache ! Magique !!!!





Ce port 7777 relance la requête de Oracle Web Cache vers OSB ensuite port 7021.

Voici comment j'ai configuré Oracle Web Cache:

il faut effectivement paramètrer une règle de cache pour le POST/GET vers OSB dont le détail est le suivant:



Ensuite depuis SOAPUi et pendant (300 s par exemple) le résultat sera pris du cache de WebCache et WebCache n'intérrogera pas l'OSB.



PS: plus d'informations sur

Oracle Web Cache cliquez sur http://download.oracle.com/docs/cd/B15904_01/caching.1012/b14046/toc.htm

OSB http://e-docs.bea.com/alsb/docs30/

mercredi 3 septembre 2008

Oracle achète CLEARAPP


ClearApp vient d'être racheté par Oracle !


ClearApp permet de monitorer finement des applications SOA et composites (SCA).


Cette offre sera probablement intégrée avec OEM grid Control sous peu ...


Afin de mieux comprendre l'intérêt de ce nouveau rachat, je vous propose ce lien:



ou :