ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1(11.1.1)
B56238-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

18 Oracle Mediatorの開始

この章では、Oracle Mediator(メディエータ)の概要を示し、Oracle Mediatorサービス・コンポーネントの作成方法についても説明します。

項目は次のとおりです。

18.1 Oracle Mediatorの概要

Oracle Mediatorは、軽量なフレームワークを提供し、コンポジット・アプリケーション内の様々なコンポーネントを仲介します。 また、様々なコンポーネントで公開される様々なインタフェース間での通信が容易になるようにデータを変換します。これらのコンポーネントは接続されて、SOAコンポジット・アプリケーションが構築されます。たとえば、メディエータでは、アプリケーションまたはサービスからテキスト・ファイルに格納されたデータを受け入れ、顧客リポジトリとして使用するデータベースの更新に適した書式に変換し、変換したデータをそのデータベースにルーティングおよび配信できます。

Oracle Mediatorによって、イベントとサービス間の統合が容易になり、この統合によって、サービスの起動とイベントの組合せや調整が可能となります。メディエータ・コンポーネントを使用すると、ビジネス・イベントを処理したり、サービスの起動を受信することができます。 また、ルーティング・ルールの評価、トランスフォーメーションの実行、検証を行い、別のサービスを起動したり、別のビジネス・イベントを発生させることができます。メディエータ・コンポーネントを使用すると、返されたレスポンス、コールバック、フォルトおよびタイムアウトを処理できます。

この項では、Oracle Mediator機能の概要を説明します。

18.2 メディエータ・エディタ環境の概要

Oracle JDeveloperのSOAコンポジット・アプリケーション内にメディエータ・コンポーネントを作成した後、そのメディエータ・コンポーネントはメディエータ・エディタを使用して構成できます。 メディエータ・エディタを表示するには、SOAコンポジット・エディタで、メディエータ・コンポーネントをダブルクリックします。 SOAコンポジット・エディタの詳細は、第4章「SOAコンポジット・エディタの機能の概要」を参照してください。

図18-1には、メディエータ・エディタが「アプリケーション・ナビゲータ」、「構造」ウィンドウおよび「メッセージ」の各ウィンドウとともに表示されています。

図18-1 メディエータ・エディタ・ウィンドウ

図18-1の説明は次にあります。
「図18-1 メディエータ・エディタ・ウィンドウ」の説明

図18-1のビューの各セクションによって、特定の設計やデプロイメント・タスクを実行できます。次のリストではこれらのセクションや機能について説明します。

18.3 メディエータの作成

次のいずれかの方法を使用して、Oracle JDeveloperのSOAコンポジット・アプリケーション内にメディエータを作成できます。

それぞれの方法で「メディエータの作成」ダイアログを開き、ダイアログでメディエータ名を指定して、テンプレートを選択します。テンプレートにより、メディエータの設計を開始できる基本的な一連のデフォルト・ファイルが提供されます。

18.3.1 インタフェース定義を使用しないメディエータの作成

空のメディエータは、インタフェース定義を使用せずに作成できます。これによって、目的の順番でSOAコンポーネントを柔軟に作成できます。 たとえば、最初にメディエータを作成し、次にそのメディエータを起動するサービスまたはイベントを作成できます。

18.3.1.1 インタフェース定義を使用しないメディエータの作成方法

「メディエータの作成」ダイアログの「インタフェースを後で定義」テンプレートを使用すると、インタフェース定義を使用しないメディエータを作成できます。

インタフェース定義を使用せずにメディエータを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「SOA」リストから、「メディエータ」コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。

    「メディエータの作成」ダイアログが表示されます。

  2. 「名前」フィールドに、メディエータ・コンポーネントの名前を入力します。

  3. 図18-7に示すように、「テンプレート」リストで、「インタフェースを後で定義」を選択し、「OK」をクリックします。

    図18-7 「メディエータの作成」ダイアログの「インタフェースを後で定義」テンプレートの選択

    図18-7の説明は次にあります。
    「図18-7 「メディエータの作成」ダイアログの「インタフェースを後で定義」テンプレートの選択」の説明

18.3.1.2 インタフェース定義を使用しないメディエータのインタフェースの定義方法

イベントのサブスクライブまたはサービスの定義によって、インタフェース定義を使用しないメディエータのインタフェースを定義できます。

イベントをサブスクライブする方法

.edlファイルに定義されたイベントを選択してイベントをサブスクライブできます。

  1. SOAコンポジット・エディタ内のメディエータをダブルクリックします。

    メディエータ・エディタが表示されます。

  2. 「ルーティング・ルール」セクションで、「イベント・サブスクリプションの追加」をクリックします。

    「サブスクライブ済イベント」ダイアログが表示されます。

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

    「イベント・チューザ」ダイアログが表示されます。

  4. 「イベント定義」フィールドの右側にある「検索」をクリックし、.edlファイルを選択します。

    「イベント」フィールドに、.edlファイルに定義されているイベントが移入されます。

  5. 1つ以上のイベントを選択し、「OK」をクリックします。

  6. 「一貫性」リストで、イベントに対する配信一貫性のレベルを選択します。

  7. 「ロールとして実行」フィールドに、デフォルトのセキュリティ・ロールとして$publisherが表示されます。 この値をそのまま使用することも、このフィールドを空白にすることもできます。

  8. 「フィルタ」フィールドをダブルクリックして、イベントをフィルタリングする式を指定します。

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

    イベントの「一貫性」「ロールとして実行」および「フィルタ」の各フィールドに関する詳細は、第18.3.6項「イベント・サブスクリプション用のメディエータ・コンポーネントの作成」を参照してください。

サービスの定義方法

インタフェース定義を使用しないメディエータのサービスは、次の2つの方法で定義できます。

  • SOAコンポジット・エディタのワイヤを通じてメディエータをサービスに接続する方法

  • メディエータ・エディタの「サービスの定義」オプションを使用する方法

ワイヤを通じてメディエータのサービスを定義する方法は、次のとおりです。

  • SOAコンポジット・エディタで、メディエータからサービスにワイヤをドラッグします。

    ワイヤの詳細、およびサービス・コンポーネントをサービスに接続する方法については、第4.2.9項「サービスとサービス・コンポーネントの接続方法」を参照してください。


    注意:

    定義済インタフェースおよび定義済参照があるメディエータは、ワイヤを通じてサービスに接続することもできます。 ただし、メディエータをサービスに接続するには、そのメディエータのインタフェースとサービスが一致している必要があります。

    ワイヤ・ソースからWSDLファイルを使用することで、メディエータのサービスは自動的に定義されます。 たとえば、図18-8に示すReadFileサービスをCustomerDataRouterメディエータに接続すると、そのCustomerDataRouterメディエータでは自動的にReadFileサービスのサービス定義が継承されます。

    図18-8 メディエータからサービスへの接続

    図18-8の説明は次にあります。
    「図18-8 メディエータからサービスへの接続」の説明

    メディエータをダブルクリックすると、図18-9に示すメディエータ・エディタが表示されます。

    図18-9 メディエータ・エディタ

    図18-9の説明は次にあります。
    「図18-9 メディエータ・エディタ」の説明

メディエータ・エディタでメディエータのサービスを定義する方法は、次のとおりです。

  1. SOAコンポジット・エディタ内のメディエータをダブルクリックします。

    メディエータ・エディタが表示されます。

  2. WSDLファイルの右側にある「追加」をクリックします。

    図18-10に示すように、「サービスの定義」ダイアログが表示されます。

    図18-10 「サービスの定義」ダイアログ

    図18-10の説明は次にあります。
    「図18-10 「サービスの定義」ダイアログ」の説明

  3. 「既存のWSDLを検索します。」をクリックして既存のWSDLファイルを使用するか、「スキーマからWSDLを生成します。」をクリックして新規のWSDLファイルを作成します。

    WSDLファイルの生成方法は、第18.4項「WSDLファイルの生成」を参照してください。

  4. 「ポート・タイプ」リストから、ポートを選択します。

  5. 「コールバック・ポート・タイプ」リストで、非同期相互作用のレスポンス・メッセージのポートを選択します。

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

18.3.2 WSDLファイルに基づいたメディエータの作成

既存のWSDLファイルに基づいてメディエータを作成できます。WSDLファイルは、スキーマや操作などのメディエータのインタフェースについて説明します。

18.3.2.1 WSDLファイルに基づいたメディエータの作成方法

「メディエータの作成」ダイアログの「WSDLからのインタフェース定義」テンプレートを使用すると、WSDLファイルに基づいてメディエータを作成できます。

WSDLファイル・インタフェースに基づいてメディエータを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「SOA」リストから、「メディエータ」コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。

    「メディエータの作成」ダイアログが表示されます。

  2. 「名前」フィールドに、メディエータ・コンポーネントの名前を入力します。

  3. 図18-11に示すように、「テンプレート」リストから、「WSDLからのインタフェース定義」を選択します。

    図18-11 「メディエータの作成」ダイアログの「WSDLからのインタフェース定義」テンプレートの選択

    図18-11の説明は次にあります。
    「図18-11 「メディエータの作成」ダイアログの「WSDLからのインタフェース定義」テンプレートの選択」の説明

  4. メディエータに自動的に接続されるSOAPバインディングを使用した公開済サービスを作成しない場合は、「SOAPバインディングを持つコンポジット・サービスの作成」オプションの選択を解除します。

  5. 「WSDLファイル」フィールドに、WSDLファイルの名前を入力します。

    既存のWSDLファイルを使用するか、新規のWSDLファイルを作成できます。 既存のWSDLファイルの検索をクリックして既存のWSDLファイルを使用するか、「スキーマからWSDLを生成します。」をクリックして新規のWSDLファイルを作成します。

    これらのオプションに関する詳細は、第18.4項「WSDLファイルの生成」を参照してください。

  6. 「ポート・タイプ」リストから、ポートを選択します。 「WSDLファイル」フィールドに指定したWSDLファイルが解析され、ポート・タイプのリストが表示されます。

  7. 「コールバック・ポート・タイプ」リストで、コールバック・ポートを選択します。コールバック・ポートは、非同期通信によるレスポンス・メッセージの送信先です。

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

18.3.3 一方向インタフェース定義を使用したメディエータの作成

メディエータでは、一方向相互作用をサポートしています。一方向相互作用では、クライアントがサービスにメッセージを送信しますが、サービスはリプライする必要がありません。

18.3.3.1 一方向インタフェース定義を使用したメディエータの作成方法

「メディエータの作成」ダイアログの「一方向インタフェース」テンプレートを使用することで、一方向相互作用のメディエータを作成できます。

一方向インタフェース定義を使用してメディエータを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「SOA」リストから、「メディエータ」コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。

    「メディエータの作成」ダイアログが表示されます。

  2. 「名前」フィールドに、メディエータ・コンポーネントの名前を入力します。

  3. 図18-12に示すように、「テンプレート」リストから、「一方向インタフェース」を選択します。

    図18-12 「メディエータの作成」ダイアログの「一方向インタフェース」テンプレートの選択

    図18-12の説明は次にあります。
    「図18-12 「メディエータの作成」ダイアログの「一方向インタフェース」テンプレートの選択」の説明

  4. メディエータ・コンポーネントに自動的に接続されるSOAPバインディングを使用した公開済サービスを作成しない場合は、「SOAPバインディングを持つコンポジット・サービスの作成」オプションの選択を解除します。

  5. 「入力」フィールドの右側にある「検索」をクリックして、入力メッセージのスキーマ要素を選択します。デフォルトでは、入力メッセージ用にsingleStringスキーマ要素が選択されています。


    注意:

    メディエータで処理する入力文書の形式は、XSDスキーマを使用して指定できます。 たとえば、次のスキーマを使用できます。
    <xsd:schema attributeFormDefault="qualified"
                elementFormDefault="qualified"
                targetNamespace="http://samples.otn.com/helloworld"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns="http://samples.otn.com/helloworld">
             <include namespace="http://samples.otn.com/helloworld"
     schemaLocation="helloworld.xsd" />
             <xsd:element name="name1" type="xsd:string" />
             <xsd:element name="result1" type="xsd:string"/>
    </xsd:schema>
    

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

18.3.3.2 一方向インタフェース定義を使用したメディエータ・コンポーネント作成時の処理内容

入力メッセージ用のポート・タイプが定義された一方向相互作用のメディエータが作成されます。 図18-13は、一方向インタフェースで作成したメディエータがメディエータ・エディタ内でどのように見えるかを示しています。 図18-15の実行操作の左側にある矢印は、一方向操作を表しています。

図18-13 メディエータ・エディタ内の一方向インタフェース・メディエータ

図18-13の説明は次にあります。
「図18-13 メディエータ・エディタ内の一方向インタフェース・メディエータ」の説明

18.3.4 同期インタフェース定義を使用したメディエータの作成

メディエータは、同期リクエスト/レスポンス相互作用をサポートしています。同期相互作用では、クライアントはサービスにリクエストを送信し、すぐにレスポンスを受信します。 クライアントはレスポンスが届くまで次へ進みません。

18.3.4.1 同期インタフェース定義を使用したメディエータの作成方法

「メディエータの作成」ダイアログの「同期インタフェース」テンプレートを使用することで、同期相互作用のメディエータを作成できます。

同期インタフェース定義を使用してメディエータを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「SOA」リストから、「メディエータ」コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。

    「メディエータの作成」ダイアログが表示されます。

  2. 「名前」フィールドに、メディエータの名前を入力します。

  3. 図18-14に示すように、「テンプレート」リストから、「同期インタフェース」を選択します。

    図18-14 「メディエータの作成」ダイアログの「同期インタフェース」テンプレートの選択

    図18-14の説明は次にあります。
    「図18-14 「メディエータの作成」ダイアログの「同期インタフェース」テンプレートの選択」の説明

  4. メディエータに自動的に接続されるSOAPバインディングを使用した公開済サービスを作成しない場合は、「SOAPバインディングを持つコンポジット・サービスの作成」オプションの選択を解除します。

  5. 「入力」フィールドの右側にある「検索」をクリックして、入力メッセージのスキーマ要素を選択します。デフォルトでは、入力メッセージ用にsingleStringスキーマ要素が選択されています。

  6. 「出力」フィールドの右側にある「検索」をクリックして、出力メッセージのスキーマ要素を選択します。 デフォルトでは、出力メッセージ用にsingleStringスキーマ要素が選択されています。

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

18.3.4.2 同期インタフェース定義を使用したメディエータ・コンポーネント作成時の処理内容

リクエスト・メッセージ用のポート・タイプが定義されたメディエータが作成されます。同期相互作用ではレスポンスがリクエストと同じポートに送信されるため、ポートは1つのみ定義されます。 図18-15は、同期インタフェースを使用して作成したメディエータがメディエータ・エディタ内でどのように見えるかを示しています。 図18-15の実行操作の左側にある複数の矢印は、同期操作を表しています。

図18-15 メディエータ・エディタ内の同期メディエータ・コンポーネント

図18-15の説明は次にあります。
「図18-15 メディエータ・エディタ内の同期メディエータ・コンポーネント」の説明

18.3.5 非同期インタフェース定義を使用したメディエータの作成

メディエータは、非同期リクエスト/レスポンス相互作用をサポートしています。非同期相互作用では、クライアントはサービスにリクエストを送信しますが、リプライをブロックおよび待機しません。

18.3.5.1 非同期インタフェース定義を使用したメディエータの作成方法

「メディエータの作成」ダイアログの「非同期インタフェース」テンプレートを使用することで、非同期相互作用のメディエータを作成できます。

非同期インタフェース定義を使用してメディエータを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「SOA」リストから、「メディエータ」コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。

    「メディエータの作成」ダイアログが表示されます。

  2. 「名前」フィールドに、メディエータの名前を入力します。

  3. 図18-16に示すように、「テンプレート」リストから、「非同期インタフェース」を選択します。

    図18-16 「メディエータの作成」ダイアログの「非同期インタフェース」テンプレートの選択

    図18-16の説明は次にあります。
    「図18-16 「メディエータの作成」ダイアログの「非同期インタフェース」テンプレートの選択」の説明

  4. メディエータ・コンポーネントに自動的に接続されるSOAPバインディングを使用した公開済サービスを作成しない場合は、「SOAPバインディングを持つコンポジット・サービスの作成」オプションの選択を解除します。

  5. 「入力」フィールドの右側にある「検索」をクリックして、入力メッセージのスキーマ要素を選択します。デフォルトでは、入力メッセージ用にsingleStringスキーマ要素が選択されています。

  6. 「出力」フィールドの右側にある「検索」をクリックして、出力メッセージのスキーマ要素を選択します。デフォルトでは、出力メッセージ用にsingleStringスキーマ要素が選択されています。

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

18.3.5.2 非同期インタフェース定義を使用したメディエータ・コンポーネント作成時の処理内容

リクエスト・メッセージとレスポンス・メッセージ用のポート・タイプが定義された、非同期相互作用のメディエータが作成されます。 図18-17は、非同期インタフェースを使用して作成されたメディエータが、メディエータ・エディタ内でどのように見えるかを示しています。 「ポート・タイプ」フィールドには、リクエスト・メッセージが送信されるポートが表示されます。「コールバック・ポート・タイプ」には、レスポンスが送信されるポートが表示されます。 図18-17の実行操作の左側にある複数の矢印は、非同期操作を表しています。

図18-17 メディエータ・エディタ内の非同期メディエータ

図18-17の説明は次にあります。
「図18-17 メディエータ・エディタ内の非同期メディエータ」の説明

18.3.6 イベント・サブスクリプション用のメディエータ・コンポーネントの作成

目的の状況が発生したときに発生するビジネス・イベントをサブスクライブするメディエータを作成できます。ビジネス・イベントは、ビジネス環境における発生の結果として送信されるメッセージ・データで構成されています。 ビジネス・イベントの詳細は、第44章「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。

18.3.6.1 イベント・サブスクリプション用のメディエータの作成方法

「メディエータの作成」ダイアログの「イベントのサブスクライブ」テンプレートを使用して、イベントをサブスクライブするためのメディエータを作成できます。

イベントをサブスクライブするメディエータを作成する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「SOA」リストから、「メディエータ」をドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。

    「メディエータの作成」ダイアログが表示されます。

  2. 「名前」フィールドに、メディエータ・コンポーネントの名前を入力します。

  3. 図18-18に示すように、「テンプレート」リストから、「イベントのサブスクライブ」を選択します。

    図18-18 「メディエータの作成」ダイアログの「イベントのサブスクライブ」テンプレートの選択

    図18-18の説明は次にあります。
    「図18-18 「メディエータの作成」ダイアログの「イベントのサブスクライブ」テンプレートの選択」の説明

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

    「イベント・チューザ」ダイアログが表示されます。

  5. 「イベント定義」フィールドの右側にある「検索」をクリックします。

    「SOAリソース・ブラウザ」ダイアログが表示されます。

  6. イベント定義ファイル(.edl)を選択し「OK」をクリックします。

    「イベント」フィールドに、選択した.edlファイルに記述されているイベントが移入されます。 .edlファイルの作成方法の詳細は、第44章「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。

  7. 図18-19に示すように、「イベント」フィールドで1つ以上のイベントを選択し、「OK」をクリックします。

    図18-19 「イベント・チューザ」ダイアログ

    図18-19の説明は次にあります。
    「図18-19 「イベント・チューザ」ダイアログ」の説明

  8. イベントに対する配信一貫性のレベルを選択します。

    • 唯一: イベント配信にはグローバル(JTA)トランザクションが使用されます。 イベント・コールが失敗した場合、トランザクションはロールバックされ、コールは構成可能な回数だけ再試行されます。

    • 保証付き: 配信を保証するためにローカル・トランザクションが使用されます。失敗時の再試行はありません。

    • 即時: イベントは呼び出し側と同じスレッドおよび同じトランザクション上で配信されます。

  9. 「ロールとして実行」フィールドに、イベント・サブスクリプションを実行しているセキュリティ・ロールを入力します。デフォルトでは、イベント・サブスクリプションはイベント・パブリッシャ$publisherのセキュリティ下で実行します。 この値をそのまま使用することも、このフィールドを空白にすることもできます。

  10. イベントをフィルタリングするには、次のいずれかを実行します。

    • 選択したイベントの「フィルタ」列をダブルクリックします。

    • イベントを選択した後、「フィルタ」アイコン(最初のアイコン)をクリックします。

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

  11. 「式」フィールドでXPath式を入力し、「OK」をクリックします。

    図18-20に、「式ビルダー」ダイアログのサンプルを示します。

    図18-20 ビジネス・イベント・フィルタ

    図18-20の説明は次にあります。
    「図18-20 ビジネス・イベント・フィルタ」の説明

    「メディエータの作成」ダイアログの「フィルタ」列が、図18-21に示すように移入されます。

    図18-21 フィルタ式が指定された「メディエータの作成」ダイアログ

    図18-21の説明は次にあります。
    「図18-21 フィルタ式が指定された「メディエータの作成」ダイアログ」の説明

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

18.3.6.2 イベント・サブスクリプション用のメディエータ・コンポーネント作成時の処理内容

図18-22に示すように、メディエータが作成されます。メディエータの左側にあるアイコンは、そのメディエータがイベント・サブスクリプション用に構成されていることを示しています。

図18-22 「イベントのサブスクライブ」テンプレートを使用して作成されたメディエータ・コンポーネント

図18-22の説明は次にあります。
「図18-22 「イベントのサブスクライブ」テンプレートを使用して作成されたメディエータ・コンポーネント」の説明

メディエータをダブルクリックすると、図18-23に示すメディエータ・エディタが表示されます。

図18-23 メディエータ・エディタ内にイベント・サブスクリプションがあるメディエータ・コンポーネント

図18-23の説明は次にあります。
「図18-23 メディエータ・エディタ内にイベント・サブスクリプションがあるメディエータ・コンポーネント」の説明

18.3.7 メディエータ・ユーザー・インタフェースで使用可能な情報に関する注意事項

この項では、メディエータ・コンポーネントを作成するために知っておく必要がある概念について説明します。

18.3.7.1 メディエータ定義

Oracle SOAが提供するコンポーネントであるメディエータは、様々なメッセージ交換パターン(同期、非同期、イベントの公開またはサブスクリプションなど)に加え、選択的なルーティング、トランスフォーメーションおよび検証の機能などの仲介機能を備えています。

メディエータの作成方法の詳細は、第18.3項「メディエータの作成」を参照してください。

18.3.7.2 ルーティング・ルール

ルーティング・ルールは、必要な仲介を実行するために定義する仲介ロジックまたは実行ロジックです。 ルーティング・ルールの定義に関する詳細は、第19.2項「ルーティング・ルールの定義」を参照してください。

ルーティング・ルールを作成するには、次の内容を指定する必要があります。

  • 操作またはイベント

    メディエータ・ルーティング・ルールは、サービス操作またはイベント・サブスクリプションのいずれかでトリガーできます。 サービス操作は、同期、非同期または一方向のいずれかです。

  • Javaコールアウト

    Javaコールアウトは、メディエータの実行における様々なポイントで外部Javaロジックを実行するために使用します。

  • 静的ルーティング・ルール

    静的に定義され、起動コンテキストによって変更されることのないメディエータ・ルーティング・ルールです。 この場合のルーティングは、エコー、別のサービスへのルーティングまたはイベントの公開のいずれかです。

    静的ルーティング・ルールでは、次の内容を指定します。

    • リクエスト・ハンドラ

      受信リクエストをメディエータが処理する方法を定義します。

    • リプライ・ハンドラ

      コールしたサービスからの同期レスポンスをメディエータが処理する方法を定義します。

    • フォルト・ハンドラ

      コールしたサービスからの名前付きフォルトまたは宣言済フォルトをメディエータが処理する方法を定義します。

    • コールバック・ハンドラ

      コールしたサービスからの非同期レスポンス/コールバックをメディエータが処理する方法を定義します。

    • コールバックにおけるタイムアウト・ハンドラ

      特定の非同期リクエストに対するタイムアウト処理を実行するまでに、メディエータが、非同期レスポンス/コールバックを待機する時間を定義します。

    • イベントの公開およびサービスの起動

      イベントの公開およびサービスの起動では、ハンドラの構成に応じて、他のサービスのコールまたはイベントの公開が実行されます。

    • 順次実行およびパラレル実行

      各ルーティング・ルールの実行は、順次(同じスレッド内で実行)またはパラレル(異なるスレッド内で実行)のいずれかに構成できます。


      注意:

      同期サービス起動の場合、ルーティング・ルールは必ず順次にする必要があります。

    • フィルタ式

      特定のルーティング・ルールを実行するかどうかを定義します。 この機能はXPath標準を使用し、メディエータ・ルーティング・ルールの選択的な実行を可能にします。

    • セマンティク検証

      受信リクエストのセマンティク検証を可能にし、データが正しいかどうかも検証します。 この機能は、Schematron検証標準を使用します。

    • トランスフォーメーション

      受信データのトランスフォーメーションを可能にし、コールしたサービスまたは公開済イベントに準拠した形式へのトランスフォーメーションを実行します。 この機能は、XSLトランスフォーメーション標準に基づいています。

    • 割当て

      コールしたサービスに合わせるために、メッセージのヘッダーおよびプロパティの操作を可能にします。

  • 動的なルーティング・ルール

    Oracle Rules Dictionaryへのルーティング・ロジックの外部化を可能にするメディエータ・ルーティング・ルールです。Oracle Rules Dictionaryは、ルーティング・ルール内のルーティング・ロジックの動的変更を可能にします。 この機能は、デシジョン・サービスおよびOracle Rulesを使用して、実行時にルーティング・ロジックを取得します。


注意:

メディエータのグローバリゼーションを完全にサポートするために、Unicodeデータベースのデータベース・キャラクタ・セットには、AL32UTF8を使用することをお薦めします。

18.4 WSDLファイルの生成

次のいずれかの方法を使用して、WSDLファイルを生成できます。

それぞれの方法で、図18-24に示す「WSDLの作成」ダイアログを開きます。

図18-24 「WSDLの作成」ダイアログ

図18-24の説明は次にあります。
「図18-24 「WSDLの作成」ダイアログ」の説明

「WSDLの作成」ダイアログは「リクエスト」、「リプライ」、「フォルト」および「コールバック」の各タブで構成されており、これらのタブを使用してリクエスト、リプライ、フォルトおよびコールバックの各メッセージのスキーマ・ファイルを定義できます。リクエスト、レスポンス、フォルトおよびコールバック・メッセージに対して、同一または異なるスキーマ・ファイルを指定できます。最低でもリクエスト・メッセージのスキーマ・ファイルを指定する必要があります。 デフォルトでは、リクエスト・メッセージ用にsingleString.xsdファイルが選択されています。

メッセージに対するWSDLファイルは、XMLスキーマ定義(XSD)ファイルまたはサンプル・ファイルを使用して生成できます。

XSDファイルからWSDLを生成する手順は、次のとおりです。

  1. 「WSDLの作成」タブで「検索」をクリックして、スキーマ・ロケーションにアクセスします。

    スキーマ・ファイル(XSDファイル)のリストを含む「タイプ・チューザ」ダイアログが表示されます。

    図18-25 「タイプ・チューザ」ダイアログ

    図18-25の説明は次にあります。
    「図18-25 「タイプ・チューザ」ダイアログ」の説明

  2. 「プロジェクトのスキーマ・ファイル」ノードと「プロジェクトのWSDLファイル」ノードを開いて、使用するスキーマを検索します。

    スキーマXSDファイルまたはWSDLファイルは、それぞれ「スキーマ・ファイルのインポート」アイコンまたは「WSDLのインポート」アイコンを使用して、プロジェクトにインポートすることもできます。


    注意:

    ローカル・ファイル・システムのスキーマXSDファイルを使用する場合は、必ず、XSDファイルおよびそのファイルによってインポートされるXSDファイルすべてがOracle JDeveloperのプロジェクト・ディレクトリに存在している必要があります。

    ファイルを指定すると、Oracle Jdeveloperによってファイルが解析されて定義済のスキーマ要素が決定され、リストに選択肢として表示されます。

  3. XSDファイルのルート要素を選択し、「OK」をクリックします。

  4. 「操作名」フィールドに操作名を入力します。例: executeQuery

    Oracle JDeveloperによって、指定された操作がWSDLファイルの操作要素に変換されます。


    注意:

    操作名に空白は使用できません。

  5. 「ポート・タイプ名」フィールドに、ポート名を入力します。

  6. 「ネームスペース」フィールドに、ネームスペースを入力するか、現在の値をそのまま使用します。

    例: http://oracle.com/esb/namespaces/Mediator

    指定するネームスペースは、WSDLファイルのtnsネームスペースとして定義されます。

  7. 「リプライ」タブで情報を入力する場合は、「検索」をクリックしてスキーマにアクセスしてから、スキーマ要素を選択します。

    「リプライ」タブで同期通信におけるレスポンス・メッセージのスキーマを指定できます。

  8. 「フォルト」タブで情報を入力する場合は、「検索」をクリックしてスキーマ・ロケーションにアクセスしてからスキーマ要素を選択します。また、レスポンスを指定しないと、フォルト・メッセージ・スキーマは指定できません。

  9. 「コールバック」タブで情報を入力する場合は、「検索」をクリックしてスキーマにアクセスしてから、スキーマ要素を選択します。

    「コールバック」タブで非同期通信におけるレスポンス・メッセージのスキーマを指定できます。

  10. 「操作名」フィールドに操作名を入力します。

    例: returnQuery

  11. 「ポート・タイプ名」フィールドに、レスポンスが送信されるポート名を入力します。

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

サンプル・ファイルに基づいたWSDLファイルの生成

WSDLファイルは、カンマ区切り値(CSV)ファイル、固定長ファイル、Document Type Definition(DTD)ファイル、COBOLコピーブック・ファイルなどのネイティブ・ファイル・フォーマットのファイルから生成できます。ネイティブ・フォーマット・ビルダー・ウィザードを使用して、サンプル・ファイルに基づいたWSDLファイルを生成できます。 このネイティブ・フォーマット・ビルダー・ウィザードは、「WSDLの作成」ダイアログの「リクエスト」、「レスポンス」、「フォルト」および「コールバック」タブにある「ネイティブ・フォーマットのスキーマの定義」をクリックすると表示されます。WSDLファイルは、ウィザード完了後に生成されます。

ネイティブ・フォーマット・ビルダー・ウィザードの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。

18.5 操作またはイベント・サブスクリプションのプロパティの指定

メディエータを作成した後は、メディエータ・エディタを使用して、操作またはイベント・サブスクリプションの構文の検証(XSD)プロパティを指定できます。 このオプションを選択して、インバウンド・メッセージのスキーマを検証できます。デフォルトでは、スキーマの検証はfalseに設定されています。

18.6 メディエータ・コンポーネントの変更

メディエータの操作またはイベント・サブスクリプションは、メディエータ・エディタを使用して変更できます。

18.6.1 操作の変更

操作を追加または削除することで、メディエータのWSDLファイルを変更できます。WSDLファイルの変更後、「WSDLのリフレッシュ」ダイアログを使用して変更を同期化できます。

メディエータの操作を変更する手順は、次のとおりです。

  1. メディエータ・エディタで、「WSDLファイル」フィールドの右側にある「WSDLからの操作のリフレッシュ」アイコン(図18-26でハイライト表示)をクリックします。

    図18-26 「WSDLからの操作のリフレッシュ」アイコン

    図18-26の説明は次にあります。
    「図18-26 「WSDLからの操作のリフレッシュ」アイコン」の説明

    「WSDLのリフレッシュ」ダイアログが表示されます。WSDLファイルが変更された場合、「WSDLのリフレッシュ」ダイアログには削除または追加される操作がすべて一覧表示されます。 リフレッシュによって、WSDLファイルから削除された、メディエータの操作フィールド・リストのすべての操作が削除されます。 また、リフレッシュによって、WSDLファイルに追加された、メディエータの操作フィールド・リストのすべての新規操作が追加されます。 図18-27に、「WSDLのリフレッシュ」ダイアログを示します。

    図18-27 「WSDLのリフレッシュ」ダイアログ

    図18-27の説明は次にあります。
    「図18-27 「WSDLのリフレッシュ」ダイアログ」の説明

  2. 別のWSDLファイルを指定するには、「既存のWSDLを検索します。」をクリックして既存のWSDLファイルを使用するか、または「スキーマからWSDLを生成します。」をクリックして新規のWSDLファイルを作成します。

    「WSDLのリフレッシュ」ダイアログは、図18-28に示すように、指定のWSDLファイルで定義された操作に基づいて更新されます。

    図18-28 更新操作による「WSDLのリフレッシュ」ダイアログ

    図18-28の説明は次にあります。
    「図18-28 更新操作による「WSDLのリフレッシュ」ダイアログ」の説明

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

  4. 「ファイル」メニューから「すべて保存」を選択します。

18.6.2 イベント・サブスクリプションの変更

メディエータ・エディタの「イベント・サブスクリプションの管理」オプションを使用すると、新規イベントのサブスクライブ、既存イベント・サブスクリプションの変更およびサブスクライブ済イベントからのサブスクライブ解除などを実行できます。

メディエータのイベント・サブスクリプションを変更する手順は、次のとおりです。

  1. メディエータ・エディタで、イベント・サブスクリプションの右側にある「イベント・サブスクリプションの管理」アイコンをクリックします。

    図18-29に示すように、「サブスクライブ済イベント」ダイアログが表示されます。

    図18-29 「サブスクライブ済イベント」ダイアログ

    図18-29の説明は次にあります。
    「図18-29 「サブスクライブ済イベント」ダイアログ」の説明

  2. 次の機能のいずれも実行できます。

    • 新規イベントをサブスクライブします。

    • イベントからサブスクライブ解除します。

    • イベントのフィルタ基準を変更または指定します。

    • イベント・サブスクリプションの「一貫性」または「ロールとして実行」プロパティを変更します。

      イベントの「一貫性」「ロールとして実行」および「フィルタ」の各フィールドに関する詳細は、第18.3.6項「イベント・サブスクリプション用のメディエータ・コンポーネントの作成」を参照してください。

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

  4. 「ファイル」メニューから「すべて保存」を選択します。