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.

Module StockQuote
Le diagramme suivant
répertorie les éléments du module 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.

- 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.
- 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.
- 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.
- 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.
- 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.

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é.