Inscrivez-vous à la newsletter

Inscrivez-vous à la newsletter

Abonnez-vous maintenant et nous vous tiendrons au courant.
Nous respectons votre vie privée. Vous pouvez vous désabonner à tout moment.

OSB – Optimiser les performances d'un processus avec Cohérence : Partie 1/2

Partager sur linkedin
Partager sur twitter
Partager sur facebook

Partie 1 – Définitions et concepts

 

Qu’est ce que la scalabilité d’un composant

La scalabilité ou « Mise à l’échelle » désigne la capacité d’un produit à s’adapter à un changement d’ordre de grandeur de la demande (montée en charge), en particulier sa capacité à maintenir ses fonctionnalités et ses performances en cas de forte demande.
Dans le cas d’un processus SOA, les étapes de transcodification qui sont généralement nombreuses peuvent représenter un temps de traitement non négligeable d’un processus, alors que dans le cas de la transcodification d’une civilité par exemple le nombre de valeurs possible est très faible.Cette problématique est d’autant plus importante lors de l’afflux important de message pouvant amener à dépasser la capacité de traitement (Taille file JMS, temps de traitement attendu, etc.)
La solution est de stoker le résultat de cette transcodification en cache afin de réutiliser un résultat connu, qui n’est pas amené à changer dans une période courte.

Qu’est ce qu’un cache ?

Un cache Un espace de mémoire local contenant des données qui sont sollicitées fréquemment et dont le fait de les remonter ou calculer peut être couteux en termes de temps d’exécution ou de performance de manière générale :

  • Le cache répond aux requêtes des données si ces dernières sont disponibles.
  • Le cache sollicite la source des données s’il ne les possède pas.

Un cache permet donc d’optimiser le temps de latence d’un traitement sans toutefois éliminer complètement un manque de capacité, ou les conséquences d’un afflux trop important de message.
Illustration – Données trouvées dans le cache : les données sont renvoyées avec un temps de latence faible
image002
Illustration – Données recoupées depuis la source : les données non trouvées dans le cache, sont cherchées depuis la base et enregistrées dans le cache
image004

Qu’est que cohérence

Oracle Cohérence est la solution leader du marché des grilles de données en mémoire, elle permet aux entreprises de prévoir la montée en charge de leurs applications critiques en offrant un accès rapide et fiable aux données fréquemment utilisées. Infrastructure partagée, Oracle Cohérence permet des analyses de données en temps réel, des calculs de grille en mémoire, le traitement des transactions et des événements en parallèle, et constitue un élément clé de l’infrastructure d’applications de Cloud Oracle.
Pour en savoir plus sur cohérence : www.oracle.com/fr/products/middleware/cloud-app-foundation/coherence/overview/index.html
Cohérence

  • Est la solution de cache utilisée dans OSB
  • Est embarqué en interne lors de l’installation de Weblogic utilisé par Oracle SOA Suite.
  • Fournit une infrastructure hautement disponible et prévisible à la scalabilité horizontale (ou parallèle) pour gérer des données d’application
  • Veille à ce que les caches restent cohérentes dans l’ensemble des serveurs (Architecture en clusters, reprise sur erreur, etc.)

Cohérence et Oracle Service Bus (OSB)

Dans le cas d’une transcodification, celle-ci est réalisée via l’appel d’un composant de type Business Service et retourne des données statiques qui ne changent pas souvent. La solution est de

  • Configurer les composants de type Business Service pour mettre les données en cache
  • Le service renvoie les données qui sont dans le cache au lieu d’aller appeler le service externe

On parle de

  • Result cache pour désigné le  cache qui partagé par tous les BS pour stocker leurs résultats respectifs.
  • Cached result pour désigné un résultat particulier dans le cache

Schéma de fonctionnement du cache dans OSB

 image005

Identification des « cached result »

Le « cached result » est identifié de manière unique par une clé de cache
La clé est fabriquée à partir de

  • ServiceRef : l’identifiant unique du service qui correspond au « qualified path name » du service
  • Operation : l’opération invoquée
  • Cache Token : identifiant à mettre en place par le développeur de manière à s’assurer de l’unicité des données mises en cache par le Business service:

Utiliser une expression Xquery pour construire notre propre Token
Utiliser l’élément cache-token metadata depuis la variable $transportMetaData

A suivre …

La partie suivante de l’article traitera de :

  • La configuration de cohérence.
  • La mise en place d’un exemple dans un processus OSB.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.