このトピックでは、ウィザードを使用してトラフィックからパラメータライズされたメッセージを生成する際に、[リクエスト照合] ウィザード画面を完了するための方法を説明します。このトピックの内容:
はじめに
この画面では次の設定が可能です。
- リクエスト/レスポンス ペア - メッセージ グループをレスポンダーにマッピングする方法を設定します
- リクエスト応答条件 - 仮想アセット内のどのレスポンス メッセージを送信するかを決定するために、どのパラメータ値を使用するかを設定します。
- サービス定義 - グループと応答条件の定義を含むサービス定義ファイルを指定します。
[リクエスト照合] 画面は,トラフィック ウィザードの [メッセージ グループ化の確認] 画面で [自動構成] オプションが無効になっている場合に表示されます。
Virtualize がメッセージのグループ化または応答条件を自動的に決定できない場合、[自動構成] オプションを無効にできます。
ウィザードでは、手動で構成したいメッセージ グループごとにページが表示されます。
リクエスト/レスポンス ペア
接続線をクリックしてドラッグし、エンドポイントを別のリクエストまたはレスポンスにドラッグすることで、リクエストとレスポンスのペアを再マッピングできます。たとえば、response 3 が実際には request 2 に一致している場合、次のように指定します。
接続されたメッセージは、生成されたメッセージ レスポンダーとデータ リポジトリで使用されます。切断されたメッセージは表示されないメッセージであり、無視されます。メッセージ レスポンダーやデータ リポジトリでメッセージを使用したくない場合、そのメッセージのブロックを削除するか、切断することができます。
メッセージの詳細を参照するには、そのメッセージのブロックを選択します。
リクエスト応答条件
[リクエスト応答条件] タブで、レスポンダー モードを設定し、リクエスト ボディ、URL パス、リクエスト ヘッダーに基づいてカスタム応答条件を指定できます。
初期応答条件
Virtualize は、以下のシナリオに従い、トラフィック ファイル、テンプレート ファイル、サービス定義ファイルに基づいて、初期応答条件を自動的に設定します。
- テンプレート ファイルもサービス定義ファイルも提供されていない場合、Virtualize はトラフィック ファイルに基づいてデータソース応答条件を自動的に生成します。
- サービス定義が提供されている場合、Virtualize はサービス定義ファイルに基づいて応答条件を決定します。トラフィック ファイルで応答条件が検出された場合、Virtualize は追加の応答条件を作成することがあります。
- テンプレート ファイルが提供されている場合、Virtualize はテンプレートに保存されている応答条件のみを適用します。
- サービス定義とテンプレート ファイルが提供されていて、 [制約] オプションが有効 (デフォルト) の場合、Virtualize はテ ンプレート ファイルに基づいて応答条件を決定します。
- サービス定義とテンプレートファイルが提供されていて、[制約] オプションが無効の場合、Virtualize はまずテンプレートで定義されたメッセージにテンプレート応答条件を適用します。次に、テンプレートで定義されていない残りのメッセージに対して、サービス定義に基づいて応答条件を適用します。テンプレートまたはサービス定義と一致しないメッセージのトラフィックに基づいて、応答条件が作成されます。
応答条件はどのように使用されるか
ウィザードで指定したカスタム応答条件は、生成されるレスポンダーでデータ ソース応答条件を設定するために使用されます。たとえば、次の XPath をリクエスト ボディの応答条件として [リクエスト応答条件] タブで指定するものとします。/*:Envelope/*:Body/*:confirm/text()
この XPath は、次の図で示すように、生成されたレスポンダーの [データ ソース応答条件] タブで使用されます。
自動生成されたデータ ソース列名は必要に応じて変更できます。
もうひとつ例を挙げます。以下のリクエスト URL パス応答条件を指定したものとします。
生成されたレスポンダーの [データ ソース応答条件] タブは以下のようになります。
レスポンダー モードの構成
レスポンダー モード オプションを使用すると、設定しているメッセージ グループのレスポンス タイプを設定できます。生成された各レスポンダーの [レスポンダー応答条件] タブで、個々のメッセージ グループのレスポンダー モードを変更できます。
以下のいずれかのレスポンス モードを選択します。
パラメータライズされたレスポンス | このオプションを使用すると、[リクエストの照合] 画面で データソース応答条件 を設定できます。生成されたレスポンダーは、データ リポジトリからの値でパラメータライズされます。 |
---|---|
シーケンス レスポンス | このオプションは、シーケンス レスポンス モードでレスポンダーを生成します。詳細については「シーケンス レスポンス」を参照してください。 |
シングル レスポンス | このオプションは、メッセージ グループから単一のメッセージ ペアを選択し、リテラル モードでレスポンダーを生成します。「リテラル」を参照してください。 |
初期応答条件の変更
さまざまな応答条件セクションにあるコントロールを使って、自動的に設定された 初期応答条件 を変更できます。設定を変更した場合は、[デフォルトの復元] ボタンをクリックして変更を破棄し、初期設定の自動設定に戻すことができます。データソースの応答条件を構成するには、パラメータライズされたレスポンス レスポンダー モードを有効にする必要があります(Configuring the Responder Modeを参照)。
同じ列名を複数回指定した場合 (たとえば URL パラメーターと URL パスで指定した場合)、1 つの値だけが設定されます。すなわち、前の値が上書きされます。
リクエスト ボディ応答条件
Virtualize は、操作/ ループごとに「名前」ベースの XPath を生成します。この XPath は、該当する操作のレスポンダー応答条件を設定するために使用されます。たとえば、SOAP ボディ内の要素名が "SubmitOrder" である場合、レスポンダー応答条件セクションに設定される XPath 式は次のようになります。
local-name(/*/*[local-name(.)="Body"]/*)="SubmitOrder"
なお、メッセージが XML ではない場合、 XPath とパラメーターの選択は、XML に変換されたリクエスト メッセージに適用されます。
同じ操作に属するメッセージの各グループでは、リクエスト間で異なるパラメーターを判断するために、リクエストが互いに比較されます。Virtualize のトラフィックからの自動構成は、リクエスト要素の違いを分析します。そして、この分析結果を使用して操作/グループ内で利用可能なレスポンスの XPath 式を生成します。その目的は、それぞれの異なるリクエスト要素に対してレスポンスを自動生成することです。トラフィックが SOAP エンベロープの場合、メッセージが同じ操作要素 (SOAP ボディの最初の要素) を共有する限り、構造の違いは許容されます。トラフィックが一般的な XML の場合、メッセージが同じルート ノードを持つ限り、構造の違いは許容されます。
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、使用する XPath と列名を指定します (複数の XPath と列名を指定できます) 。
リクエスト URL パラメーター応答条件
リクエスト URL パラメーターの場合、メッセージ グループに属する呼び出し中の URL パラメーターに差異がある場合 (パラメーター数の違い、パラメーター名の違い、パラメーター値の違いなど)、Virtualize のトラフィックからの自動構成は、それらの差異に基づいて応答条件を自動的に構成します。
たとえば、特定のメッセージ グループのための呼び出しに以下のパラメーターがあるものとします。
countryCode=US&brandCode=HG
countryCode=Uk&brandCode=HG&channelCode=3
countryCode=US
countryCode=UK
brandCode=HG
パラメーターの差異に基づいて、このメッセージ グループ用に Virtualize は次の 3 種類のデータ ソース応答条件行を自動構成します。 countryCode, brandCode, and channelCode
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、使用するパラメーターと列名を指定します (複数のパラメーターと列名を指定できます)。
リクエスト URL パス応答条件
URL パスの場合、グループに属する呼び出し中の URL パスに差異がある場合、Virtualize のトラフィックからの自動構成は、それらの差異に基づいて応答条件を自動的に構成します。
たとえば、特定のメッセージ グループのための呼び出しに以下のパスがあるものとします。
/customer/123/account/1920384
/customer/203/account/4922434
/customer/302/account/7349463
セグメント 1 と 3 (0 を起点とするインデックスを使用) の差異に基づいて、このメッセージ グループ用に Virtualize は次の 2 種類のデータソース応答条件行を追加します。すなわち、パス インデックス 1 のための行とパス インデックス 3 のための行です。
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、応答条件に使用するパス セグメントを指定します。パス セグメントは、1 つ以上のデータ ソース列に一致でき、さまざまなデータ ソース列を使ってパラメータライズできます。表示されるダイアログで、使用するパスセグメントを指定し (関連するパス セグメントをクリックするか、パス インデックスを入力できます)、データ ソース列の名前を指定します。
リクエスト ヘッダー応答条件
リクエスト ヘッダー応答条件は、Virtualize のトラフィックからの自動構成中に追加されません。ヘッダーの値に基づいて一致させたい場合、抽出して一致させたいリクエスト値のヘッダーを指定し、それぞれデータ ソース列にマッピングします。抽出された値は、マッピングされたデータ ソース列の値と一致します。
サービス定義ファイルの指定
このトラフィックの WSDL またはスキーマを指定したい場合、[WSDL/スキーマ] タブで入力します。WSDL またはスキーマを指定することには次のメリットがあります。
- 生成されたフォーム入力モデルは指定した WSDL/ スキーマに基づくので、フォーム入力を編集したり保守したりするときに豊富なタイプを利用できます。
- サービスの進化や環境条件の変化とユーザーのアセットとを同期しておくために、変更アドバイザーを利用できます (変更アドバイザーについては「変更管理」で説明) 。
生成されたフォーム入力とそのデータ パラメータライズが元のメッセージに一致しない場合、これは「元のメッセージが WSDL/スキーマに完全に一致していないこと」、あるいは「元のメッセージとのマッピングに失敗したこと」を表します。フォーム入力モデルが必ずトラフィック メッセージに完全に一致するよう、WSDL/スキーマを省略してください。
WSDL またはスキーマを指定せず、メッセージが choice または extension タイプを使用する場合は、「 choice/extension タイプのサポート」を参照してください。