Multiple Responses Generator は、階層型データ シナリオ、1 対多の非同期メッセージングなどを簡単に処理できる強力なツールです。

このセクションの内容

概要

XML の断片 (input)、XML 要素名 (elementName)、バックエンド アセット URL (backendURL) を指定すると、Multiple Responses Generator は input 内の elementName を検索し、各オカレンスを個別に backendURL に送信します。バックエンド アセットは、elementName をルート要素とするメッセージに応答するよう設定された仮想アセットであり、Multiple Responses Generator にレスポンスを返信します。Multiple Responses Generator はレスポンスを受信すると、1 つの XML に集約してレスポンスで使用できるようにします。

前提条件

  • Parasoft Virtualize

インストール

  1. Parasoft marketplace からダウンロードしたアーカイブから Multiple Responses Generator JAR ファイルを展開します。
  2. Virtualize を開いてメイン メニューの [Parasoft] > [設定] > [システム プロパティ] をクリックします。
  3. [Jar の追加...] をクリックして Multiple Responses Generator JAR ファイルを参照します。
  4. [OK] をクリックし、Virtualize を再起動します。

このセットアップ手順を実行すると、メッセージ レスポンダーに結合可能なツールのリストに Multiple Responses Generator ツールが表示されるようになります。

設定

Multiple Responses Generator には主に 2 つのグループの設定オプションがあります。必須セクションのオプションは、Multiple Responses Generator を使うのに必須のオプションであり、任意セクションのオプションは、より高度なシナリオで複雑な制御を行うためのものです。

必須設定

以下のオプションは、Multiple Responses Generator の動作に必須です。

Name of element to send to backend asset名前空間 (あれば) を含む XML 要素名です。受信 XML 内にある、ここで指定された名前と一致する要素のオカレンスは、分割されて [Backend Asset URL] で指定された仮想アセットに送信されます。さらに、リクエスト内に複数のリストがある場合、ツールはすべてのリスト要素の組み合わせを作成します。単一のリストだけを使用したい場合、他のリストを除外します。
Backend Asset Pathバックエンドの仮想アセットが待機する HTTP パスを指定します。完全な URL が指定されても、パス セグメントだけが使用されます。仮想アセットには、[Name of element to send to backend asset] 設定で指定された要素をルート要素とする XML メッセージを処理するレスポンダーがなければなりません。

任意設定

Elements excluded from splitting process名前空間 (あれば) を含む XML 要素名のカンマ区切りのリストです。デフォルトでは、Name of element to send to backend asset オプションで指定された XML に同じ名前を持つ兄弟要素 (リスト) が含まれている場合、Multiple Responses Generator は兄弟要素の繰り返しごとに別個のリクエストを作成します。
Response Type[Backend Asset URL] で指定された仮想アセットが XML を返す場合、このフィールドは空のままにします。[Backend Asset URL] で指定された仮想アセットが XML 以外のペイロードを返す場合、このフィールドに Other を入力します。
Output XML Root Tag Nameレスポンス XML 出力のルート タグ名です。デフォルトは responses です。
Output XMLOutput XML Root Tag Name の子要素の名前です。デフォルトは response です。
SOAPAction Listこのカンマ区切り リストに指定された SOAP アクションごとに、Name of element to send to backend asset で指定された要素はその SOAP アクションを使用して Backend Asset URL に送信されます。このオプションは、要素に複数のレスポンスが必要な場合に便利です。

パフォーマンス設定

Use thread poolこのオプションを有効にすると (true を設定すると)、バックエンドの仮想アセットに複数のリクエストが並行して送信されます。デフォルトは false です。
Thread pool type

バックエンドの仮想アセットに同時並行リクエストを送信するスレッドに使用するプールのタイプを指定します。選択肢は FIXED または CACHED です。

FIXED オプションを使用した場合、スレッドの最大数は [Number of threads] オプションによって制限されます。

CACHE オプションを使用した場合、リクエストを送信する必要があるが、利用可能なスレッドがすべてビジーである場合、新しいスレッドが作成されます。 

デフォルト値は CASHED です。

Number of threads特定の時点で実行可能な仮想アセットの最大同時実行リクエスト数を指定します。このオプションは、[Thread pool type] オプションに FIXED が設定されている場合に適用されます。デフォルト値は 100 です。

使用方法

Multiple Responses Generator は、Parasoft Virtualize メッセージ レスポンダーの任意の XML 出力に連結できます。これには、任意の XML ベースのレスポンダーの [受信リクエスト] > [ペイロード] や、非 XMLベースのレスポンダーの [受信リクエスト] > [XML に変換されたペイロード] が含まれます。Multiple Responses Generator の基本的な使用方法は次のとおりです。より詳細な説明は「Example Scenarios」にあります。

  1. 1 つまたはそれ以上のレスポンダーを持つフロント エンド アセットを作成します。
  2. アセットを必要とするレスポンダーごとに、XML ベースのレスポンダーの場合は [受信リクエスト] > [ペイロード]、非 XMLベースのレスポンダーの場合は [受信リクエスト] > [XML に変換されたペイロード] 出力に Multiple Responses Generator を連結します。
  3. Multiple Responses Generator で、少なくとも [Name of element to send to backend asset] と Backend Asset URL を設定します。
  4. Multiple Responses Generator が送信するメッセージを処理するバックエンド アセットを作成します。必ず Multiple Responses Generator の [Backend Asset URL] で指定した URL にバックエンド アセットをデプロイします。
  5. Multiple Responses Generator の Response XML 出力に XML Data Bank または Text Data Bank を連結し、集約されたレスポンスを取得するよう設定します。
  6. 集約されたレスポンスをレスポンス内で使用します。

サンプルシナリオ

Multiple Responses Generator によって処理できるシナリオは多数ありますが、このセクションでは、最もよく使用されるサンプルをいくつか紹介します。

要素数が動的なリストの処理

Multiple Responses Generator で処理される最も一般的なシナリオは、要素数が動的に変化するリストを含むメッセージです。例:

<root>
 <items>
  <item>
   <name>Name1</name>
    <id>1</id>
  </item>
  <item>
   <name>Name2</name>
    <id>2</id>
  </item>

このリクエストには N 個のサブリスト (N >= 1) が含まれます。次のようなレスポンスが期待されています。

<root>
 <itemResponses>
  <itemResponse>
   <balance>10</balance>
  </itemResponse>
  <itemResponse>
   <balance>20</balance>
 </itemResponse>

Usage」で説明したプロセスに従うと、上記のリクエストおよびレスポンスを持つアセットをセット アップできます。

  1. 1 つまたはそれ以上のレスポンダーを持つフロントエンド アセットを作成します。
    1. [VirtualAssets] プロジェクトを右クリックし、[新規追加] > [仮想アセット (.pva) ファイル] を選択します。 
    2. ダイアログが表示されたら [ファイル名] フィールドに Example1-Frontend と入力し、[次へ] をクリックします。 
    3. 次の画面でリストから [] を選択し、[終了] をクリックします。 
    4. 新しく作成された Example1-Frontend.pva の レスポンダー スイート を右クリックし、[新規追加] > [レスポンダー] を選択します。 
    5. ウィンドウが表示されたら、Literal Message Responder を選択して [終了] をクリックします。
  2. Multiple Responses Generator を必要とするレスポンダーごとに、XML ベースのレスポンダーの場合は [受信リクエスト] > [ペイロード]、非 XMLベースのレスポンダーの場合は [受信リクエスト] > [XML に変換されたペイロード] 出力に Multiple Responses Generator を連結します。 
    1. [Literal Message Responder] を右クリックし、[出力の追加...] をクリックします。
    2. ウィンドウが開いたら、受信リクエスト セクションで [ペイロード] を選択し、共通ツールの下の [Multiple Responses Generator] を選択します。 
    3. [終了] をクリックします。 
  3. Multiple Responses Generator で、少なくとも [Name of element to send to backend asset] と Backend Asset URL を設定します。
    1. [Name of element to send to backend asset field] に itemと入力します。
    2. [Backend Asset URL] フィールドに http://localhost:9080/Example1-Backend と入力します。
    3. [Optional] セクションで [itemResponses] を入力します。
    4. Multiple Responses Generator が送信するメッセージを処理するバックエンド アセットを作成します。必ず Multiple Responses Generator の [Backend Asset URL] で指定した URL にバックエンド アセットをデプロイします。

      サンプルを簡単にするために、バックエンドでは固定レスポンスを使用します。Marketplace からダウンロードしたアーカイブに含まれている Example1-Backend.pva では、動的レスポンスを使用しています。

  4. [VirtualAssets] プロジェクトを右クリックし、[新規追加] > [仮想アセット (.pva) ファイル] を選択します。 
  5. ダイアログが表示されたら [ファイル名] フィールドに Example1-Backend と入力し、[次へ] をクリックします。 
  6. 次の画面でリストから [] を選択し、[終了] をクリックします。 
  7. 新しく作成された Example1-Backend.pva で、[レスポンダー スイート] を右クリックし、[新規追加] > [レスポンダー]を選択します。 
  8. 次の画面で [Literal Message Responder] を選択し、[終了] をクリックします。
  9. 次の XML を入力します。

    <itemResponse>
     <balance>10</balance>
    </itemResponse>
  10. Multiple Responses Generator の Response XML 出力に XML Data Bank または Text Data Bank を連結し、集約されたレスポンスを取得するよう設定します。
    1. Example1-Frontend.pva で [MultipleResponsesGenerator] を右クリックし、[出力の追加…] を選択します。
    2. 左側で [Response XML] を選択し、右側で [XML Data Bank] を選択します。 
    3. [XPath の追加] をクリックします。
    4. [選択された XPath] 列に表示された行をクリックし、[変更] をクリックします。
    5. [XPath ] フィールドを /* に変更します。
    6. [抽出] ドロップダウン メニューから [要素全体] を選択します。  
    7. エディターの左側で [データ ソース列] を選択し、[カスタム列名] フィールドにレスポンスを入力します。 
    8. [OK] をクリックします。
  11. 集約されたレスポンスをレスポンス内で使用するには、[Literal Message Responder] をダブルクリックし、テキスト フィールドに次のように入力します。

    <root>
    	${responses}
    </root>

次の図は、このシナリオ全体を表しています。

  • No labels