この章の内容は次のとおりです。
Oracle SOA Suiteのサービス・コンポーネントであるOracle Mediatorは、様々なメッセージ交換パターン(同期、非同期、イベントの公開またはサブスクリプションなど)に加え、選択的なルーティング、トランスフォーメーションおよび検証の機能などの仲介機能を備えています。
メディエータは、Web Services Description Language (WSDL)ドキュメントをインタフェースとして使用してコンポジット・アプリケーション内の様々なコンポーネント間(ビジネス・プロセスやヒューマン・ワークフローなど)を仲介する軽量のフレームワークを提供します。また、様々なコンポーネントで公開される様々なインタフェース間での通信が容易になるようにデータを変換します。これらのコンポーネントは接続されて、SOAコンポジット・アプリケーションが構築されます。たとえば、メディエータでは、アプリケーションまたはサービスからテキスト・ファイルに格納されたデータを受け入れ、顧客リポジトリとして使用するデータベースの更新に適した書式に変換し、変換したデータをそのデータベースにルーティングおよび配信できます。
メディエータによって、イベントとサービス間の統合が容易になり、この統合によって、サービスの起動とイベントの組合せや調整が可能となります。メディエータ・サービス・コンポーネントを使用すると、ビジネス・イベントを処理したり、サービスの起動を受信できます。メディエータ・サービス・コンポーネントは、ルーティング・ルールの評価、変換の実行、検証を行い、別のサービスを起動したり、別のビジネス・イベントを発生させることができます。メディエータ・サービス・コンポーネントを使用すると、返されたレスポンス、コールバック、フォルトおよびタイムアウトを処理できます。
次の各項では、Oracle MediatorがOracle SOA Suiteアプリケーションに提供する主な機能について説明します。
メディエータでは、メッセージ・ペイロードまたはメッセージ・ヘッダーに基づいてルールを定義できます。メッセージ・ペイロードまたはメッセージ・ヘッダーから要素または属性を選択し、その要素または属性の値に基づいてアクションを指定できます。たとえば、メディエータで、新規顧客に関するデータが含まれているファイルをアプリケーションまたはサービスから受信したとします。顧客の住所に記載されている国に基づいて、その特定の国に関するデータが格納されているデータベースにデータをルーティングおよび配信できます。同様に、メッセージ・ヘッダーに基づいてメッセージをルーティングできます。
ヘッダーに基づいたルーティングの詳細は、「フィルタおよび割当てのためのヘッダー・アクセス方法」を参照してください。
メディエータでは、同期と非同期、両方のリクエストとレスポンスの相互作用がサポートされています。同期相互作用では、クライアントはサービスをリクエストした後、そのリクエストに対するレスポンスを待機します。非同期相互作用では、クライアントはサービスを起動しますが、そのレスポンスを待機しません。非同期相互作用に対してはタイムアウト時間を指定できます。このタイムアウト時間には、イベントの発生やプロセスの開始など、タイムアウト時間後に実行するアクションを指定できます。
メディエータでは、イベントベースの相互作用もサポートされています。イベントは、一方向(fire-and-forget)の非同期相互作用です。
同期および非同期の相互作用の詳細は、「レスポンス・メッセージの構成方法」および「のメッセージ交換パターンの理解」を参照してください。
メディエータでは、ルーティング・ルールをパラレルまたは順次のいずれかで実行するように指定できます。実行タイプは、メディエータ・エディタの「ルーティング・ルール」セクションから構成できます。
メッセージの順次およびパラレルのルーティングの詳細は、「順次実行またはパラレル実行の指定方法」を参照してください。
メディエータの再シーケンサを使用すると、再シーケンサにより、関連がありながらも順序が正しくないメッセージは、使用されている再シーケンサのタイプと定義されているルールに基づいて適切な順序に並べ替えられます。受信メッセージがランダムな順番で着信した場合、再シーケンサは、メッセージを順次または時系列の情報に基づいて並べ替え、再順序付けの構成に基づいた正しい順序でメッセージをターゲット・サービスに送信します。
メッセージの再順序付けの詳細は、「における再順序付け」を参照してください。
メディエータでは、XMLスキーマ間のデータ・トランスフォーメーションを定義できます。この機能を使用することで、異なるスキーマを使用しているアプリケーション間でのデータ交換が可能になります。たとえば、カンマ区切りのファイルをデータベースと互換性のあるXMLスキーマに変換できます。
トランスフォーメーションの詳細は、「XSLTトランスフォーメーションの作成方法」を参照してください。
SchematronまたはXSDファイルを使用して受信メッセージ・ペイロードを検証するようにメディエータを構成できます。ユーザーは各インバウンド・メッセージ・パートに対してSchematronファイルを指定でき、メディエータはこれらのパートに対してSchematronファイル検証を実行します。
検証の詳細は、「検証および優先度のプロパティの指定」、「セマンティク検証の使用方法」およびhttp://www.schematron.com/
を参照してください。
メディエータでは、ルーティング・ルールにJavaコールアウトを追加できます。Javaコールアウトを使用すると、メディエータを介してフローするメッセージの操作に外部のJavaクラスを使用できます。
Javaコールアウトの詳細は、「Javaコールアウトの使用方法」を参照してください。
イベントは、ビジネス環境でアクティビティが発生すると送信されるメッセージです。メディエータでは、ビジネス・イベントのサブスクライブと発生の両方を実行できます。目的の状況が発生したときに生成されるビジネス・イベントをサブスクライブできます。たとえば、新規顧客の作成時に生成されるイベントをサブスクライブし、次にこのイベントを使用して、確認電子メールの送信などのビジネス・プロセスを開始できます。同様に、目的の状況が発生した場合は、ビジネス・イベントを生成することができます。たとえば、新規顧客プロファイルの作成後に顧客作成済イベントを生成できます。
イベント処理の詳細は、「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。
動的ルーティングは、プロセスの制御ロジックをプロセスの実行から分離します。制御ロジックは、プロセスが経由するパスを決定します。動的ルーティング・ルールは、メディエータ・エディタを使用して作成できます。
動的ルーティングの詳細は、「動的ルーティング・ルールの作成方法」を参照してください。
メディエータでは、手動によるエラー処理とフォルト・ポリシーに基づくエラー処理の両方がサポートされています。フォルト・ポリシーは複数の条件とアクションで構成され、条件によって、特定のエラー状態の場合に実行されるアクションを指定します。
エラー処理の詳細は、「エラー処理の使用方法」を参照してください。
メディエータでは、他のターゲットにメッセージをルーティングすることなく、ソース・メッセージを最初のコール元にエコーして戻すことができます。メディエータでは、メッセージをコール元にエコーして戻す前に、トランスフォーメーション、検証、割当てまたは順序の操作を実行できます。
メディエータのエコー・サポートの詳細は、「メディエータ・サービスまたはイベントの指定方法」のサービスをエコーする手順を参照してください。
メディエータでは、複数のパートで構成されたメッセージを処理できます。リモート・プロシージャ・コール(RPC) Webサービスの中には、SOAPメッセージに複数のパートが含まれているものがあります。
複数パート・メッセージのサポートに関する詳細は、「における複数パート・メッセージの使用」を参照してください。
アプリケーション開発プロセスの現在の段階に応じて、複数の方法でメディエータを作成できます。コンポーネントを作成するには、次の項の該当する指示に従ってください。
開発サイクルの次のどの時点でも、Oracle JDeveloperでSOAコンポジット・アプリケーション内にメディエータを作成できます。
コンポジット・アプリケーションの作成時
既存のコンポジット・アプリケーションの変更時
プロジェクトの作成時
既存のプロジェクトの変更時
メディエータの作成時には、「メディエータの作成」ダイアログが表示され、メディエータの名前を決定してインタフェースのテンプレートを選択できます。
SOAアプリケーションの作成ウィザードを使用して、SOAアプリケーションおよびプロジェクトを作成し、名前を指定します。
図19-1に示すように、「SOA設定の構成」ページが表示されたら、「コンポジット・テンプレート」リストから「メディエータを使用するコンポジット」を選択します。
図19-1 「SOAプロジェクトの作成」ウィザードの「メディエータを使用するコンポジット」の選択
「終了」をクリックします。
「メディエータの作成」ダイアログが表示されます。
「メディエータのインタフェース定義の構成」の説明に従って、メディエータのインタフェースを構成します。
「ルーティング・ルールの作成」の説明に従って、メディエータのルーティング・ルールを定義します。
SOAコンポジット・エディタで、メディエータを追加するコンポジット・アプリケーションを開きます。
「コンポーネント」ウィンドウ(図19-2を参照)からエディタの「コンポーネント」セクションにメディエータをドラッグ・アンド・ドロップします。
または、エディタの「コンポーネント」セクションの空白領域を右クリックします。表示されるコンテキスト・メニューから「挿入」→「メディエータ」の順に選択します。
ヒント:
「コンポーネント」ウィンドウはSOAコンポジット・エディタの右側にあります。
「メディエータの作成」ダイアログが表示されます。
「メディエータのインタフェース定義の構成」の説明に従って、メディエータのインタフェースを構成します。
「ルーティング・ルールの作成」の説明に従って、メディエータのルーティング・ルールを定義します。
「アプリケーション」ウィンドウで右クリックしてから、「新規」を選択します。
新規ギャラリ・ウィザードが表示されます。
「SOA層」カテゴリに新規SOAプロジェクトを作成し、名前を付けます。
図19-3に示すように、「新規ギャラリ」ダイアログの「SOA設定の構成」ページで、「コンポジット・テンプレート」リストから「メディエータを使用するコンポジット」を選択します。
図19-3 表示される「メディエータを使用するコンポジット」テンプレートを使用した「SOAプロジェクトの作成」ウィザード
「終了」をクリックします。
「メディエータの作成」ダイアログが表示されます。
「メディエータのインタフェース定義の構成」の説明に従って、メディエータのインタフェースを構成します。
「アプリケーション」ウィンドウで、メディエータを追加するプロジェクトを選択します。
ナビゲータ・ペインを右クリックし、「新規」を選択します。
図19-4に示すように、「カテゴリ」で「サービス・コンポーネント」を選択し、次に「項目」リストから「メディエータ」を選択します。
「OK」をクリックします。
「メディエータの作成」ダイアログが表示されます。
「メディエータのインタフェース定義の構成」の説明に従って、メディエータのインタフェースを構成します。
「ルーティング・ルールの作成」の説明に従って、メディエータのルーティング・ルールを定義します。
Oracle JDeveloperのSOAコンポジット・アプリケーション内にメディエータ・サービス・コンポーネントを作成した後、そのメディエータ・サービス・コンポーネントはメディエータ・エディタを使用して構成できます。メディエータ・エディタを表示するには、で、メディエータ・サービス・コンポーネントをダブルクリックします。の詳細は、「SOAコンポジット・アプリケーションの開発のスタート・ガイド」を参照してください。
図19-5には、メディエータ・エディタが「アプリケーション」ウィンドウ、「構造」および「メッセージ」の各ウィンドウとともに表示されています。
注意:
メディエータのグローバリゼーションを完全にサポートするために、Unicodeデータベースのデータベース文字セットには、AL32UTF8
を使用することをお薦めします。
図19-5のビューの各セクションで、特定の設計タスクやデプロイメント・タスクを実行できます。このビューのセクションは次のとおりです。
「アプリケーション」ウィンドウ
図19-5の左上のセクションにある「アプリケーション」ウィンドウは、メディエータのmplanファイルを示しています。このファイルは、メディエータを作成したプロジェクトの「SOAコンテンツ」フォルダの下に表示されます。「アプリケーション」ウィンドウおよびコンポジット・ファイルの詳細は、表2-4を参照してください。
メディエータ・エディタ
図19-5の中央に表示されているメディエータ・エディタでは、メディエータのビジュアル・ビューが提供されます。このビューは、次のいずれかの処理を実行すると表示されます。
で、アイコンをダブルクリックした場合。
「アプリケーション」ウィンドウでメディエータの.mplan
ファイルをダブルクリックした場合。
「ソース」ビュー
「ソース」ビューに、メディエータのソース・コードが表示されます。メディエータ・エディタの下部にある「ソース」をクリックすると、ソース・コードが表示されます。「ソース」ビューのコードは即時に更新され、メディエータ内のすべての変更が反映されます。
次の例は、メディエータのソース・コードのサンプルを示しています。
<?xml version = '1.0' encoding = 'UTF-8'?> <!--Generated by Oracle SCA Modeler version 1.0 at [4/16/07 10:05 PM].--> <Mediator name="CustomerDataRouter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/sca/1.0/mediator"/>
「履歴」ウィンドウ
「履歴」ウィンドウには、リビジョン履歴や、ファイルの読取り専用バージョンと編集可能バージョンを並べた比較など、メディエータ・ファイルの履歴情報を表示できます。図19-5の「設計」ウィンドウ下部にある「履歴」をクリックすると、「履歴」ウィンドウが表示されます。図19-6に、メディエータ・ファイルの「履歴」ビューを示します。
新規のメディエータを作成するときに、メディエータ・プロジェクトの基本的な一連のデフォルト・ファイルを生成するインタフェース・テンプレートを指定できます。これらのファイルは、メディエータを設計および構成できるフレームワークを提供します。次のインタフェース・オプションを使用して、メディエータを作成できます。
インタフェース定義を使用しないメディエータ
空のメディエータを作成し、WSDLファイルは作成しません。この方法を使用すると、目的の順番でSOAコンポーネントを柔軟に作成できます。
インタフェース定義を使用せずにメディエータを作成した後、そのコンポーネントを起動するサービスまたはイベントを作成する必要があります。サービスまたは別のコンポーネントからの出力インタフェースをメディエータ入力にドラッグ・アンド・ドロップすることで、インタフェースを暗黙的に定義することもできます。
WSDLファイルで定義されているインタフェースを使用したメディエータ
これは、メディエータのインタフェース(ポート・タイプ、操作、サービス、スキーマなど)が記述されているWSDLファイルのインタフェース定義に基づきます。WSDLファイルは、既存のものを使用するか、スキーマ・ファイルから生成できます。
一方向インタフェースを使用したメディエータ
クライアントはサービスにメッセージを送信するが、サービスからのリプライは不要の一方向相互作用のインタフェースを定義します。
同期インタフェースを使用したメディエータ
同期リクエスト/レスポンス相互作用のインタフェースを作成します。同期相互作用では、クライアントはサービスにリクエストを送信し、すぐにレスポンスを受信します。クライアントはレスポンスが届くまで次へ進みません。
非同期インタフェースを使用したメディエータ
非同期リクエスト/レスポンス相互作用のインタフェースを作成します。非同期相互作用では、クライアントはサービスにリクエストを送信しますが、リプライをブロックおよび待機しません。
イベントをサブスクライブするメディエータ
目的の状況が発生したときに生成されるビジネス・イベントをサブスクライブするメディエータを作成します。ビジネス・イベントは、ビジネス環境における発生の結果として送信されるメッセージ・データで構成されています。ビジネス・イベントの詳細は、「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。
イベントをサブスクライブするには、イベント定義(EDL)ファイルでイベントを定義する必要があります。
メディエータのインタフェース定義の構成は、「メディエータの作成」ダイアログで行います。
メディエータのインタフェース定義を構成する手順は、次のとおりです。
「メディエータの作成」に記載されているいずれかの方法で、メディエータを作成します。
「メディエータの作成」ダイアログが表示されます。
「名前」フィールドに、メディエータ・サービス・コンポーネントの名前を入力します。
「テンプレート」リストで、次のいずれかを選択します。それぞれの詳細は、この項の最初の説明を参照してください。
インタフェースを後で定義
WSDLからのインタフェース定義
一方向インタフェース
同期インタフェース
非同期インタフェース
イベントのサブスクライブ
図19-7および図19-8は、インタフェース・タイプが異なる場合に「メディエータの作成」ダイアログのプロパティがどのように変わるかを示しています。
図19-8 「メディエータの作成」ダイアログの「WSDLからのインタフェース定義」テンプレートの選択
「イベントのサブスクライブ」以外のインタフェース・タイプの場合は、適切なプロパティを構成します。各タイプで表示されるプロパティの詳細は、この手順の後の表19-1を参照してください。
「イベントのサブスクライブ」を選択した場合は、次の手順を実行します。
「メディエータの作成」ダイアログで「追加」をクリックします。
「イベント・チューザ」ダイアログが表示されます。
「イベント定義」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ブラウザ」ダイアログが表示されます。
イベント定義ファイル(.edl
)を選択し「OK」をクリックします。
「イベント」フィールドに、選択した.edl
ファイルに記述されているイベントが移入されます。.edl
ファイルの作成方法の詳細は、「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。
図19-10に示すように、「イベント」フィールドで1つ以上のイベントを選択し、「OK」をクリックします。
イベントと一貫性がある配信のレベルを選択します。
唯一: イベント配信にはグローバル(JTA)トランザクションが使用されます。イベント・コールが失敗した場合、トランザクションはロールバックされ、コールは構成可能な回数だけ再試行されます。
保証付き: 配信を保証するためにローカル・トランザクションが使用されます。失敗時の再試行はありません。
即時: イベントはコール元と同じスレッドおよび同じトランザクション上で配信されます。
「パブリッシャとして実行」フィールドで、イベント・パブリッシャのセキュリティ下でイベント・サブスクリプションを実行するかどうかを選択します。
デフォルトでは、イベント・サブスクリプションはイベント・パブリッシャのセキュリティ下で実行します。
イベントをフィルタリングするには、選択したイベントの「フィルタ」列をダブルクリックするか、またはイベントを選択して「フィルタ」アイコン(最初のアイコン)をクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドでXPath式を入力し、「OK」をクリックします。
図19-11に、「式ビルダー」ダイアログのサンプルを示します。
「メディエータの作成」ダイアログの「フィルタ」列に、作成した式が表示されます。
「OK」をクリックします。
「メディエータの作成」ダイアログで「OK」をクリックします。
インタフェースなしのメディエータを作成するように選択した場合は、「メディエータのインタフェースの定義方法」の説明に従って、後でインタフェースを作成する必要があります。
次の表に、インタフェースを定義するために構成可能なプロパティをリストして説明します。選択したインタフェース・タイプによって使用可能なプロパティは異なるため、リストされているすべてのプロパティがすべてのインタフェース・タイプに適用されるわけではありません。
表19-1 メディエータのインタフェースのプロパティ
プロパティ | 説明 |
---|---|
SOAPバインディングを持つコンポジット・サービスの作成 |
このオプションを選択すると、インタフェースが生成されたときに自動的にメディエータに接続されるSOAPバインディングを使用した公開されたサービスが作成されます。 |
WSDL URL |
WSDLファイルからインタフェースを作成する場合に、使用するWSDLファイルの場所を入力します。次のいずれかを行います:
これらのオプションに関する詳細は、「WSDLファイルの生成」を参照してください。 |
ポート・タイプ |
リストからポート・タイプ名を選択します。使用可能なポート・タイプは、「WSDL URL」フィールドに指定したWSDLファイルから解析されます。 |
コールバック・ポート・タイプ |
非同期通信のレスポンス・メッセージが送信されるポート・タイプ名を選択します。使用可能なポート・タイプは、「WSDL URL」フィールドに指定したWSDLファイルから解析されます。 |
入力 |
入力メッセージ用のスキーマ要素を入力します。フィールドの右側にある「検索」をクリックして、要素を選択します。デフォルトでは、入力メッセージ用にsingleStringスキーマ要素が選択されています。 サンプル・スキーマについては、この表の下のスキーマをご覧ください。 |
出力 |
出力メッセージ用のスキーマ要素を入力します。フィールドの右側にある「検索」をクリックして、要素を選択します。デフォルトでは、入力メッセージ用に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>
メディエータ・ファイルは「アプリケーション」ウィンドウで指定されたアプリケーションおよびプロジェクトの下に生成され、新しいメディエータは設計ビューのメディエータ・エディタに表示されます。インタフェース定義を使用したメディエータを作成し、WSDLファイルが存在しなかった場合は、新しいWSDLファイルがメディエータと同じ名前で一緒に生成されます。指定したWSDLファイルがプロジェクト・ファイルと異なるディレクトリに格納されている場合は、ファイルおよび関連するスキーマ・ファイルがメディエータ・プロジェクトにコピーされます。
このメディエータはWSDLファイル、ポート・タイプまたは操作に関連付けられていません。「メディエータのインタフェースの定義」の説明に従って、これらを個別に定義する必要があります。図19-12は、インタフェース定義を使用せずに作成したメディエータがメディエータ・エディタ内でどのように表示されるかを示しています。
このメディエータの外観およびソース・コードは、WSDLファイルの名前、およびWSDLファイルで定義されているポート・タイプおよび操作によって異なります。図19-13は、WSDLファイルから作成されたメディエータのサンプルを示しています。
図19-14は、一方向インタフェースを使用して作成したメディエータがメディエータ・エディタ内でどのように表示されるかを示しています。「execute」操作の左側にある矢印は、一方向操作を表しています。
インタフェース定義を使用せずにメディエータを作成した後、イベントのサブスクライブまたはサービスの定義によって、インタフェースを定義する必要があります。サービスの定義は、次の2つの方法で行えます。
SOAコンポジット・エディタのワイヤを通じてメディエータをサービスに接続します。
メディエータ・エディタの「サービスの定義」オプションまたは「イベント・サブスクリプションの追加」オプションを使用します。
次の手順は、既存のメディエータのインタフェースを定義するために、イベントをサブスクライブして定義する方法、コンポジット内にワイヤを作成するサービスを定義して定義する方法、メディエータ・エディタを使用してサービスを定義して定義する方法を示しています。
イベントをサブスクライブするには、イベント定義(EDL)ファイルでイベントを定義する必要があります。
メディエータ・エディタで編集するメディエータを開きます。
「ルーティング・ルール」セクションで、「イベント・サブスクリプションの追加」をクリックします。
「サブスクライブ済イベント」ダイアログが表示されます。
「追加」をクリックします。
「イベント・チューザ」ダイアログが表示されます。
既存のEDLファイルを使用するには、「メディエータのインタフェース定義の構成」の手順5.b以降の手順に従います。
注意:
または、新しいEDLファイルを作成できます。新しいEDLファイルを作成するには、「EDLファイルの作成」をクリックします。表示される「イベント定義の作成」ダイアログにイベントの詳細を入力します。
「OK」をクリックします。
で、メディエータからサービスにワイヤをドラッグします。
ワイヤの詳細、およびサービス・コンポーネントをサービスに接続する方法については、「サービスとサービス・コンポーネントの接続方法」を参照してください。
注意:
定義済サービス・インタフェースを使用して、メディエータを別のインタフェースに接続することもできます。ただし、メディエータをサービスに接続するには、そのメディエータとサービスのインタフェースが一致している必要があります。
ワイヤを使用してサービスを定義した場合、メディエータのサービスは、ワイヤのソースのWSDLファイルを使用して自動的に定義されます。たとえば、図19-19に示すReadFileサービスをCustomerDataRouterメディエータに接続すると、そのCustomerDataRouterメディエータでは自動的にReadFileサービスのサービス定義が継承されます。
2つのメディエータ・サービス・コンポーネントを接続したときに無限ループが発生するケースに関する必知事項は、「ワイヤの追加と削除に関する必知事項」を参照してください。
メディエータ・エディタで編集するメディエータを表示します。
「WSDL URL」フィールドの右側にある「サービスの定義」をクリックします。
図19-20に示すように、「サービスの定義」ダイアログが表示されます。
次のいずれかを行います:
既存のWSDLファイルを使用するには、「WSDL URL」フィールドの右側にある「既存のWSDLを検索します。」をクリックします。
WSDLファイルを作成するには、「WSDL URL」フィールドの右側にある「スキーマからWSDLを生成します。」をクリックします。
WSDLファイルの生成方法は、「WSDLファイルの生成」を参照してください。
「ポート・タイプ」リストから、ポートを選択します。
「コールバック・ポート・タイプ」リストから、非同期相互作用のレスポンス・メッセージのポートを選択します。
「OK」をクリックします。
メッセージに対するWSDLファイルは、XMLスキーマ定義(XSD)ファイルを使用して生成できます。メディエータを使用する場合は、次のいずれかのタイミングでWSDLファイルを生成できます。
メディエータの作成時に「メディエータの作成」ダイアログの「WSDLからのインタフェース定義」テンプレートを選択した場合は、「WSDL URL」フィールドの横にある「スキーマからWSDLを生成します。」を選択すると、「WSDLの作成」ダイアログが開きます。
インタフェース定義を使用しないメディエータで、メディエータ・エディタの「WSDL URL」フィールドの横にある「サービスの定義」をクリックした場合は、「WSDL URL」フィールドの横にある「スキーマからWSDLを生成します。」を選択すると、「WSDLの作成」ダイアログが開きます。
「WSDLの作成」ダイアログでファイル名、ディレクトリ、ネームスペースなどの標準フィールドが移入され、選択するインタフェース・タイプに応じてダイアログが変更されます。入力メッセージに対して、同一または異なるスキーマ・ファイルを指定できます。
WSDLファイルの構成方法は、WSDLファイルで定義されているインタフェースのタイプによって異なります。一方向インタフェース、同期インタフェースまたは非同期インタフェースを定義できます。
メディエータを作成する場合や、メディエータのサービスを定義する場合は、「WSDLの作成」ダイアログが表示された後に、これらの手順を実行します。
「WSDLの作成」ダイアログで、デフォルト値を受け入れるか、WSDLファイルに次の情報を入力します。
表19-2 WSDLのプロパティ
プロパティ | 説明 |
---|---|
ファイル名 |
WSDLファイルの一意の名前。 |
ディレクトリ |
WSDLファイルを格納するディレクトリ。デフォルトでは、プロジェクト・フォルダの下にあるSOA/WSDLsフォルダに格納されています。 |
ネームスペース |
WSDLファイルのネームスペース・アドレス。例: 指定するネームスペースは、WSDLファイルで |
ポート・タイプ |
使用する操作が含まれるWSDLファイルのポート・タイプの名前。 |
操作 |
実行するアクションの名前。例: |
注意:
操作名やポート・タイプで、空白や特殊文字は使用できません。アルファベットおよび数字のみがサポートされますが、最初の文字に数字は使用できません。
「インタフェース・タイプ」フィールドで、「一方向インタフェース」を選択します。
図19-21に示すように、「入力」フィールドが表示されます。
「入力」フィールドの右上の「新規メッセージ・パートを追加します。」をクリックします。
図19-22に示すように、「メッセージ・パートの追加」ダイアログが表示されます。
「パート名」フィールドに、メッセージ・パートの名前を入力します。
「URL」フィールドの右側にある「スキーマ・ファイルを参照」アイコンをクリックして、URLを参照します。
図19-23に示すように、「タイプ・チューザ」ダイアログが表示され、これにはスキーマ・ファイル(XSDファイル)のリストが含まれます。
「タイプ・エクスプローラ」ツリーを開き、検索して使用するスキーマ要素を選択します。
使用するスキーマが、作業しているプロジェクトにない場合、「スキーマ・ファイルのインポート」またはダイアログの右上隅にある「WSDLのインポート」アイコンを使用して、スキーマXSDファイルまたはWSDLファイルをプロジェクトにインポートできます。
ファイルを指定すると、Oracle JDeveloperによってファイルが解析されて定義済のスキーマ要素が決定され、選択するリストに表示されます。
XSDファイルのルート要素を選択し、「OK」をクリックします。
「メッセージ・パートの追加」ダイアログが再度表示され、「URL」と「スキーマ要素」フィールドに「タイプ・チューザ」ダイアログからのデータが移入されます。XSDの単純型を選択した場合、これらのフィールドは、「単純型」フィールドに置換されます。
「メッセージ・パートの追加」ダイアログで、「OK」をクリックします。
「WSDLの作成」ダイアログの「入力」フィールドに、入力情報が表示されます。
必要に応じて、前述の手順を繰り返して、追加のメッセージ・パートを定義します。
「OK」をクリックします。
注意:
パートナ・リンク・タイプは通常BPELで使用されるため、メディエータに「partnerlinkType拡張機能の生成」を選択する必要はありません
メディエータを作成する場合や、メディエータのサービスを定義する場合は、「WSDLの作成」ダイアログが表示された後に、これらの手順を実行します。
「WSDLの作成」ダイアログで、表19-2にリストされているプロパティの情報を入力します。
「インタフェース・タイプ」フィールドで、「同期インタフェース」を選択します。
図19-24に示すように、「入力」、「出力」および「フォルト」フィールドが表示されます。
同じ手順を繰り返して、「出力」フィールドおよび「フォルト」フィールドのメッセージ・パートを定義します。
出力はレスポンス・メッセージを表し、同期トランザクションに必要です。「フォルト」はオプションです。
「OK」をクリックします。
注意:
パートナ・リンク・タイプは通常BPELで使用されるため、メディエータに「partnerlinkType拡張機能の生成」を選択する必要はありません
メディエータを作成する場合や、メディエータのサービスを定義する場合は、「WSDLの作成」ダイアログが表示された後に、これらの手順を実行します。
「WSDLの作成」ダイアログで、表19-2にリストされているプロパティの情報を入力します。
「インタフェース・タイプ」フィールドで、「非同期インタフェース」を選択します。
図19-25に示すように、「入力」フィールドおよび「コールバック」セクションが表示されます。
同じ手順を繰り返して、「コールバック」セクションの入力メッセージ・パートを定義します。
注意:
コールバック入力はレスポンス・メッセージを表し、非同期トランザクションに必要です。
「コールバック」セクションで、レスポンス・メッセージに関する次の情報を指定します。
ポート・タイプ: 使用する操作が含まれるWSDLファイルのポート・タイプの名前。
操作: 実行するアクションの名前。例: executeResponse
。
注意:
操作名やポート・タイプで、空白や特殊文字は使用できません。アルファベットおよび数字のみがサポートされますが、最初の文字に数字は使用できません。これらのフィールドの両方が必要です。
「OK」をクリックします。
注意:
パートナ・リンク・タイプは通常BPELで使用されるため、メディエータに「partnerlinkType拡張機能の生成」を選択する必要はありません
メディエータを作成した後は、そのコンポーネントに指定されている操作またはイベント・サブスクリプションのプロパティを構成できます。メディエータ・エディタで、インバウンド・メッセージのスキーマを検証するかどうかを指定し、操作またはイベント・サブスクリプションの優先度を指定できます。
インバウンド・メッセージのスキーマを検証するには、メディエータ・エディタの「ルーティング・ルール」セクションで、操作またはイベント・サブスクリプションの「有効な構文(XSD)の検証」チェック・ボックスを選択します。メディエータ・エンジンは、関連するXMLスキーマに対してXMLインバウンド・ペイロードの構文構造を検証します。不適切な要素名や場所などの構文エラーによって、フォルトが発生し、ルーティング・ルールが処理されません。
コンポーネントの優先度を指定するには、メディエータ・エディタの「ルーティング・ルール」セクションの「優先度」フィールドで0から9の間の値を選択します。これにより、すべてのサービス・コンポーネントにおいてメッセージが取得される順序が決まります。このプロパティは、パラレルのルーティング・ルールの場合のみ有効で、順次ルーティング・ルールの場合は無効です。優先度の詳細は、「パラレルのルーティング・ルールの基本原則」を参照してください。