ナビゲーションをスキップ

チュートリアル

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

チュートリアル 2. 融資申し込みの変換

データ トランスフォーメーションとは、あるフォーマットから別のフォーマットにデータをマッピングすることです。この節では、BEA AquaLogic Service Bus を使用し、プロキシ サービスのコンフィグレーションで設定した条件に応じてメッセージをルーティングおよび変換する方法を説明します。

この節の内容は以下のとおりです。

 


前提条件

チュートリアル 1. 融資申し込みのルーティング」を完了していることです。

 


チュートリアルの目的

チュートリアルの目的は、AquaLogic Service Bus Console のグラフィカル環境を使用して開発された、ルーティングとトランスフォーメーションのシナリオを作成およびテストする手順を示すことです。

チュートリアル 1. 融資申し込みのルーティング」で学習した内容を基に、AquaLogic Service Bus Console を使用して次のことを行います。

 


シナリオの定義

主要な金融会社が、BEA AquaLogic Service Bus を使用して、第二の融資会社に売却しやすい融資申し込みを識別し、再ルーティングします。25,000,000.00 を超える元本を要求する融資申し込みは、第二の融資会社への売却の候補です。この条件を満たす融資申し込みが検出されると、Web サービスへのコールアウトによってその申し込み者の信用格付け情報が取得されて融資申し込みに追加され、その融資申し込みが第二の金融会社の Web サービスに転送されて処理されます。

25,000,000.00 以下の元本を要求する融資申し込みは、別のビジネス サービスにルーティングされて処理されます。

対象のビジネス サービスは、その融資申し込みを承認するか拒否するかを示す応答を返します。

次の図に、エンタープライズ環境で BEA AquaLogic Service Bus がエンタープライズ サービスとビジネス サービスとのメッセージングを中継する仕組みを示します。

図 4-1 AquaLogic Service Bus を介した融資申し込み処理 Web サービスのエクスポーズ

AquaLogic Service Bus を介した融資申し込み処理 Web サービスのエクスポーズ


 

AquaLogic Service Bus の実行時処理の概要

主要な金融会社が融資申し込みを受け取ります。この融資申し込みは AquaLogic Service Bus プロキシ サービス LoanGateway2 を使ってルーティングされ、申し込みを処理する対象ビジネス サービスが選択されます。融資額が 25000000 を超える場合、申し込みは LoanSaleProcessor ビジネス サービスにルーティングされます。融資額が 25000000 以下の場合、申し込みは NormalLoan ビジネス サービスにルーティングされます。融資額が 25000000 を超える場合、要求パイプラインは CreditRatingService へのサービス コールアウトを実行し、$creditRating 変数を使用して申し込み者の信用格付けを受け取ります。第二の融資会社のサービスのインタフェース要件を満たすために、メッセージ本体が変換され、信用格付けの詳細が追加されます。変換されたメッセージ ($body) は、大口の融資申し込みを処理するビジネス サービスにルーティングされます。サービスから以下の応答メッセージが返されます。

Loan Application Response: 信用格付け : AA : 融資は<i><b>大口</b></i>融資サービスにより購入されました

必要なリソース

プロジェクト フォルダ MortgageBroker と前のチュートリアルで作成したディレクトリ構造を使用して、プロジェクトのアーティファクトを保持します。このシナリオに必要なリソースを次の表に示します。

表 4-1 「融資申し込みのルーティング」チュートリアルのリソース

リソース名

説明

CreditRatingService、LoanSale

WSDL リソース

NormalLoan、LoanSaleProcessor、CreditRatingService

AquaLogic Service Bus で使用される外部ビジネス サービス

LoanGateway2

AquaLogic Service Bus のプロキシ サービス


 

 


このチュートリアルの手順

このチュートリアルでは、「チュートリアル 1. 融資申し込みのルーティング」で学習した内容を基に、追加 WSDL リソースのインポート、新しいビジネス サービスおよびプロキシ サービスの登録、プロキシ サービスのルーティング動作のコンフィグレーションを行います。ルーティング動作のコンフィグレーションには次の操作が含まれます。

以下の手順に従ってプロキシ サービスおよび関連するリソースを AquaLogic Service Bus で設計およびコンフィグレーションし、このユーザ事例シナリオを解決します。

手順 1 : 環境の準備

このチュートリアル用に作成したドメインで AquaLogic Service Bus が動作していること、および「チュートリアル 1. 融資申し込みのルーティング」の説明どおりに手順が完了していることを確認します。

手順 2 : セッションの作成とプロジェクトの設定

このチュートリアルでは、プロジェクト フォルダ MortgageBroker と「チュートリアル 1. 融資申し込みのルーティング」で作成したディレクトリ構造を使用して、プロジェクトのアーティファクトを保持します。

  1. Change Center で [作成] をクリックして新しいセッションを作成します。
  2. AquaLogic Service Bus Console のナビゲーション パネルで [プロジェクト エクスプローラ] を選択します。
  3. ナビゲーション パネルに [プロジェクト エクスプローラ] ペインが開き、コンソールにプロジェクト ページが表示されます。

  4. [プロジェクト エクスプローラ] で [MortgageBroker] プロジェクト ツリーを展開して、プロジェクトのアーティファクトが格納されている以下のサブフォルダを表示します。

手順 3 : リソースの作成

この手順では、WSDL リソースをインポートし、このチュートリアルに必要なプロキシ サービスとビジネス サービスを作成します。

WSDL リソースの作成

WSDL はビジネス サービスおよびプロキシ サービスを作成するための基礎であるため、このシナリオに必要なその他のリソースを作成する前に WSDL リソース (LoanSale および CreditRatingService) を作成する必要があります。

適切な WSDL をインポートして WSDL リソースを作成するには、「WSDL をインポートするには」の手順を実行します。ただし、リソース名と WSDL については次の表に従います。

表 4-2 WSDL コンフィグレーションの設定

リソース名

WSDL の場所

LoanSale

BEA_HOME\weblogic91\servicebus\examples\src\examples\webservices\jws_basic\large\LargeLoanPurchasingService.wsdl

CreditRatingService

BEA_HOME\weblogic91\servicebus\examples\src\examples\webservices\jws_basic\credit\CreditLoanApprovalService.wsdl


 

この手順を完了すると、MortgageBroker/WSDL フォルダにこのチュートリアルおよび「チュートリアル 1. 融資申し込みのルーティング」で作成した WSDL リソースが次の図のように格納されます。

図 4-2 WSDL リソース

WSDL リソース


 

プロキシ サービスの作成

この手順では、プロキシ サービスを作成します。プロキシ サービスを使用して融資申し込みを適切なビジネス サービスにルーティングします。要求融資額が 25 000 000.00 を超える場合は、ルックアップ サービスを呼び出して申し込み者の信用格付けを取得します (融資額には単位が指定されていませんが、ドルなどの任意の通貨を指定できます)。

新しいプロキシ サービスを作成するには、「プロキシ サービスを作成するには」の手順を実行します。ただし、使用するプロキシ サービス名とエンドポント URI は次の表に従います。

表 4-3 プロキシ サービスのコンフィグレーション設定

プロキシ サービス名

LoanGateway2

サービスの種類

[WSDL ポート] オプションを選択する。

[WSDL の選択] ブラウザ ウィンドウで normalLoan WSDL を選択する。

[WSDL 定義の選択] ページで helloPort ポートを選択する。

エンドポイント URI

/loan/gateway2


 

この手順が完了すると、次の図のようにプロキシ サービスのコンフィグレーション設定の概要が表示されます。プロキシ サービスを登録する前にコンフィグレーションの設定を確認します。

図 4-3 LoadGateway2 プロキシ サービス - コンフィグレーション設定の概要

LoadGateway2 プロキシ サービス - コンフィグレーション設定の概要


 

この手順を完了すると、MortgageBroker/ProxyService フォルダにこのチュートリアルおよび「チュートリアル 1. 融資申し込みのルーティング」で作成したプロキシ サービスが次の図のように格納されます。

図 4-4 プロキシ サービス リソース

プロキシ サービス リソース


 

ビジネス サービスの作成

このシナリオでは、ビジネス要件に応じてメッセージが、複数のビジネス サービスのうちの 1 つにルーティングされるようにプロキシ サービスをコンフィグレーションします。

チュートリアル 1. 融資申し込みのルーティング」で標準融資サービスを作成しました。このシナリオ用に LoanSaleProcessor ビジネス サービスと CreditRatingService ビジネス サービスを作成するには、「NormalLoan ビジネス サービスを作成するには」の手順を実行します。ただし、ここでサービスのコンフィグレーションに使用する名前、サービスの種類、エンドポイント URI は、次の表に従います。

表 4-4 LoanSaleProcessor ビジネス サービスのコンフィグレーション設定

ビジネス サービス名

LoanSaleProcessor

サービスの種類

[WSDL ポート] オプションを選択する。

[WSDL の選択] ブラウザ ウィンドウで LoanSale WSDL を選択する。

[WSDL 定義の選択] ページで helloPort ポートを選択する。

エンドポイント URI

[既存の URI] フィールドに表示されているエンドポイント URI の値が http://host:port/njws_basic_ejb/LargeSimpleBean であることを確認する。

host:port は、AquaLogic Service Bus サーバが動作するマシンとポートを表す。host と port の値は、BEA_HOME\weblogic91\samples\servicebus\examples\src\examples.properties に指定された値と同じである必要がある。

詳細については、「examples.properties ファイルの編集」を参照。


 

表 4-5 CreditRatingService ビジネス サービスのコンフィグレーション設定

ビジネス サービス名

CreditRatingService

サービスの種類

[WSDL ポート] オプションを選択する。

[WSDL の選択] ブラウザ ウィンドウで creditRatingService WSDL を選択する。

[WSDL 定義の選択] ページで helloPort ポートを選択する。

エンドポイント URI

[既存の URI] フィールドに表示されているエンドポイント URI の値が http://host:port/njws_basic_ejb/CreditSimpleBean であることを確認する。

host:port は、AquaLogic Service Bus サーバが動作するマシンとポートを表す。host と port の値は、BEA_HOME\weblogic91\samples\servicebus\examples\src\examples.properties に指定された値と同じである必要がある。

詳細については、「examples.properties ファイルの編集」を参照。


 

この手順を完了すると、MortgageBroker/BusinessService フォルダにこのチュートリアルおよび「チュートリアル 1. 融資申し込みのルーティング」で作成したビジネス サービスが次の図のように格納されます。

図 4-5 ビジネス サービス リソース

ビジネス サービス リソース


 

まとめ

手順 1 : 環境の準備」から「手順 3 : リソースの作成」までを完了すると、このシナリオに必要なリソースの作成が完了します。プロキシ サービスには基本コンフィグレーションを設定しました。以降の手順 (「手順 4 : LoanGateway2 プロキシ サービスのルーティングのコンフィグレーション」から「手順 6 : LoanGateway2 プロキシ サービスのルーティング テーブル応答アクションのコンフィグレーション」) では、融資申し込みメッセージのルーティング、トランスフォーメーション、およびサービス コールアウトの動作を追加してプロキシ サービスのコンフィグレーションを完了する方法を説明します。

手順 4 : LoanGateway2 プロキシ サービスのルーティングのコンフィグレーション

このプロキシ サービスを、要求パイプラインと応答パイプラインを使用するメッセージ フローとして実装します。この手順のタスクは以下のとおりです。

ルーティング テーブルの作成

  1. AquaLogic Service Bus Console のナビゲーション パネルで [リソース ブラウザ] を選択します。
  2. ナビゲーション パネルに [リソース ブラウザ] ペインが開き、コンソールに [プロキシ サービスの概要] ページが表示されます。

    注意 : リソースの編集はセッション内で行う必要があります。セッションを開始していない場合は、Change Center で [作成] をクリックしてセッションを開始し、プロキシ サービスのコンフィグレーションやメッセージ フローの編集ができるようにします。

  3. LoanGateway2 プロキシ サービスの [アクション] カラムにある [メッセージ フローの編集] アイコン [メッセージ フローの編集] アイコン をクリックします。
  4. プロキシ サービス LoanGateway2 の[メッセージ フローの編集] ページが表示されます。

  5. [LoanGateway2] をクリックし、[ルート ノードの追加] を選択します。
  6. コンフィグレーションのダイアログに RouteNode1 が追加されます。

  7. [RouteNode1] をクリックし、ポップアップ メニューから [編集ルート ノード] を選択します。
  8. [ステージ コンフィグレーションの編集] ページが表示されます。このページには、[アクションの追加] という 1 つのリンクがあります。

  9. [アクションの追加] をクリックし、[ルーティング テーブル] を選択します。
  10. [ステージ コンフィグレーションの編集] ページにルーティング テーブルのコンフィグレーション ページが表示されます。

    着信メッセージの amount 要素の評価に基づいてビジネス サービスにメッセージをルーティングするようにルーティング テーブルをコンフィグレーションします。そのためには XQuery 式を作成する必要があります。XQuery 式の作成には XQuery 式エディタを使用します。

ルーティング式のコンフィグレーション

  1. [ルーティング テーブル] の [<式>] リンクをクリックします。[XQuery 式エディタ] ページが表示されます。
  2. このページのデフォルトである [XQuery テキスト] をそのまま使用します。
  3. [変数の構造] をクリックします。[変数の構造] ペインが表示されます。
  4. [変数の構造] ペインの [構造の選択] ドロップダウン リストで [body] を選択します。
  5. body 要素の構造が [変数の構造] ペインに表示されます。

    1. processLoanApp 要素の横の [+] をクリックして、要素を展開します。
    2. processLoanApp 要素は、$body - processLoanApp (request) 要素内にあります。

    3. [+] をクリックして、loanRequest 要素を展開します。
    4. 融資要求ドキュメントの構造がグラフィカル表示されます。

      実行時に、プロキシ サービスは、メッセージの amount 要素の値に基づいてルーティングを決定します。

    5. Amount ノード要素に対応する円形アイコン 円形アイコン を選択し、XQuery 式のテキスト ボックスにドラッグ アンド ドロップします。
    6. $body/exam:processLoanApp/loanRequest/java:Amount XQuery 式がテキスト ボックスに書き込まれます。

      注意 : ドラッグ アンド ドロップ機能を使用できるのは Internet Explorer (IE) ブラウザのみです。IE 以外のブラウザを使用する場合は、[変数の構造] ペインで amount 要素を選択します。式が [プロパティ インスペクタ] パレットに表示されます。XQuery 式のテキスト ボックスにカーソルを置いて、[プロパティのコピー] をクリックします。式がテキスト ボックスにコピーされます。パレットの式をコピーし、XQuery 式のテキスト ボックスに貼り付けることもできます。

  6. [検証] をクリックして、XQuery を検証します。
  7. 式を送信する前に検証することをお勧めします。式の構文が検証されます。式にエラーがある場合は、[検証] ボタンのすぐ上に表示されます。次の図に示す例では、式は有効です。

    図 4-6 ルーティング式の検証

    ルーティング式の検証


     
  8. [保存] をクリックします。
  9. [ステージ コンフィグレーションの編集] ページのルーティング テーブルに戻ります。<式> は、メッセージの Amount 要素の値を返す式に置き換えられています。

  10. [演算子] ドロップダウン リストで [>] を選択し、関連するテキスト フィールドに数値 25000000 を入力します (カンマは入力しません)。
  11. これで、ルーティング テーブルにルーティング動作を決める式が含まれました。Amount 要素の値が 25000000 より大きい場合、ルーティング テーブルのコンフィグレーションに従ってメッセージがルーティングされます。

  12. 金額が 25000000 より大きい場合のメッセージのルーティング先サービスを定義するために、[サービス] リンクをクリックします。[サービスの選択] ブラウザ ウィンドウが表示されます。
    1. [LoanSaleProcessor] ビジネス サービスを選択します。
    2. [送信] をクリックします。
  13. [ルーティング テーブル] の [操作] ドロップダウン リストで、[processLoanApp] 操作を選択します。
  14. これは、融資申し込みの要求融資額が 2500000 より大きい場合に、LoanSaleProcessor ビジネス サービスで実行時に呼び出される操作です。

これで、LoanSaleProcessor ビジネス サービスへの融資申し込みのルーティング ケースが定義されました。

図 4-7 LoanSaleProcessor への融資申し込みのルーティング

LoanSaleProcessor への融資申し込みのルーティング


 

要求融資額が 25000000 を超える融資申し込みが検出されると、Web サービス コールアウト (サービス コールアウト) によってその顧客の信用格付けが取得されます。取得された信用格付け情報が融資申し込みに追加され、その融資申し込みが第二の金融会社のビジネス サービスに転送されて処理されます。次の節 (手順 5 : LoanGateway2 プロキシ サービスのルーティング テーブル要求アクションのコンフィグレーション) では、対象サービスに適したメッセージのサービス コールアウトおよび変換を行うようにプロキシ サービスをコンフィグレーションする方法を説明します。

手順 5 : LoanGateway2 プロキシ サービスのルーティング テーブル要求アクションのコンフィグレーション

ルーティング テーブル要求アクションをコンフィグレーションするには、以下の手順を実行します。

サービス コールアウトの入力パラメータのコンフィグレーション

サービス コールアウトにより融資申し込みが CreditRatingService ビジネス サービスに送信され、申し込み者の信用格付けが返されます。サービス コールアウト アクションをコンフィグレーションする前に、次の手順に従ってサービス コールアウト アクションの入力パラメータを割り当てる必要があります。

  1. 手順 4 : LoanGateway2 プロキシ サービスのルーティングのコンフィグレーション」で作成したルーティング テーブルの [ステージ コンフィグレーションの編集] ページが AquaLogic Service Bus Console で開いていることを確認します。
  2. [ルーティング テーブル] の [要求アクション] パネルで [アクションの追加] をクリックし、[割り当てる] を選択します。
  3. 割り当てアクションが [ルーティング テーブル] の [要求アクション] パイプラインに追加されます。

  4. [<式>] リンクをクリックします。[XQuery 式エディタ] ページが表示されます。
    1. このページのデフォルトである [XQuery テキスト] をそのまま使用します。
    2. [変数の構造] ペインの [変数の構造] ドロップダウン リストで [body] を選択し、要素のリストを展開して、loanRequest 要素を XQuery 式のテキスト ボックスにドラッグ アンド ドロップします。次の XQuery 式がテキスト ボックスに書き込まれます。
    3. $body/exam:processLoanApp/loanRequest
    4. [検証] をクリックして XQuery を検証し、[保存] をクリックします。
    5. [ステージ コンフィグレーションの編集] ページのルーティング テーブルに戻ります。<式> は、サービス コールアウト サービスに送信するメッセージ コンテンツを返す式に置き換えられています。

  5. [変数] テキスト ボックスに inputparam と入力します。
  6. 図 4-8 サービス コールアウトの入力パラメータのコンフィグレーション

    サービス コールアウトの入力パラメータのコンフィグレーション


     

この手順で、XQuery 式 ($body/exam:processLoanApp/loanRequest) で返される値を inputparam 変数に割り当てる作業は完了です。

サービス コールアウト アクションの追加

この節では、融資申し込みを CreditRatingService ビジネス サービスに送信し、申し込み者の信用格付けを取得するサービス コールアウト アクションをコンフィグレーションする方法を説明します。

  1. [ルーティング テーブル] の [要求アクション] パネルで [割り当てる] アイコン をクリックし、[アクションの追加サービス コールアウト] を選択します。
  2. サービス コールアウト アクションが [ルーティング テーブル] の [要求アクション] パイプラインに追加されます。

  3. [サービス コールアウト] の [サービス] リンクをクリックします。[サービスの選択] ブラウザ ウィンドウが表示されます。
    1. [サービスの選択] ウィンドウで [CreditRatingService] を選択します。
    2. [送信] をクリックします。
  4. [操作] ドロップダウン リストで [processLoanApp] を選択します。サービス コールアウトの要求パラメータおよび応答パラメータをコンフィグレーションできるフィールドが表示されます。
    1. [サービス コールアウト] の [要求パラメータ] セクションで、loanRequest パラメータを inputparam (前の節で定義したメッセージ コンテキスト変数) に設定します。
    2. [サービス コールアウト] の [応答パラメータ] セクションで、return パラメータ名を creditRating に設定します。
    3. 図 4-9 サービス コールアウト アクションのコンフィグレーション

      サービス コールアウト アクションのコンフィグレーション


       

この手順で、サービス コールアウトを CreditRatingService Web サービスにコンフィグレーションする作業は完了です。Web サービスから返された信用格付けが creditRating コンテキスト変数に割り当てられます。

メッセージのトランスフォーメーションのコンフィグレーション

この節では、loanSaleProcessor サービスのパブリック コントラクト (インタフェース要件) を満たすようにメッセージのトランスフォーメーションをコンフィグレーションします。ここで説明する内容は次のとおりです。

ネームスペースを変更するには

  1. [サービス コールアウト] アイコン [サービス コールアウト] アイコン をクリックし、[アクションの追加名前変更する] を選択します。
  2. 名前変更アクションのコンフィグレーション フィールドが [要求アクション] パネルに追加されます。

  3. [名前変更する] という文の [<XPath>] リンクをクリックします。XPath 式エディタが表示されます。
    1. XPath 式のテキスト ボックスに以下の XPath 式を入力します。
    2. .//java:*

      この式では、プレフィックス java が付いたすべてのネームスペースが識別されます。

    3. [保存] をクリックします。[ステージ コンフィグレーションの編集] ページに戻ります。
  4. [変数] テキスト ボックスに body と入力します。
  5. body コンテキスト変数にメッセージ本体が保持されます。以上の手順を完了すると、body コンテキスト変数でプレフィックスが java であるすべてのネームスペースを検出する XPath 式の作成は完了です。次の手順では、XPath 式で検出されたネームスペースを置換するネームスペースを指定します。

  6. [ネームスペース] オプションを選択して、メッセージ内で置換するネームスペースの完全修飾名を入力します。新しいネームスペースは java:large.client です。
  7. 注意 : この例では、置換前のネームスペースは java:normal.client です。

名前変更アクションは次の図のように表示されます。

図 4-10 ネームスペースの名前変更

ネームスペースの名前変更


 

メッセージに新しい要素を挿入するには

  1. [名前変更する] アイコン [名前変更する] アイコン をクリックし、[アクションの追加挿入する] を選択します。
  2. 挿入アクションのコンフィグレーション フィールドが [要求アクション] パネルに追加されます。

  3. 挿入アクションの [<式>] をクリックします。
  4. [XQuery 式エディタ] ページが表示されます。このページで新しいネームスペースを追加します。

  5. [ネームスペース定義] パレットで、[ユーザ定義済みネームスペース] 領域に移動します。
  6. 図 4-11 ユーザ定義済みネームスペース

    ユーザ定義済みネームスペース


     
    1. [ネームスペースの追加] をクリックします。
    2. [プレフィックス] フィールドに lg と入力します。
    3. [URI] フィールドに java:large.client と入力します。
    4. [追加] をクリックします。
    5. 新しいネームスペースが、[ネームスペース定義] パレットの [ユーザ定義済みネームスペース] 領域に表示されます。

  7. XQuery 式のテキスト ボックスに次の式を入力して、新しい要素の作成方法を指定します。
  8. <lg:CreditRating>{data($creditRating)}</lg:CreditRating>

    実行時に、信用格付けサービス (「サービス コールアウト アクションの追加」でサービス コールアウト アクションをコンフィグレーションしたサービス) により $creditRating 変数に信用格付けの値が割り当てられます。

  9. [検証] をクリックし、[保存] をクリックします。
  10. 注意 : 送信する前に、式を検証することをお勧めします。

  11. [挿入する] 式のドロップダウン リストから [の後ろに] を選択します。
  12. [<XPath>] リンクをクリックします。[XPath 式エディタ] ページが表示されます。
    1. [変数の構造] をクリックします。[変数の構造] ペインが表示されます。
    2. [変数の構造] ペインの [構造の選択] ドロップダウン リストで [body] を選択します。
    3. 要素リストを展開し、Notes 要素を XPath 式のテキスト ボックスにドラッグ アンド ドロップします。
    4. 次の XPath 式がテキスト ボックスに書き込まれます。

      ./exam:processLoanApp/loanRequest/java:Notes

      注意 : ドラッグ アンド ドロップ機能を使用できるのは Internet Explorer (IE) ブラウザのみです。IE 以外のブラウザを使用する場合は、[変数の構造] ペインで notes 要素を選択します。XPath 式が [プロパティ インスペクタ] パレットに表示されます。XPath 式のテキスト ボックスにカーソルを置いて、[プロパティのコピー] をクリックします。式がテキスト ボックスにコピーされます。パレットの式をコピーし、XPath 式のテキスト ボックスに貼り付けることもできます。

  13. この文のネームスペース javalg に変更します。
  14. ./exam:processLoanApp/loanRequest/lg:Notes 
  15. [検証] をクリックし、[保存] をクリックして、[ステージ コンフィグレーションの編集] ページに戻ります。
  16. [変数] テキスト フィールド (式の最初のフィールド) に body と入力します。これは、実行時に新しい <CreditRating> 要素を挿入するコンテキスト変数です。

挿入アクションは次の図のように表示されます。

図 4-12 メッセージへの新しい要素の挿入

メッセージへの新しい要素の挿入


 

これで、発信メッセージのコンフィグレーションは完了です。信用格付け要素をメッセージに追加し、ネームスペースを変更して、メッセージが対象サービスのパブリック コントラクト (インタフェース) に準拠するようにしました。

ここまでの手順を完了すると、発信メッセージのコンフィグレーションは次のように表示されます。

図 4-13 発信メッセージのコンフィグレーション

発信メッセージのコンフィグレーション


 

次の手順では、LoanGateway2 プロキシ サービスの応答アクションをコンフィグレーションする方法を説明します。

手順 6 : LoanGateway2 プロキシ サービスのルーティング テーブル応答アクションのコンフィグレーション

この手順では、プロキシ サービスからクライアントに返されるメッセージがクライアントのパブリック コントラクト (WSDL) に準拠するようにルーティング テーブルの応答アクションをコンフィグレーションする方法を説明します。ここで説明する内容は次のとおりです。

要素を削除するには

  1. 前の手順で作成およびコンフィグレーションしたルーティング テーブルの [ステージ コンフィグレーションの編集] ページが AquaLogic Service Bus Console で開いていることを確認します。
  2. [ルーティング テーブル] の [応答アクション] パネルで、[アクションの追加削除する] をクリックします。
  3. 削除アクションのコンフィグレーション フィールドが、[ルーティング テーブル] の [応答アクション] に追加されます。

  4. [変数の <XPath>] オプションを選択し、[<XPath>] をクリックします。[XPath 式エディタ] ページが表示されます。
    1. XPath 式のテキスト ボックスに以下の式を入力します。
    2. ./exam:processLoanAppResponse/return/lg:CreditRating 

      processLoanAppResponse は、呼び出された WSDL 操作に文字列 Response を追加したものを表し、return は WSDL パート名を表します。

    3. [検証] をクリックし、[保存] をクリックします。[ステージ コンフィグレーションの編集] ページに戻ります。
  5. 削除アクションの [変数] テキスト フィールドに body と入力します。
  6. 削除アクションのコンフィグレーションは次のようになります。

    変数 body./exam:processLoanAppResponse/return/lg:CreditRating

    図 4-14 要素の削除

    要素の削除


     

以上の手順で、メッセージを応答パイプラインで処理するときに応答メッセージから信用格付け要素を削除するように指定する作業を完了しました。

名前変更アクションを追加するには

この節では、ネームスペースをクライアントで使用するネームスペースの名前 (java:normal.client) に変更する方法を説明します (loanSaleProcessor ビジネス サービスへの要求メッセージで、ネームスペースを対象サービスで使用するネームスペースに変更しました。「ネームスペースを変更するには」を参照してください)。

  1. [削除する] アイコン [削除する] アイコン をクリックし、[アクションの追加名前変更する] を選択します。
  2. 名前変更アクションのコンフィグレーション フィールドが [応答アクション] パネルに追加されます。

  3. [名前変更する] という文の [<XPath>] をクリックします。XPath 式エディタが表示されます。
    1. XPath 式のテキスト ボックスに以下の式を入力します。
    2. .//lg:*

      この XPath 式では、プレフィックス lg: が付いたすべてのネームスペースが検出されます。

    3. [保存] をクリックします。[ステージ コンフィグレーションの編集] ページに戻ります。
  4. 名前変更アクションの [変数] テキスト フィールドに body と入力します。
  5. [ネームスペース] オプションを選択し、ネームスペースのテキスト フィールドに java:normal.client と入力します。
  6. 以上の手順で、次の図のように応答メッセージでプレフィックス lg: が付いたすべてのネームスペースを java:normal.client に変更するように指定する作業を完了しました。

    図 4-15 名前変更アクションの追加

    名前変更アクションの追加


     

ここまでの手順を完了すると、プロキシ サービスの応答アクションのコンフィグレーションは次のように表示されます。

図 4-16 プロキシ サービスの応答アクションのコンフィグレーション

プロキシ サービスの応答アクションのコンフィグレーション


 

LoanGateway2 プロキシ サービスのルーティング テーブルのコンフィグレーションの最後の手順では、デフォルト ルーティング ケース (else 条件) をケース式に追加します。

手順 7 : ルーティングのデフォルト ケースの追加

この手順では、LoanGateway2 プロキシ サービスのルーティング テーブルにデフォルト ルーティング ケースをコンフィグレーションする方法を説明します。実行時に、ルーティング テーブルに設定された条件が 1 つも満たされない場合、このデフォルト ケースに従ってメッセージがルーティングされます。

  1. ルーティング テーブルの [ケース] アイコン [ケース] アイコン をクリックし、[デフォルト ケースの挿入] を選択します。
  2. デフォルト ケースが [ステージ コンフィグレーションの編集] ページのルーティング テーブルの下に追加されます。

  3. [<サービス>] をクリックして [サービの選択] ブラウザを表示します。
    1. [NormalLoan] ビジネス サービスを選択します。
    2. [送信] をクリックします。
  4. デフォルト ケースのコンフィグレーション フィールドで、次の図のように [processLoanApp] 操作を選択します。
  5. 図 4-17 デフォルト ルーティング ケースの追加

    デフォルト ルーティング ケースの追加


     
  6. [保存] をクリックしてルート ノードのコンフィグレーションを保存し、LoanGateway2 プロキシ サービスの [メッセージ フローの編集] ページに戻ります。
  7. [プロキシ サービスの概要] ページに戻るまで、各コンフィグレーション ページで [保存] をクリックします。
  8. Change Center で [アクティブ化] をクリックし、[送信] をクリックしてセッションのコンフィグレーション情報を保存します。

次の図に示すように、プロキシ サービスのメッセージ フローのマップを確認できます。

図 4-18 LoanGateway2 プロキシ サービスのメッセージ フローのマップ

LoanGateway2 プロキシ サービスのメッセージ フローのマップ


 

手順 8 : 融資申し込みのルーティング コンフィグレーションのテスト

AquaLogic Service Bus でクライアントと対象ビジネス サービスを使用するためのコンフィグレーションが完了したので、コンフィグレーションをテストできます。このシナリオのプロキシ サービスのルーティング動作は、融資申し込みメッセージの融資額の値に基づいています。融資額を変更すると、ルーティング動作は次のように変わります。

この節では、これらの 2 つのケースのプロキシ サービスをテストする方法を説明します。テストの実行後にコマンド ウィンドウに返されるメッセージに、テストの成功または失敗と、要求を処理したビジネス サービスが示されます。

この節のテスト シナリオは以下のとおりです。

LoanSaleProcessor (大口融資処理サービス) ビジネス サービスをテストするには

  1. コマンド ウィンドウを開きます。
  2. setEnv.cmd を実行して環境を設定する作業が済んでいない場合は、ここで実行します。
    1. 次のディレクトリに移動します。
    2. BEA_HOME\weblogic91\samples\servicebus\examples\src\ 
    3. このディレクトリで、コマンドラインから次のコマンドを実行します。
    4. setEnv.cmd

      注意 : UNIX システムでコンフィグレーションをテストする場合は、コマンドライン プロンプトで setEnv.sh スクリプトを実行します。

  3. 次のディレクトリに移動します。
  4. BEA_HOME\weblogic91\samples\servicebus\examples\src\examples\webservices\jws_basic\normal
  5. AquaLogic Service Bus のルーティング動作を変更するには、build.xml ファイルで、run ターゲットを編集する必要があります。
    1. build.xml を開きます。
    2. build.xml ファイルの最後までスクロールして次の文字列を探します。
    3. <arg line="http://$... 
    4. 見つかった文字列を次のように変更し、変更内容を保存します。
    5. <arg line="http://${wls.hostname}:${wls.port}/loan/gateway2 steve 555 25000001 20 5.1 notes" />

    これで、プロキシ サービスの URI が、チュートリアルのドメインで動作中のデプロイされた Web サービス (gateway2) の URI に変更され、融資額の値に 25000001 が指定されます (テスト用の入力パラメータの詳細については、表 3-5 を参照してください)。

  6. ビジネス サービスをまだデプロイしていない場合は、デプロイします。
    1. コマンド ウィンドウで、次のディレクトリに移動します。
    2. BEA_HOME\weblogic91\samples\servicebus\examples\src\examples\webservices\jws_basic\normal 
    3. ant と入力し、〔Enter〕を押します。
  7. このビルドをテストするには、コマンドラインで次のように入力します。
  8. ant run 

    これで、プロキシ サービスのルーティング ロジックがテストされます。Web サービスからのメッセージがコマンド ラインに出力されます。

    [java] Loan Application Response: 信用格付け : AA : 融資は<i><b>大口</b></i>融資サービスにより購入されました
         [java] Rate: 5.1
    BUILD SUCCESSFUL

この応答メッセージは、要求融資額が 25000001 (25000000 より多い) であるため、「大口融資サービス」で要求が処理されたということを示します。

NormalLoan ビジネス サービスをテストするには

  1. LoanSaleProcessor (大口融資処理サービス) ビジネス サービスをテストするには」の手順に従って、以下のディレクトリにある build.xml ファイルを編集します。
  2. BEA_HOME\weblogic91\samples\servicebus\examples\src\examples\webservices\jws_basic\normal

    このケースでは、NormalLoan ビジネス サービスをテストするために、build.xml ファイルに融資額の値 25000000 を入力し (表 3-5 を参照)、変更を保存します。

  3. ビジネス サービスをまだデプロイしていない場合は、デプロイします。
    1. コマンド ウィンドウで、次のディレクトリに移動します。
    2. BEA_HOME\weblogic91\samples\servicebus\examples\src\examples\webservices\jws_basic\normal 
    3. ant と入力し、〔Enter〕を押します。
  4. プロキシ サービスのルーティング ロジックをテストするため、コマンドラインで次のように入力します。
  5. ant run

    Web サービスからの応答メッセージがコマンド ラインに出力されます。

    [java] Loan Application Response: <i><b>標準</b></i>融資申し込み処理サービスにより承認されました
         [java] Rate: 5.1
    BUILD SUCCESSFUL

この応答メッセージは、要求融資額が 25000000 であるため、「標準融資申し込み処理サービス」で要求が処理されたということを示します。

 


ベスト プラクティス

このチュートリアルでは、トランスフォーメーションをコンフィグレーションし、ルート ノードのネームスペースを変更します。代わりに、パイプライン ペアの要求パイプラインに同一のロジックをコンフィグレーションすることも可能です。

トランスフォーメーションおよびネームスペース変更に必要な作業は、どちらの方法を選択しても同じです。

このチュートリアル シナリオの場合、既存のルート ノードの要求アクションおよび応答アクションにアクションを追加する方が、独立したパイプライン ペアを作成し、ステージを追加して、そのステージにトランスフォーメーション アクションを追加するよりも簡単です。

実装の選択が重要になるシナリオもあります。

ルート ノードから 5 種類のサービスにメッセージをルーティングし、各サービスで必要とするトランスフォーメーションが同一である場合がその例です。このシナリオでは、1 つのトランスフォーメーションを要求パイプラインに追加する方が、各ルート ノードの各ルーティング コンフィグレーション用に同一のトランスフォーメーションを 5 セット用意するよりも適切です。実行コストは同じでも、保守、コンフィグレーション、わかりやすさの点で後者の実装の方が高コストであり、作業負担が大きくなります。

 

ナビゲーション バーのスキップ  ページの先頭 前 次