要求フローのビルド

getQuote 操作の要求フローをビルドします。 すなわち、メディエーション・プリミティブを作成し、そのプロパティーを設定して、フローをワイヤリングします。

ソースとターゲットの操作を接続すると、接続されたソース操作ごとに要求フローと応答フローが作成されます。 ソース操作を選択し、要求フローを表示します。 フローは、左から右に表されます。 左側に入力ノードが表示されます。 これは、要求メッセージがフローに入る場所です。 右側には、ターゲット操作ごとに 1 つ存在するコールアウト・ノードが 2 つあります。 ノード間にメディエーション・プリミティブを追加してフローをワイヤリングします。 完成した要求フローを下に示します。
StockQuote_MediationFlow コンポーネントの要求フローのスクリーン・ショット

以下のステップに従って、要求フローをビルドします。

  1. 上部の「操作接続」セクションで、ソース・インターフェースの getQuote 操作を選択します。ターゲット操作ごとに入力およびコールアウトがある要求フローが表示されます。 ここで、メディエーション・プリミティブを追加して、要求フローをワイヤリングすることができます。
  2. 中央のセクションで「要求」タブをクリックします。パレットから「メッセージ・ロガー」プリミティブ メッセージ・ロガー を選択して、 要求フロー・キャンバスにドロップし、プリミティブの名前を Log に変更します。
    MessageLogger プリミティブのスクリーン・ショット
  3. パレットから「データベース・ルックアップ」プリミティブを選択し データベース・ルックアップ、 それを要求フロー・キャンバスにドロップして、Lookup という名前を付けます。
  4. パレットから「メッセージ・フィルター」プリミティブを 選択し メッセージ・フィルター、 それを要求フロー・キャンバスにドロップして、Filter という名前を付けます。
  5. パレットから「XSL 変換」プリミティブを選択し XSL 変換、それを要求フロー・キャンバスにドロップして、TransformToDelayed という名前を付けます。
  6. パレットから他の「XSL 変換」プリミティブを選択し XSL 変換、それを要求フロー・キャンバスにドロップして、TransformToRealtime という名前を付けます。
  7. 「Filter」プリミティブを右クリックして、 「出力ターミナルの追加」を選択します。「ターミナル名」フィールドに realtime と入力して「OK」をクリックします。
    出力ターミナルの追加 (Add Output Terminal)
    ステップ 12 で、XPath 式を作成してこのターミナルと関連付けます。
  8. 要求フロー・キャンバスでプリミティブをワイヤリングします。
    • Request - getQuote : StockQuoteService の出力ターミナルから Log の入力ターミナルへ
    • Log の出力ターミナルから Lookup の入力ターミナルへ
    • Lookup の出力ターミナルから Filter の入力ターミナルへ
    • Filter のデフォルト・ターミナルから TransformToDelayed の入力ターミナルへ
    • Filter のリアルタイム・ターミナル (ステップ 7 で作成) から TransformToRealtime の入力ターミナルへ
    • TransformToDelayed の出力ターミナルから Invoke - getQuote : DelayedServicePortTypePartner の入力ターミナルへ
    • TransformToRealtime の出力ターミナルから Invoke - getQuote : RealtimeServicePortTypePartner の入力ターミナルへ
  9. ここで、 前に作成したビジネス・オブジェクトを入力ノード Request - getQuote : StockQuoteService の相関コンテキストに追加します。 これにより、プロパティー subscriptionLevel がメッセージ・フローに維持されます。 「Request - getQuote : StockQuoteService」をクリックして、 「プロパティー」ビューの「詳細」タブに切り替えます。 「相関コンテキスト」フィールドで、 「参照」をクリックします。 一致するデータ型の下で「SubscriptionInformation」を選択してダブルクリックします。 ここで、「{http://Resources}SubscriptionInformation」が「相関コンテキスト」に表示されます。
    入力ノードに追加された相関コンテキスト
  10. 要求フロー・キャンバスで「Log」をクリックして、 「プロパティー」ビューでプリミティブのプロパティーを参照します。プロパティーを表示するには、「詳細」タブをクリックします。 デフォルト・データベースを使用して、メッセージをログに記録します。 次のプロパティーを入力します。
    プロパティー
    データ・ソース名 jdbc/mediation/messageLog
    ルート (Root) /
    トランザクション・モード Same

    「メッセージ・ロガー」の「詳細」
  11. 要求フロー・キャンバスで「Lookup」をクリックして、 「詳細」タブで次のプロパティー値を入力します。
    プロパティー
    データ・ソース名 jdbc/sample/CustomerDatabase
    テーブル名 CUSTOMERTABLE
    キー列名 CUSTOMERID
    キー・パス 「カスタム XPath」。 XPath 式エディターで /body/getQuote/request/customerID を選択します。 「OK」をクリックします。

    XPath Expression Builder を使用した KeyPath の定義
    「データ・エレメント」テーブルで、「追加」をクリックし、 以下の値を入力します。
    値列名 SUBSCRIPTIONLEVEL
    エレメント・タイプ String
    メッセージ・エレメント /context/correlation/subscriptionLevel
    「入力の検証」のチェックを解除したままにします。
    「データベース・ルックアップ」の「詳細」
  12. 要求フロー・キャンバスで「Filter」をクリックして、 「詳細」タブで次のプロパティー値を入力します。
    プロパティー
    分配モード First
    「フィルター」テーブルで「追加」をクリックし、次の値を入力します。
    パターン (Pattern) /context/correlation/subscriptionLevel[self::node()="premium"]
    ターミナル名 (Terminal name) realtime

    「メッセージ・フィルター」の「詳細」
  13. XSL 変換プリミティブ TransformToDelayed のプロパティーを設定します。
    1. 要求フロー・キャンバスで「TransformToDelayed」プリミティブを選択します。「プロパティー」ビューの「詳細」タブに切り替えます。
    2. 「マッピング・ファイル」フィールドの横の「新規」ボタンをクリックします。「メッセージ・タイプの指定」ウィザードが開きます。 このウィザードには、マップされる入出力メッセージのタイプが表示されます。 「終了」をクリックします。このアクションにより、マッピング・エディターが起動されます。
    3. マッピング・エディターの「ソース」セクションで、 「tns:body」>「getQuote」>「要求」を展開します。「ターゲット」セクションで、「tns:body」を展開します。 「ソース」で「シンボル [0..1] (symbol [0..1])」をクリックし、次に「ターゲット」で「シンボル (symbol)」をクリックします。 右クリックで「マッピングの作成 (Create Mapping)」を選択します。
      マッピング・エディター
    4. 変更内容を保管し、マッピング・エディターを閉じます。
    5. 「プロパティー」ビューの「詳細」タブで、「XSL の再生成」をクリックして、このマッピング・ファイルに関連付けられた XSL を更新します。
      TransformToDelayed の「詳細」
  14. 同様に、XSL 変換プリミティブ TransformToRealtime のプロパティーを設定します。
    1. 要求フロー・キャンバスで「TransformToRealtime」プリミティブを選択します。「プロパティー」ビューの「詳細」タブに切り替えます。
    2. 「マッピング・ファイル」フィールドの横の「新規」ボタンをクリックします。「メッセージ・タイプの指定」ウィザードが開きます。 「終了」をクリックします。このアクションにより、マッピング・エディターが起動されます。
    3. マッピング・エディターの「ソース」セクションで、 「tns:body」>「getQuote」>「要求」を展開します。「ターゲット」セクションで、「tns:body」を展開します。 「ソース」で「シンボル [0..1] (symbol [0..1])」をクリックし、次に「ターゲット」で「シンボル (symbol)」をクリックします。 右クリックで「マッピングの作成 (Create Mapping)」を選択します。
      TransformToRealtime の詳細
    4. 変更内容を保管し、マッピング・エディターを閉じます。
    5. 「プロパティー」ビューの「詳細」タブで、「XSL の再生成」をクリックして、このマッピング・ファイルに関連付けられた XSL を更新します。
      TransformToRealtime の「詳細」
  15. 要求フローを保管します。
    完了した要求フロー

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