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
Aucun commentaire:
Enregistrer un commentaire