サンプル設計

WebSphere® Enterprise Service Bus または WebSphere Process Service で実行されるメディエーション・サービスは、 StockQuote という名前の単一のメディエーション・モジュール に含まれています。 このメディエーション・モジュールは、クライアント・サービス・リクエスターにインターフェースを提供するエクスポート 、 外部 Web サービス・プロバイダーへのインターフェースを提供するインポート 、 およびメディエーション実装を定義するメディエーション・フロー・コンポーネント から構成されます。

メディエーション・モジュール StockQuote は、アセンブリー・エディターに組み込まれ、 メディエーション・フロー・コンポーネント StockQuote_MediationFlow はメディエーション・フロー・エディターに作成されます。 次の図は、アセンブリー・エディター内のインターフェースおよび参照と、 メディエーション・フロー・エディター内のインターフェースおよび参照との関係を示しています。


アセンブリー・エディター内のインターフェースおよび参照と、
メディエーション・フロー・エディター内のインターフェースおよび参照との関係を示す図

StockQuote モジュール

下の図は StockQuote モジュールのエレメントを示しています。
StockQuote メディエーション・モジュールの注釈付きスクリーン・ショット

  • StockQuoteService には、StockQuoteService という名前の WSDL インターフェースが用意されており、 SOAP/JMS Web サービス・バインディングが使用されます。 これにより、サーブレット・フロントエンドが JAX-RPC を介してメディエーション・モジュールに接続できます。 このサンプルでは、StockQuoteService インターフェースを作成し、WSDL ファイルを生成します。
  • StockQuote_MediationFlow にはメディエーション・フローが含まれています。 このサンプルでは、StockQuote_MediationFlow コンポーネントを作成および実装します。
  • RealtimeService には、Web サービス・バインディング、 およびリアルタイム・サービスに適合するインターフェースが用意されています。 このサンプルでは、WSDL ファイル RealtimeService.wsdl をインポートします。
  • DelayedService には、Web サービス・バインディング、 および遅延サービスに適合するインターフェースが用意されています。 このサンプルでは、WSDL ファイル DelayedService.wsdl をインポートします。

StockQuote_MediationFlow

下の図は、 メッセージに適用されるメディエーション・ロジックを定義する要求フローを示しています。 このフローは、StockQuote_MediationFlow コンポーネントを介してターゲット・サービス・プロバイダーに流れます。

StockQuote_MediationFlow コンポーネントの要求フローの注釈付きスクリーン・ショット

  1. メッセージの相関コンテキストにプロパティー subscriptionLevel が設定されているため、 後で、応答フローでこのプロパティーを使用できます。
  2. 要求は、Log という名前のメッセージ・ロガー・メディエーション・プリミティブを使用して記録されます。
  3. Lookup という名前のデータベース・ルックアップ・メディエーション・プリミティブは、 メッセージ本体の customerID エレメントを使用し、 指定の CustomerDatabase でこの情報をルックアップすることによって顧客が上級または標準のサービスを受ける資格があるかどうかを判別します。 この情報は、後で使用できるように、メッセージの相関コンテキストの subscriptionLevel プロパティーに追加されます。
  4. 次に、相関コンテキストの subscriptionLevel 情報に基づき、 Filter という名前のメッセージ・フィルターによって、 要求がリアルタイム株価情報または遅延株価情報サービスのいずれかに経路指定されます。
  5. メッセージは、XSLT プリミティブ TransformToDelayed および TransformToRealtime によってそれぞれのサービスへ向かう途中で変換され、 サービスが予期するメッセージと一致するようになります。

下の図は、 戻りメッセージに適用されるメディエーション・ロジックを定義する応答フローを示しています。 このフローは、StockQuote_MediationFlow コンポーネントを介してターゲット・サービス・プロバイダーからクライアントに流れます。


StockQuote_MediationFlow コンポーネントの応答フローの注釈付きスクリーン・ショット

各サービスからの応答は、StockQuoteService によって要求されるフォーマットに一致するように、 XSLT メディエーション・プリミティブ (DelayedToStockQuoteService および RealtimeToStockQuoteService) を介して渡されます。 また、XSLT プリミティブは、相関コンテキストの subscriptionLevel の値をメッセージ内の qualityOfService プロパティーにマップする場合にも使用されます。 qualityOfService テキストは、リアルタイム・サービスから戻された応答には「上級」を示し、 遅延サービスから戻された応答には「標準」を示します。 このテキストは、使用されたサービス・プロバイダーを示すためにクライアントに表示されます。

Feedback
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.
(C) Copyright IBM Japan 2006