Exemple de conception

Le service de médiation qui s'exécute sur le bus des services d'entreprise de WebSphere ou sur le service de processus de WebSphere est contenu dans un module de médiation unique dénommé StockQuote et constitué des éléments suivants : une exportation qui fournit une interface au demandeur de service client, des importations qui offre des interfaces aux fournisseurs de services Web et un composant de flux de médiation qui définit l'implémentation de médiation.

Le module de médiation, StockQuote, sera généré dans l'éditeur d'assemblage ; le composant de flux de médiation, StockQuote_MediationFlow, sera créé dans l'éditeur de flux de médiation. L'illustration suivante représente la relation entre interfaces et références dans l'éditeur d'assemblage et dans l'éditeur de flux de médiation.


Illustration représentant la relation entre interfaces et références dans l'éditeur d'assemblage et dans l'éditeur de flux de médiation

Module StockQuote

Le diagramme suivant répertorie les éléments du module StockQuote :
Capture d'écran annotée du module de médiation StockQuote

  • StockQuoteService dispose d'une interface WSDL, dénommée StockQuoteService, et utilise la liaison de services Web SOAP/JMS pour que l'application frontale du servlet puisse se connecter au module de médiation via JAX-RPC. Dans cet exemple, vous allez créer l'interface StockQuoteService et générer le fichier WSDL.
  • StockQuote_MediationFlow contient le flux de médiation. Dans cet exemple, vous allez créer et implémenter le composant StockQuote_MediationFlow.
  • RealtimeService dispose d'une liaison de services Web et d'une interface qui correspond au service des cotations en temps réel. Dans cet exemple, vous allez importer le fichier WSDL RealtimeService.wsdl.
  • DelayedService dispose d'une liaison de services Web et d'une interface qui correspond au service des cotations différées. Dans cet exemple, vous allez importer le fichier WSDL DelayedService.wsdl.

StockQuote_MediationFlow

Le diagramme suivant illustre le flux de requêtes qui définit la logique de médiation appliquée au message lorsque qu'il traverse le composant StockQuote_MediationFlow pour atteindre les fournisseurs de services cibles.

Capture d'écran annotée du flux de requêtes du composant StockQuote_MediationFlow

  1. La propriété subscriptionLevel est définie dans le contexte de corrélation du message, ce qui la rend disponible ultérieurement dans le flux de réponses.
  2. La requête sera consignée à l'aide de la primitive de médiation de l'outil de consignation des messages dénommée Log.
  3. Une primitive de médiation d'interrogation de base de données appelée Lookup utilisera alors l'élément customerID dans le corps du message pour déterminer si le client a le droit de bénéficier du service Premium ou Standard en recherchant cette information dans la base de données clients (CustomerDatabase) fournie. Cette information sera ajoutée à la propriété subscriptionLevel dans le contexte de corrélation du message, en vue d'une utilisation ultérieure.
  4. La requête sera alors acheminée par une filtre de message appelé Filter, en fonction des informations subscriptionLevel du contexte de corrélation vers le service de cotation boursière Realtime ou Delayed.
  5. Le message sera transformé lors de son acheminement vers chacun des services par les primitives XSLT TransformToDelayed et TransformToRealtime de façon à correspondre au résultat attendu par les services.

Le diagramme suivant illustre le flux de réponses qui définit la logique de médiation appliquée au message de retour envoyé par le fournisseur de services cible lorsque qu'il traverse le composant StockQuote_MediationFlow à destination du client.


Capture d'écran annotée du flux de réponses du composant StockQuote_MediationFlow

La réponse de chaque service passera à travers une primitive de médiation XSLT (DelayedToStockQuoteService et RealtimeToStockQuoteService) afin de correspondre au format requis par StockQuoteService. En outre, la primitive XSLT servira également à mapper la valeur de subscriptionLevel qui se trouve dans le contexte de corrélation avec la propriété qualityOfService figurant dans le message. Le texte qualityOfService indiquera la mention "Premium" à une réponse renvoyée par le service temps réel, et la mention "Standard" à une réponse renvoyée par le service différé. Sur le client, ce texte indiquera le fournisseur de services utilisé.

Commentaires
(C) Copyright IBM Corporation 2005. Tous droits réservés.

(C) Copyright IBM Corporation 2005. All Rights Reserved.