ヘッダーをスキップ
Oracle SOA Suite開発者ガイド
10g(10.1.3.1.0)
B31839-01
  目次へ
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

6.10 ルーティング・ルールの指定

WSDLを指定してルーティング・サービスを定義した後は、ルーティング・サービスで処理されたメッセージ・インスタンスを次の宛先に届ける条件を判断するルールを指定できます。 ルーティング・ルールは、Oracle JDeveloper ESB Designerのプロパティ・パネルまたはOracle ESB Controlのプロパティ・シートを使用して定義できます。

少なくとも1つのターゲット操作を指定する必要があり、複数のターゲット操作を指定することもできます。 各ターゲット操作について、データ・トランスフォーメーションの適用、フィルタリングの設定、メッセージを受け入れる送信元システムの指定、非同期または同期実行の指定、および複数のターゲット操作がある場合は優先度の設定ができます。

6.10.1 ルーティング・ルールへのアクセス方法

Oracle JDeveloper ESB Designerの「ルーティング・ルール」プロパティ・パネルにアクセスするには、次のいずれかの方法を使用します。

「ルーティング・ルール」プロパティ・パネルにアクセスする方法は、次のとおりです。

  • アプリケーション・ナビゲータからアクセスする方法

    1. アプリケーション・ナビゲータで、ESBプロジェクトの下にある「リソース」フォルダを開きます。

    2. 「リソース」フォルダで、ルーティング・ルールを指定するルーティング・サービスの名前をダブルクリックします。

    3. プラス記号(+)をクリックしてルーティング・ルール情報を開きます。

  • 「設計」タブからアクセスする方法

    1. ルーティング・ルールを指定するルーティング・サービスを示すアイコンをダブルクリックします。

    2. プラス記号(+)をクリックしてルーティング・ルール情報を開きます。

図6-8は、複数のルールが指定された「ルーティング・ルール」パネルの例です。

図6-8 「ルーティング・ルール」パネル

図6-8の説明は次にあります。
「図6-8 「ルーティング・ルール」パネル」の説明

6.10.2 ターゲット操作の指定方法

ターゲット操作は、ルーティング・サービスを使用する上で指定する必要がある唯一のルーティング・ルールです。 このルーティング・ルールは、メッセージを送信する必要がある次のサービス(ターゲット・サービスと呼ばれます)と、そのメッセージがターゲット・サービスに届いたときにメッセージに対して実行する操作をルーティング・サービスに指示します。

各ルーティング・サービスには、ターゲット・サービスとターゲット操作の複数の組合せを指定できます。

また、リクエスト/リプライ・メッセージ・フローでは、リプライ・メッセージを別のターゲットに転送したり、メッセージ・フォルトが発生した場合のターゲット・サービスを指定できます。 ターゲット操作を指定できる構成は、次のとおりです。

  • 1方向構成に対するターゲット操作の指定

  • ソース・サービスにレスポンスを戻すターゲット操作の指定

  • ソース・サービス以外にレスポンスを転送するターゲット操作の指定

  • フォルト・メッセージに対するターゲット操作の指定

ルーティング・ルールにターゲット操作を指定する手順は、次のとおりです。

  1. 「ルーティング・ルール」情報パネルを開きます(開いていない場合)。

  2. 緑の大きいプラス(+)ボタンをクリックします。

    「ターゲット・サービス操作の参照」ダイアログが表示されます。

  3. 「ターゲット・サービス操作の参照」ダイアログで、次の手順を実行します。

    1. 目的のターゲット・サービスに移動し、そのサービスを開きます。

    2. ターゲット・サービス操作を選択します。

    3. 「OK」をクリックします。

      「ルーティング・ルール」タブが更新され、新しく追加されたターゲット・サービスおよび操作が反映されます。値はtarget_service.target_operationのように表示されます。

  4. 別のターゲット・サービスとターゲット操作の組合せを追加する場合は、手順2と3を繰り返します。 必要な場合は、同一のターゲット・サービスと別の操作の組合せを指定できます。


注意:

ターゲット・サービスとターゲット・サービス操作を変更するには、「ターゲット・サービス操作を参照します。」アイコンをクリックします。

6.10.3 メッセージを受け入れる送信元ESBシステムの指定方法

ルーティング・サービスがメッセージを受け入れる送信元ESBシステムを指定できます。

サービスがメッセージを受け入れる送信元システムを指定する手順は、次のとおりです。

  1. ルーティング・ルール情報を開いていない場合は、第6.10.1項「ルーティング・ルールへのアクセス方法」の説明に従ってルーティング・ルール情報を開きます。

  2. 次のオプションから1つを選択します。

    • 任意のシステム

      このオプションは、ルーティング・サービスが作成されたシステムを含め、あらゆるESBシステムから送信されたメッセージを受け入れるように指定する場合に選択します。

    • ローカル・システム

      このオプションは、ルーティング・サービスが作成されたシステムと同じESBシステムから送信されたメッセージのみを受け入れるように指定する場合に選択します。

    • 他のシステム

      このオプションは、ルーティング・サービスが作成されたシステム以外のESBシステムから送信されたメッセージのみを受け入れるように指定する場合に選択します。

6.10.4 同期または非同期実行の指定方法

同期実行では、非同期実行とは異なり、リクエストに対して即時にレスポンスが提供されます。 非同期実行は、サービスでのリクエストの処理に時間を要する可能性がある環境に便利です。 また、非同期サービスは、同期サービスより信頼性の高い耐障害性に優れた拡張性のあるアーキテクチャを提供します。

同期または非同期実行を指定する手順は、次のとおりです。

  1. ルーティング・ルール情報を開いていない場合は、第6.10.1項「ルーティング・ルールへのアクセス方法」の説明に従ってルーティング・ルール情報を開きます。

  2. プラス(+)ボタンをクリックしてルーティング・ルール情報を開きます。

    プロパティ・シートの右側に「実行」オプションが表示されます。

  3. 適切なボタンを使用して実行方法(同期または非同期)を指定します。

6.10.5 ルーティング・ルール優先度の指定方法

ルーティング・サービスに定義されている複数のルーティング・ルールの優先度を選択できます。ルールを昇順に配置することで最優先ルールが1番上に表示されます。

ルーティング・ルールの優先度を指定する手順は、次のとおりです。

  1. ルーティング・ルール情報を開いていない場合は、第6.10.1項「ルーティング・ルールへのアクセス方法」の説明に従ってルーティング・ルール情報を開きます。

  2. プラス(+)ボタンをクリックしてルーティング・ルール情報を選択し、開きます。

  3. 「ルーティング・ルール」パネルの右上部にある上または下向きの三角形をクリックし、選択したルールを正しい優先順位に移動します。 プロパティ・シートの図については、図6-8を参照してください。

6.10.6 データ構造トランスフォーメーション用XSLファイルの作成方法

ルーティング・ルールでは、XSLデータ・マッパー・ツールを使用して、データをXMLスキーマ間で変換するためのXSLファイルを指定できます。 このツールを使用することで、異なるスキーマを使用するアプリケーション間でのデータ交換が可能になります。 たとえば、供給元発注の受信スキーマを請求の送信スキーマにマップできます。

XSLファイルを定義した後は、そのファイルを複数のルーティング・ルール仕様で再利用できます。

データ構造トランスフォーメーション用XSLファイルを作成する手順は、次のとおりです。

  1. ルーティング・ルール情報を開いていない場合は、第6.10.1項「ルーティング・ルールへのアクセス方法」の説明に従ってルーティング・ルール情報を開きます。

  2. 「トランスフォーメーションの指定」アイコンをクリックします。 このアイコンは、図6-8に示すように、「ルーティング・ルール」パネルの中央のフィールドの右側にあります。

    図6-9に示すように、「リクエスト・トランスフォーメーション・マップ」ダイアログが表示されます。

    図6-9 「リクエスト・トランスフォーメーション・マップ」ダイアログ

    図6-9の説明は次にあります。
    「図6-9 「リクエスト・トランスフォーメーション・マップ」ダイアログ」の説明

  3. 次のオプションから1つを選択します。

    • 「新規マッパー・ファイルの作成」を選択し、ファイル名を入力(またはデフォルト値をそのまま使用)します。

    • 「既存のマッパー・ファイルの使用」を選択し、懐中電灯アイコンをクリックして既存のマッパー・ファイルを参照します。

  4. 「OK」をクリックします。

    「新規マッパー・ファイルの作成」を選択した場合は、データ・トランスフォーメーション・マッパー・ツールが開き、ソース・スキーマ要素をターゲット・スキーマ要素に関連付けることができます。

  5. ツールの一方の側にあるコンポーネントを選択し、もう一方の側の関連付けるコンポーネントにドラッグできます。 最初の選択とドラッグで、「自動マップ・プリファレンス」ダイアログが表示されるため、マッピングのプリファレンスを設定できます。 図6-10は、「自動マップ・プリファレンス」ダイアログの例です。

    図6-10 「自動マップ・プリファレンス」ダイアログ

    図6-10の説明は次にあります。
    「図6-10 「自動マップ・プリファレンス」ダイアログ」の説明

  6. 「ファイル」「保存」の順に選択して、更新内容を保存します。

図6-11は、データ・マッパー・ツールの「設計」タブでのデータ・トランスフォーメーション・マッピングの例です。 マッピングのソース・コードは、「ソース」タブで表示できます。

図6-11 データ・マッピングのサンプル

図6-11の説明は次にあります。
「図6-11 データ・マッピングのサンプル」の説明

Oracle Enterprise Service BusでのXSLTデータ・マッパーの使用方法については、『Oracle Enterprise Service Bus開発者ガイド』の「XSLTデータ・マッパーおよびトランスフォーメーション」を参照してください。

6.10.7 ペイロードに基づいてメッセージをフィルタリングする式の追加方法

ルーティング・ルールでは、ペイロードに基づいてメッセージをフィルタリングする式を指定できます。 たとえば、その顧客の郵便番号に基づいて、顧客記録のメッセージを異なるオフィスにルーティングできます。

フィルタ式を指定する手順は、次のとおりです。

  1. ルーティング・ルール情報を開いていない場合は、第6.10.1項「ルーティング・ルールへのアクセス方法」の説明に従ってルーティング・ルール情報を開きます。

  2. 「フィルタ式の追加」アイコン(図6-8を参照)をクリックします。

    式ビルダーが表示されます。

  3. フィルタ式を指定して「OK」をクリックします。

    「式ビルダー」ダイアログが表示されます。

フィルタ式を作成する手順は、次のとおりです。

  1. 「WSDLメッセージ」ボックスで、メッセージ定義を開き、式の基礎を形成するメッセージ要素を選択します。

    「コンテンツのプレビュー」ボックスには、選択したWSDLメッセージ要素のXPath式が表示されます。

  2. 「式に挿入」をクリックします。

    「式」ボックスに式が表示されます。

  3. 「関数」ボックスで、WSDLメッセージ・ペイロードに適用する関数を選択します。

    関数は、「関数」ボックスの下矢印をクリックすると表示されるカテゴリ別にリストされます。 たとえば、下矢印をクリックして「Logical Functions」を選択すると、リストが表示されます。 「Logical Functions」リストで関数を選択すると、その関数の説明が「説明」ボックスに表示されます。

  4. 「式に挿入」をクリックします。

    選択した関数のXPath式が「式」ボックスに挿入されます。 式を完成するために式を手動で編集する必要がある場合は、行の最後に赤い波線が表示されます。

  5. 式を完成します。

    図6-12は、完成した「式ビルダー」ウィンドウの例です。

    6-12 式ビルダー・ツールのサンプル

    図6-12の説明は次にあります。
    「図6-12 式ビルダー・ツールのサンプル」の説明

  6. 緑のチェック・マークをクリックして式を検証します。

  7. 式が無効であるか、変更を必要とする場合は、手動または式を編集するアイコンを使用して式を編集します。

  8. 「OK」をクリックします。

    式が「ルーティング・ルール」プロパティ・シートに追加されます。

フィルタ式を変更または削除するには、「フィルタ式の追加」アイコンをダブルクリックし、式ビルダーの「式」パネルで式を変更または削除します。

6.10.8 ルーティング・ルール指定時の処理内容

ルーティング・サービスを指定したルーティング・ルールで更新すると、アプリケーション・ナビゲータでは、ESBプロジェクトの下にある「リソース」フォルダ内のルーティング・サービス名(拡張子esbsvc)が更新されます。

6.10.9 実行時の処理内容

ルーティング・サービスに指定したルーティング・ルールに従って、メッセージ・インスタンスが処理されます。 ルールによって、メッセージ・インスタンスの特定のターゲットが判断されます。