チュートリアル
チュートリアル 2. 融資申し込みの変換
データ トランスフォーメーションとは、あるフォーマットから別のフォーマットにデータをマッピングすることです。この節では、BEA AquaLogic Service Bus を使用し、プロキシ サービスのコンフィグレーションで設定した条件に応じてメッセージをルーティングおよび変換する方法を説明します。
この節の内容は以下のとおりです。
前提条件
「チュートリアル 1. 融資申し込みのルーティング」を完了していることです。
チュートリアルの目的
チュートリアルの目的は、AquaLogic Service Bus Console のグラフィカル環境を使用して開発された、ルーティングとトランスフォーメーションのシナリオを作成およびテストする手順を示すことです。
「チュートリアル 1. 融資申し込みのルーティング」で学習した内容を基に、AquaLogic Service Bus Console を使用して次のことを行います。
コンテンツ ベースのルーティングをコンフィグレーションする。
XPath 式を使用してメッセージ本体のコンテンツを変更する。
シナリオの定義
主要な住宅金融会社が、BEA AquaLogic Service Bus を使用して、第二の融資会社に売却しやすい融資申し込みを識別し、再ルーティングします。25,000,000.00 を超える元本を要求する融資申し込みは、第二の融資会社への売却の候補です。この条件を満たす融資申し込みが検出されると、Web サービスへのコールアウトによってその顧客の信用格付け情報が取得されて融資申し込みに追加され、その融資申し込みが第二の住宅金融会社の Web サービスに転送されて処理されます。
25,000,000.00 以下の元本を要求する融資申し込みは、別のビジネス サービスにルーティングされて処理されます。
対象のビジネス サービスは、その融資申し込みを承認するか拒否するかを示す応答を返します。
次の図に、エンタープライズ環境で BEA AquaLogic Service Bus がエンタープライズ サービスとビジネス サービスとのメッセージングを中継する仕組みを示します。
図 5-1 AquaLogic Service Bus を介した融資申し込み処理 Web サービス
AquaLogic Service Bus の実行時処理の概要
主要な住宅金融会社が融資申し込みを受け取ります。この融資申し込みは AquaLogic Service Bus プロキシ サービス LoanGateway2
を使ってルーティングされ、申し込みを処理する対象ビジネス サービスが選択されます。カスタム コンテキスト変数 ($rating
) の値に AA
(String 型) を割り当てると、デフォルトの要求パイプラインで信用格付けのルックアップがシミュレーションされます。さらに、ルックアップから顧客 ID (整数) が返され、別のカスタム コンテキスト変数 $custID
に割り当てられます。
次に、第二の融資会社のサービスのインタフェース要件を満たすために、メッセージ本体が変換され、顧客名と社会保障番号の要素が削除されて、<rating>$rating</rating>
と <custID>$custID</custID>
に置き換えられます。変換されたメッセージ ($body
) は、大口の融資申し込みを処理するビジネス サービスにルーティングされます。サービスから以下の応答メッセージが返されます。
"Congratulations, your loan is approved and your loan ID is
nnnnn
.In future communications about your loan please reference this Loan ID for faster service"
.
必要なリソース
プロジェクト フォルダ MortgageBroker
と前のチュートリアルで作成したディレクトリ構造を使用して、プロジェクトのアーティファクトを保持します。このシナリオに必要なリソースを次の表に示します。
表 5-1 「融資申し込みの変換」チュートリアルのリソース
CreditRatingService、LoanSale
|
WSDL リソース
|
NormalLoan、LoanSaleProcessor、CreditRatingService
|
AquaLogic Service Bus で使用される外部ビジネス サービス
|
LoanGateway2
|
AquaLogic Service Bus のプロキシ サービス
|
このチュートリアルの手順
このチュートリアルでは、「チュートリアル 1. 融資申し込みのルーティング」で学習した内容を基に、追加 WSDL リソースのインポート、新しいビジネス サービスおよびプロキシ サービスの登録、プロキシ サービスのルーティング動作のコンフィグレーションを行います。ルーティング動作のコンフィグレーションには次の操作が含まれます。
信用格付けを取得する WS-Callout を追加する
発信 (要求) メッセージで、ネームスペースを変更して新しい CreditRating
要素を挿入する
応答メッセージで、ネームスペースの変更を元に戻して CreditRating
要素を削除する
以下の手順に従ってプロキシ サービスおよび関連するリソースを AquaLogic Service Bus で設計およびコンフィグレーションし、このユーザ事例シナリオを解決します。
手順 1 : 環境の準備
このチュートリアル用に作成したドメインで AquaLogic Service Bus が動作していること、および「チュートリアル 1. 融資申し込みのルーティング」の説明どおりに手順が完了していることを確認します。
手順 2 : セッションの作成とプロジェクトの設定
このチュートリアルでは、プロジェクト フォルダ MortgageBroker
と「チュートリアル 1. 融資申し込みのルーティング」で作成したディレクトリ構造を使用して、プロジェクトのアーティファクトを保持します。
Change Center で [作成] をクリックして新しいセッションを作成します。
AquaLogic Service Bus Console のナビゲーション パネルで [プロジェクト エクスプローラ] を選択します。
ナビゲーション パネルに [プロジェクト エクスプローラ] ペインが開き、コンソールにプロジェクト ページが表示されます。
[プロジェクト エクスプローラ] で [MortgageBroker
] プロジェクト ツリーを展開して、プロジェクトのアーティファクトが格納されている以下のサブフォルダを表示します。
ProxyService
BusinessServices
WSDL
手順 3 : リソースの作成
この手順では、WSDL リソースをインポートし、このチュートリアルに必要なプロキシ サービスとビジネス サービスを作成します。
WSDL リソースの作成
WSDL はビジネス サービスおよびプロキシ サービスを作成するための基礎であるため、このシナリオに必要なその他のリソースを作成する前に WSDL リソース (LoanSale および CreditRatingService) を作成する必要があります。WSDL のプロパティをウィザードに従ってコンフィグレーションします。
適切な WSDL をインポートして WSDL リソースを作成するには、「WSDL をインポートするには」の手順を実行します。ただし、リソース名と WSDL については次の表に従います。
表 5-2 WSDL コンフィグレーションの設定
リソース名
|
WSDL の場所
|
LoanSale
|
BEA_HOME \weblogic90\servicebus\examples\src\examples\webservices\jws_basic\large\LargeLoanPurchasingService.wsdl
|
CreditRatingService
|
BEA_HOME \weblogic90\servicebus\examples\src\examples\webservices\jws_basic\credit\CreditLoanApprovalService.wsdl
|
この手順を完了すると、MortgageBroker/WSDL
フォルダにこのチュートリアルおよび「チュートリアル 1. 融資申し込みのルーティング」で作成した以下の WSDL リソースが格納されます。
CreditRatingService
LoanSale
managerApproval
normalLoan
プロキシ サービスの作成
この手順では、プロキシ サービスを作成します。プロキシ サービスを使用して融資申し込みを適切なビジネス サービスにルーティングします。要求融資額が 25 000 000.00 を超える場合は、ルックアップ サービスを呼び出して申し込み者の信用格付けを取得します (融資額には単位が指定されていませんが、ドルなどの任意の通貨を指定できます)。
新しいプロキシ サービスを作成するには、「プロキシ サービスを作成するには」の手順を実行します。ただし、使用するプロキシ サービス名とエンドポント URI は次の表に従います。
表 5-3 プロキシ サービスのコンフィグレーション設定
プロキシ サービス名
|
LoanGateway2
|
エンドポイント URI
|
/loan/gateway2
|
プロキシ サービスを登録する前にコンフィグレーションの設定を確認します。
この手順を完了すると、MortgageBroker/ProxyService
フォルダにこのチュートリアルおよび「チュートリアル 1. 融資申し込みのルーティング」で作成した以下のプロキシ サービスが格納されます。
LoanGateway1
LoanGateway2
ビジネス サービスの作成
このシナリオでは、ビジネス要件に応じて 1 つにメッセージが複数のビジネス サービスにルーティングされるようにプロキシ サービスをコンフィグレーションします。
CreditRatingService - 指定した条件を満たす融資申し込みを受け取ると、その顧客の信用格付けを返します。これは、Web サービス コールアウト (WS-Callout) により実装されます。
NormalLoan - 第二の住宅金融会社のビジネス サービス。このサービスは、要求融資額が 25 000 000 以下の場合に呼び出されます。
LoanSaleProcessor - 第二の住宅金融会社のビジネス サービス。このサービスは、要求融資額が 25 000 000 を超える場合に呼び出されます。
「チュートリアル 1. 融資申し込みのルーティング」で標準融資サービスを作成しました。このシナリオ用に LoanSaleProcessor
ビジネス サービスと CreditRatingService
ビジネス サービスを作成するには、「NormalLoan ビジネス サービスを作成するには」の手順を実行します。ただし、ここでサービスのコンフィグレーションに使用する名前、サービスの種類、エンドポイント URI は、次の表に従います。
表 5-4 LoanSaleProcessor ビジネス サービスのコンフィグレーション設定
ビジネス サービス名
|
LoanSaleProcessor
|
サービスの種類
|
[WSDL ポート]
[WSDL ブラウザ] で [LoanSale ] WSDL を選択
[helloPort ] ポートを選択
|
エンドポイント URI
|
デフォルト値を使用
|
表 5-5 CreditRatingService ビジネス サービスのコンフィグレーション設定
ビジネス サービス名
|
CreditRatingService
|
サービスの種類
|
[WSDL ポート]
[WSDL ブラウザ] で [creditRatingService ] WSDL を選択
[helloPort ] ポートを選択
|
エンドポイント URI
|
デフォルト値を使用
|
この手順を完了すると、MortgageBroker/BusinessService
フォルダにこのチュートリアルおよび「チュートリアル 1. 融資申し込みのルーティング」で作成した以下のプロキシ サービスが格納されます。
CreditRatingService
LoanSaleProcessor
managerLoanReviewService
NormalLoan
まとめ
「手順 1 : 環境の準備」から「手順 3 : リソースの作成」までを完了すると、このシナリオに必要なリソースの作成が完了します。プロキシ サービスには基本コンフィグレーションを設定しました。以降の手順 (「手順 4 : LoanGateway2 プロキシ サービスのルーティングのコンフィグレーション」から「手順 6 : LoanGateway2 プロキシ サービスのルーティング テーブル応答アクションのコンフィグレーション」) では、融資申し込みメッセージのルーティング、トランスフォーメーション、および WS-Callout の動作を追加してプロキシ サービスのコンフィグレーションを完了する方法を説明します。
手順 4 : LoanGateway2 プロキシ サービスのルーティングのコンフィグレーション
このプロキシ サービスを、要求パイプラインと応答パイプラインを使用するメッセージ フローとして実装します。この手順のタスクは以下のとおりです。
ルーティング テーブルの作成
AquaLogic Service Bus Console のナビゲーション パネルで [リソース ブラウザ] を選択します。
ナビゲーション パネルに [リソース ブラウザ] ペインが開き、コンソールに [プロキシ サービスの概要] プロジェクト ページが表示されます。
注意 : リソースの編集はセッション内で行う必要があります。セッションを開始していない場合は、Change Center で [作成] をクリックしてセッションを開始し、プロキシ サービスのコンフィグレーションやメッセージ フローの編集ができるようにします。
LoanGateway2
プロキシ サービスの [オプション] 列にある [メッセージ フローの編集] アイコン をクリックします。
プロキシ サービス LoanGateway2
の[メッセージ フローの編集] ページが表示されます。このページには、デフォルトのメッセージ フロー コンフィグレーションが表示されます。デフォルト コンフィグレーションは開始ノードとエコー ノードで構成されます。これはメッセージ フローの最小コンフィグレーションです。
エコー ノードを左クリックします。[ルート ノードに変換] を選択します。
コンフィグレーション ダイアログで、ノードのデフォルト名が RouteNode1
であることを確認し、[保存] をクリックします。
ルート ノードが RouteNode1 という名前で保存されます。
[RouteNode1] を左クリックし、ポップアップ メニューから [編集|ルート ノード] を選択します。
[ステージ コンフィグレーションの編集] ページが表示されます。このページには、[アクションの追加] という 1 つのリンクがあります。
[アクションの追加] を左クリックして [ルーティング テーブル] を選択します。
[ステージ コンフィグレーションの編集] ページにルーティング テーブルのコンフィグレーション ページが表示されます。
着信メッセージの amount
要素の評価に基づいてビジネス サービスにメッセージをルーティングするようにルーティング テーブルをコンフィグレーションします。そのためには XQuery 式を作成する必要があります。XQuery 式の作成には XQuery 式エディタを使用します。
ルーティング式のコンフィグレーション
[ルーティング テーブル] の [<式>
] リンクを選択します。[XQuery 式の編集] ページが表示されます。
XQuery 式のデフォルトである [テキスト] をそのまま使用します。
[メッセージ コンテキスト変数] ペインにあるシステム コンテキスト変数のドロップダウン リストから [body
] を選択します。
着信メッセージの body 要素が [メッセージ コンテキスト変数] ペインにグラフィカル表示されます。
[processLoanApp] 要素の横の [+] をクリックして、要素を展開します。
[+] をクリックして、[loanRequest] 要素を展開します。融資要求ドキュメントの構造が表示されます。実行時に、プロキシ サービスではメッセージの Amount
要素の値に基づいてルーティング先が選択されるため、この要素を選択して式に使用します。
式に使用する Amount
要素に関連付けられている円形アイコン を選択し、[式の編集] テキスト ボックスにドラッグ アンド ドロップします。
注意 : ドラッグ アンド ドロップ機能を使用できるのは Internet Explorer (IE) ブラウザのみです。IE 以外のブラウザを使用する場合は、手順 a と手順 b を実行します。[メッセージ コンテキスト変数] パレットの [XPath] テキスト ボックスに式が表示されます。Amount
ノードを [式の編集] テキスト ボックスにドラッグ アンド ドロップするのではなく、[XPath] テキスト ボックスから式をコピーして [式の編集] テキスト ボックスに貼り付けます。
[検証] をクリックして、XQuery を検証します。
式を送信する前に検証することをお勧めします。式の構文が検証されます。式にエラーがある場合は、[検証] ボタンのすぐ上に表示されます。この例では、式は有効です。
[ステージ コンフィグレーションの編集] ページのルーティング テーブルに戻ります。<式>
は、メッセージの Amount
要素の値を返す式に置き換えられています。
条件の演算子フィールドのリストから [>
] を選択します。
関連付けられているテキスト フィールドに数字 25000000 とカンマを付けずに入力します。
これで、ルーティング テーブルにルーティング動作を決める式が含まれました。Amount
要素の値が 25000000 より大きい場合、ルーティング テーブルのコンフィグレーションに従ってメッセージがルーティングされます。
金額が 25000000 より大きい場合のメッセージのルーティング先サービスを定義するために、[サービス
] リンクを選択します。[サービス ブラウザ] が表示されます。
[LoanSaleProcessor] ビジネス サービスを選択します。
[ルーティング テーブル] の [操作] メニューで、[processLoanApp
] 操作を選択します。これは、融資申し込みの要求融資額が 2500000 より大きい場合に、LoanSaleProcessor ビジネス サービスで実行時に呼び出される操作です。
これで、LoanSaleProcessor
ビジネス サービスへの融資申し込みのルーティング ケースが定義されました。
要求融資額が 25000000 を超える融資申し込みが検出されると、Web サービス コールアウト (WS-Callout) によってその顧客の信用格付けが取得されます。取得された信用格付け情報が融資申し込みに追加され、その融資申し込みが第二の住宅金融会社のビジネス サービスに転送されて処理されます。次の節 (手順 5 : LoanGateway2 プロキシ サービスのルーティング テーブル要求アクションのコンフィグレーション) では、対象サービスに適したメッセージの WS-Callout および変換を行うようにプロキシ サービスをコンフィグレーションする方法を説明します。
手順 5 : LoanGateway2 プロキシ サービスのルーティング テーブル要求アクションのコンフィグレーション
ルーティング テーブル要求アクションをコンフィグレーションするには、次の手順を実行します。
WS-Callout の入力パラメータのコンフィグレーション
WS-Callout により融資申し込みが CreditRatingService
ビジネス サービスに送信され、申し込み者の信用格付けが返されます。WS-Callout アクションをコンフィグレーションする前に、次の手順に従って WS-Callout アクションの入力パラメータを割り当てる必要があります。
[ルーティング テーブル] の [要求アクション] セクションで [アクションの追加] をクリックし、[割り当てる] を選択します。
[割り当てる] アクションが [ルーティング テーブル] の [要求アクション] パイプラインに追加されます。
[<式>
] リンクを選択します。[XQuery 式の編集] ページが表示されます。
デフォルトである [テキスト] をそのまま使用し、[式の編集] テキスト ボックスに以下の式を入力します。
$body/exam:processLoanApp/loanRequest
[検証] をクリックして XQuery を検証し、[送信]をクリックします。[ステージ コンフィグレーションの編集] ページのルーティング テーブルに戻ります。<式>
は、WS-Callout サービスに送信するメッセージ コンテンツを返す式に置き換えられています。
[変数] テキスト ボックスに inputparam
と入力します。
この手順で、XQuery 式 ($body/exam:processLoanApp/loanRequest) で返される値を inputparam
変数に割り当てる作業は完了です。
WS-Callout アクションの追加
この節では、融資申し込みを CreditRatingService
ビジネス サービスに送信し、申し込み者の信用格付けを取得する WS-Callout アクションをコンフィグレーションする方法を説明します。
[ルーティング テーブル] の [要求アクション] セクションで をクリックし、
[アクションの追加|Web サービス コールアウト] を選択します。
[Web サービス コールアウト] アクションが [ルーティング テーブル] の [要求アクション] パイプラインに追加されます。
[Web サービス コールアウト] の [サービス] リンクをクリックします。[サービス ブラウザ] が表示されます。
[サービス ブラウザ] で [CreditRatingService
] を選択します。
[操作] メニューから [processLoanApp
] を選択します。Web サービス コールアウトの要求パラメータおよび応答パラメータをコンフィグレーションできるフィールドが表示されます。
[Web サービス コールアウト] の [要求パラメータ] セクションで、loanRequest パラメータを inputparam
(前の節で定義したメッセージ コンテキスト変数) に設定します。
[Web サービス コールアウト] の [応答パラメータ] セクションで、return パラメータ名を creditRating
に設定します。
この手順で、WS-Callout を CreditRatingService
Web サービスにコンフィグレーションする作業は完了です。Web サービスから返された信用格付けが creditRating
コンテキスト変数に割り当てられます。
メッセージのトランスフォーメーションのコンフィグレーション
この節では、loanSaleProcessor
サービスのパブリック コントラクト (インタフェース要件) を満たすようにメッセージのトランスフォーメーションをコンフィグレーションします。ここで説明する内容は次のとおりです。
メッセージのネームスペースを対象サービスで使用するネームスペースの名前に変更するように、プロキシ サービスをコンフィグレーションする。それには、XPath 式を使用します。このコンフィグレーションの詳細については、「ネームスペースを変更するには」を参照してください。
メッセージに新しい要素を挿入するように、プロキシ サービスをコンフィグレーションする。それには、コンフィグレーションに要素のアクションを追加する必要があります。このコンフィグレーションの詳細については、「メッセージに新しい要素を挿入するには」を参照してください。
ネームスペースを変更するには
[Web サービス コールアウト] アイコン を左クリックし、
[アクションの追加|名前変更する] を選択します。
[名前変更する] アクションのコンフィグレーション フィールドが [要求アクション] ペインに追加されます。
[名前変更する] という文の [<XPath>] を選択します。式エディタが表示されます。
[式の編集] テキスト ボックスに以下の XPath 式を入力します。
.//java:*
この式では、プレフィックス java
が付いたすべてのネームスペースが識別されます。
[送信] をクリックします。[ステージ コンフィグレーションの編集] ページに戻ります。
[変数] テキスト ボックスに body
と入力します。
body
コンテキスト変数にメッセージ本文が保持されます。以上の手順を完了すると、body
コンテキスト変数でプレフィックスが java
であるすべてのネームスペースを検出する XPath 式の作成は完了です。次の手順では、XPath 式で検出されたネームスペースを置換するネームスペースを指定します。
[ネームスペース] ラジオ ボタンを選択して、メッセージ内で置換するネームスペースの完全修飾名を入力します。新しいネームスペースは java:large.client
です。
注意 : この例では、置換前のネームスペースは java:normal.client
です。
メッセージに新しい要素を挿入するには
[名前変更する] アイコン を左クリックし、
[アクションの追加|挿入する] を選択します。
[挿入する] アクションのコンフィグレーション フィールドが [要求アクション] ペインに追加されます。
[挿入する] アクションの [<式>
] を選択します。[XQuery 式の編集] ページが表示されます。このページで新しいネームスペースを追加します。
[ネームスペース定義] パレットで、[ユーザのネームスペース] 領域に移動します。[ユーザのネームスペース] の [+] をクリックします。[新しいネームスペース宣言] ダイアログが表示されます。
[Prefix] フィールドに lg
と入力します。
[Namespace] テキスト フィールドに java:large.client
と入力します。
[XQuery 式の編集] ページに戻り、新しいネームスペースが [ネームスペース定義] パレットの [ユーザのネームスペース] 領域に表示されます。
テキスト ボックスに次の式を入力して、新しい要素の作成方法を指定します。
<lg:CreditRating>{$creditRating}</lg:CreditRating>
メッセージに追加する要素を java:large.client
ネームスペースに関連付ける必要があるため、要素のネームスペースに lg を指定する。
{}
は、{}
内のコンテンツが XML ではないため、解釈する必要があることを XQuery エンジンに通知する。
実行時に、信用格付けサービス (「WS-Callout アクションの追加」で WS-Callout アクションをコンフィグレーションしたサービス) により $creditRating
変数に信用格付けの値が割り当てられます。
[検証] をクリックしてから、[送信] をクリックします。
注意 : 送信する前に、式を検証することをお勧めします。
[挿入する] 式のコンフィグレーション フィールドで、ドロップダウン リストから [の後ろに] を選択します。
[<XPath>] リンクを選択します。[XPath 式の編集] ページが表示されます。
[メッセージ コンテキスト変数] リストから [body
] を選択します。
要素リストを展開し、[Notes
] 要素を [式の編集] テキスト ボックスにドラッグ アンド ドロップします。
注意 : ドラッグ アンド ドロップ機能を使用できるのは Internet Explorer (IE) ブラウザのみです。IE 以外のブラウザを使用する場合、[メッセージ コンテキスト変数] パレットで [Notes] ノードをクリックすると、式が [XPath] テキスト ボックスに表示されます。[Notes] ノードをドラッグ アンド ドロップするのではなく、[XPath] テキスト ボックスから式をコピーして [式の編集] テキスト ボックスに貼り付けます。
次の XPath 式がテキスト ボックスに書き込まれます。
./exam:processLoanApp/loanRequest/java:Notes
この文のネームスペース java
を lg
に変更します。
./exam:processLoanApp/loanRequest/lg:Notes
[検証] をクリックしてから [送信] をクリックして、[ステージ コンフィグレーションの編集] ページに戻ります。
[変数] テキスト フィールド (式の最初のフィールド) に body
と入力します。これは、実行時に新しい <CreditRating>
要素を挿入するコンテキスト変数です。
これで、発信メッセージのコンフィグレーションは完了です。信用格付け要素をメッセージに追加し、ネームスペースを変更して、メッセージが対象サービスのパブリック コントラクト (インタフェース) に準拠するようにしました。
次の手順では、LoanGateway2
プロキシ サービスの応答アクションをコンフィグレーションする方法を説明します。
手順 6 : LoanGateway2 プロキシ サービスのルーティング テーブル応答アクションのコンフィグレーション
この手順では、プロキシ サービスからクライアントに返されるメッセージがクライアントのパブリック コントラクト (WSDL) に準拠するようにルーティング テーブルの応答アクションをコンフィグレーションする方法を説明します。ここで説明する内容は次のとおりです。
CreditRating 要素を応答メッセージから削除するように、プロキシ サービスをコンフィグレーションする。このコンフィグレーションの詳細については、「要素を削除するには」を参照してください。
ネームスペースを元のメッセージのネームスペース (java:normal.client
) に戻すように、プロキシ サービスをコンフィグレーションする。このコンフィグレーションの詳細については、「名前変更アクションを追加するには」を参照してください。
要素を削除するには
前の手順で作成およびコンフィグレーションしたルーティング テーブルの [ステージ コンフィグレーションの編集] ページが AquaLogic Service Bus Console で開いていることを確認します。
[ルーティング テーブル] の [応答アクション] セクションで、[アクションの追加|削除する] をクリックします。
[削除する] アクションのコンフィグレーション フィールドが、[ルーティング テーブル] の [応答アクション] に追加されます。
[変数の <XPath>] オプションを選択し、[<XPath>] をクリックします。[XPath 式の編集] ページが表示されます。
./exam:processLoanAppResponse/return/lg:CreditRating
processLoanAppResponse
は、呼び出された WSDL 操作に文字列 Response
を追加したものを表し、return
は WSDL パート名を表します。
[検証] をクリックしてから、[送信] をクリックします。[ステージ コンフィグレーションの編集] ページに戻ります。
[削除する] アクションの [変数] テキスト フィールドに body
と入力します。
[削除する] アクションのコンフィグレーションは次のようになります。
変数 body
の ./exam:processLoanAppResponse/return/lg:CreditRating
以上の手順で、メッセージを応答パイプラインで処理するときに応答メッセージから信用格付け要素を削除するように指定する作業を完了しました。
名前変更アクションを追加するには
この節では、ネームスペースをクライアントで使用するネームスペースの名前 (java:normal.client
) に変更する方法を説明します (loanSaleProcessor
ビジネス サービスへの要求メッセージで、ネームスペースを対象サービスで使用するネームスペースに変更しました。「ネームスペースを変更するには」を参照してください)。
[削除する] アイコン を左クリックし、
[アクションの追加|名前変更する] をクリックします。
[名前変更する] アクションのコンフィグレーション フィールドが [応答アクション] ペインに追加されます。
[名前変更する] という文の [<XPath>] を選択します。式エディタが表示されます。
[式の編集] テキスト ボックスに以下の XPath 式を入力します。
.//lg:*
この XPath 式では、プレフィックス lg:
が付いたすべてのネームスペースが検出されます。
[送信] をクリックします。[ステージ コンフィグレーションの編集] ページに戻ります。
[名前変更する] アクションの [変数] テキスト フィールドに body
と入力します。
[ネームスペース] オプションを選択し、ネームスペースのテキスト フィールドに java:normal.client
と入力します。
以上の手順で、応答メッセージでプレフィックス lg:
が付いたすべてのネームスペースを java:normal.client
に変更するように指定する作業を完了しました。
LoanGateway2 プロキシ サービスのルーティング テーブルのコンフィグレーションの最後の手順では、デフォルト ルーティング ケース (else 条件) をケース式に追加します。
手順 7 : ルーティングのデフォルト ケースの追加
この手順では、LoanGateway2 プロキシ サービスのルーティング テーブルにデフォルト ルーティング ケースをコンフィグレーションする方法を説明します。実行時に、ルーティング テーブルに設定された条件が 1 つも満たされない場合、このデフォルト ケースに従ってメッセージがルーティングされます。
ルーティング テーブルの [ケース] アイコン を左クリックし、
[デフォルト ケースの挿入] を選択します。
デフォルト ケースが [ステージ コンフィグレーションの編集] ページのルーティング テーブルの下に追加されます。
[<サービス>] を選択して [サービス ブラウザ] を表示します。
[NormalLoan
] ビジネス サービスを選択します。
デフォルト ケースのコンフィグレーション フィールドで、[processLoanApp
] 操作を選択します。
[保存] をクリックしてルート ノードのコンフィグレーションを保存し、LoanGateway2
プロキシ サービスの [メッセージ フローの編集] ページに戻ります。
[プロキシ サービスの概要] ページに戻るまで、各コンフィグレーション ページで [保存] をクリックします。
Change Center で [アクティブ化] をクリックし、セッションのコンフィグレーション情報を保存します。
手順 8 : 融資申し込みのルーティング コンフィグレーションのテスト
AquaLogic Service Bus でクライアントと対象ビジネス サービスを使用するためのコンフィグレーションが完了したので、コンフィグレーションをテストできます。このシナリオのプロキシ サービスのルーティング動作は、融資申し込みメッセージの融資額の値に基づいています。融資額を変更すると、ルーティング動作は次のように変わります。
値が 25000000 以下の場合、メッセージは NormalLoan
ビジネス サービスにルーティングされる。
値が 25000000 より大きい場合、メッセージは LoanSaleProcessor
ビジネス サービス (大口融資処理サービス) にルーティングされる。
この節では、これらの 2 つのケースのプロキシ サービスをテストする方法を説明します。テストの実行後にコマンド ウィンドウに返されるメッセージに、テストの成功または失敗と、要求を処理したビジネス サービスが示されます。
この節のテスト シナリオは以下のとおりです。
LoanSaleProcessor (大口融資処理サービス) ビジネス サービスをテストするには
setEnv.cmd
を実行して環境を設定する作業が済んでいない場合は、ここで実行します。
BEA_HOME
\weblogic90\samples\servicebus\examples\src\
このディレクトリで、コマンドラインから次のコマンドを実行します。
setEnv.cmd
注意 : UNIX システムでコンフィグレーションをテストする場合は、コマンドライン プロンプトで setEnv.sh
スクリプトを実行します。
BEA_HOME
\weblogic90\samples\servicebus\examples\src\examples\webservices\jws_basic\normal
AquaLogic Service Bus のルーティング動作を変更するには、build.xml
ファイルで、実行対象を編集する必要があります。
build.xml
ファイルの最後までスクロールして次の文字列を探します。
<arg line="http://$...
<arg line="http://${wls.hostname}:${wls.port}/loan/gateway2 steve 555 25000001 20 5.1 notes" />
これで、プロキシ サービスの URI が、チュートリアルのドメインで動作中のデプロイされた Web サービス (gateway2
) の URI に変更され、融資額の値に 25000001
が指定されます (テスト用の入力パラメータの詳細については、表 4-5 を参照してください)。
ビジネス サービスをまだデプロイしていない場合は、デプロイします。
コマンド ウィンドウで、次のディレクトリに移動します。
BEA_HOME
\weblogic90\samples\servicebus\examples\src\examples\webservices\jws_basic\normal
このビルドをテストするには、コマンドラインで次のように入力します。
ant
run
これで、プロキシ サービスのルーティング ロジックがテストされます。Web サービスからのメッセージがコマンド ラインに出力されます。
[java] Loan Application Response: CREDIT RATING: AA: LOAN PURCHASED BY THE <i><b>LARGE</b></i> LOANS SERVICE
[java] Rate: 5.1
BUILD SUCCESSFUL
この応答メッセージは、要求融資額が 25000001 (25000000 より多い) であるため、「大口融資サービス」で要求が処理されたということを示します。
NormalLoan ビジネス サービスをテストするには
BEA_HOME
\weblogic90\samples\servicebus\examples\src\examples\webservices\jws_basic\normal
このケースでは、NormalLoan
ビジネス サービスをテストするために、build.xml
ファイルに融資額の値 25000000
を入力し (表 4-5 を参照)、変更を保存します。
ビジネス サービスをまだデプロイしていない場合は、デプロイします。
コマンド ウィンドウで、次のディレクトリに移動します。
BEA_HOME
\weblogic90\samples\servicebus\examples\src\examples\webservices\jws_basic\normal
プロキシ サービスのルーティング ロジックをテストするため、コマンドラインで次のように入力します。
ant run
Web サービスからの応答メッセージがコマンド ラインに出力されます。
[java] Loan Application Response: APPROVED BY THE <i><b>NORMAL</b></i> LOAN APPLICATION PROCESSING SERVICE
[java] Rate: 5.1
BUILD SUCCESSFUL
この応答メッセージは、要求融資額が 25000000 であるため、「標準融資申し込み処理サービス」で要求が処理されたということを示します。
ベスト プラクティス
このチュートリアルでは、トランスフォーメーションをコンフィグレーションし、ルート ノードのネームスペースを変更します。代わりに、パイプライン ペアの要求パイプラインに同一のロジックをコンフィグレーションすることも可能です。
トランスフォーメーションおよびネームスペース変更に必要な作業は、どちらの方法を選択しても同じです。
このチュートリアル シナリオの場合、既存のルート ノードの要求アクションおよび応答アクションにアクションを追加する方が、独立したパイプライン ペアを作成し、ステージを追加して、そのステージにトランスフォーメーション アクションを追加するよりも簡単です。
実装の選択が重要になるシナリオもあります。
ルート ノードから 5 種類のサービスにメッセージをルーティングし、各サービスで必要とするトランスフォーメーションが同一である場合がその例です。このシナリオでは、1 つのトランスフォーメーションを要求パイプラインに追加する方が、各ルート ノードの各ルーティング コンフィグレーション用に同一のトランスフォーメーションを 5 セット用意するよりも適切です。実行コストは同じでも、保守、コンフィグレーション、わかりやすさの点で後者の実装の方が高コストであり、作業負担が大きくなります。