この章では、Oracle Mediatorの概要を示し、Oracle Mediatorサービス・コンポーネントの作成方法についても説明します。
項目は次のとおりです。
Oracle Mediatorは、軽量なフレームワークを提供し、コンポジット・アプリケーション内の様々なコンポーネントを仲介します。また、様々なコンポーネントで公開される様々なインタフェース間での通信が容易になるようにデータを変換します。これらのコンポーネントは接続されて、SOAコンポジット・アプリケーションが構築されます。たとえば、Oracle Mediatorでは、アプリケーションまたはサービスからテキスト・ファイルに格納されたデータを受け入れ、顧客リポジトリとして使用するデータベースの更新に適した書式に変換し、変換したデータをそのデータベースにルーティングおよび配信できます。
Oracle Mediatorによって、イベントとサービス間の統合が容易になり、この統合によって、サービスの起動とイベントの組合せや調整が可能となります。Oracle Mediatorサービス・コンポーネントを使用すると、ビジネス・イベントを処理したり、サービスの起動を受信することができます。また、ルーティング・ルールの評価、トランスフォーメーションの実行、検証を行い、別のサービスを起動したり、別のビジネス・イベントを発生させることができます。Oracle Mediatorサービス・コンポーネントを使用すると、返されたレスポンス、コールバック、フォルトおよびタイムアウトを処理できます。
この項では、Oracle Mediator機能の概要を説明します。
コンテンツ・ベースおよびヘッダー・ベースのルーティング
Oracle Mediatorでは、メッセージ・ペイロードまたはメッセージ・ヘッダーに基づいたルールの設定がサポートされています。メッセージ・ペイロードまたはメッセージ・ヘッダーから要素または属性を選択し、その値に基づいてアクションを指定できます。たとえば、Oracle Mediatorで、新規顧客に関するデータが含まれているファイルをアプリケーションまたはサービスから受信したとします。顧客の住所に記載されている国に基づいて、その特定の国に関するデータが格納されているデータベースにデータをルーティングおよび配信できます。同様に、メッセージ・ヘッダーに基づいてメッセージをルーティングできます。
ヘッダー・アクセスに基づいたルーティングの詳細は、第20.2.2.11項「フィルタおよび割当てのためのヘッダー・アクセス方法」を参照してください。
同期および非同期の相互作用
Oracle Mediatorでは、同期および非同期のリクエストとレスポンスの相互作用がサポートされています。同期相互作用では、クライアントはサービスをリクエストした後、そのリクエストに対するレスポンスを待機します。非同期相互作用では、クライアントはサービスを起動しますが、そのレスポンスを待機しません。非同期相互作用に対してはタイムアウト時間を指定できます。このタイムアウト時間には、イベントの発生やプロセスの開始など、一部のアクションを実行できます。
同期および非同期の相互作用の詳細は、第20.2.2.4項「レスポンス・メッセージの処理方法」および第24章「Oracle Mediatorのメッセージ交換パターンの理解」を参照してください。
メッセージの順次およびパラレルのルーティング
ルーティング・ルール実行タイプには、パラレルまたは順次のいずれかを指定できます。実行タイプは、メディエータ・エディタの「ルーティング・ルール」セクションから構成できます。
メッセージの順次およびパラレルのルーティングの詳細は、第20.2.2.3項「順次実行またはパラレル実行の指定方法」を参照してください。
トランスフォーメーション
Oracle Mediatorでは、XMLスキーマ間のデータ・トランスフォーメーションがサポートされています。この機能を使用することで、異なるスキーマを使用しているアプリケーション間でのデータ交換が可能になります。たとえば、カンマ区切りのファイルをデータベース表の構造に変換できます。
トランスフォーメーションの詳細は、第20.2.2.8項「トランスフォメーションの作成方法」を参照してください。
検証
Oracle Mediatorでは、SchematronまたはXSDファイルを使用した受信メッセージ・ペイロードの検証がサポートされています。ユーザーは各インバウンド・メッセージ・パートに対してSchematronファイルを指定でき、Oracle Mediatorはこれらのパートに対してSchematronファイル検証を実行できます。
検証の詳細は、第20.2.2.12項「セマンティク検証の使用方法」およびhttp://www.schematron.com/
を参照してください。
Javaコールアウト
Oracle Mediatorでは、Javaコールアウトがサポートされています。Javaコールアウトを使用すると、Javaコードを正規表現と併用できます。
Javaコールアウトの詳細は、第20.2.2.13項「Javaコールアウトの使用方法」を参照してください。
イベント処理
イベントは、ビジネス環境でアクティビティが発生すると送信されるメッセージ・データです。Oracle Mediatorでは、ビジネス・イベントのサブスクライブや発生がサポートされています。目的の状況が発生したときに発生するビジネス・イベントをサブスクライブできます。たとえば、新規顧客の作成時に発生するイベントをサブスクライブし、次にこのイベントを使用して、確認電子メールの送信などのビジネス・プロセスを開始できます。同様に、目的の状況が発生した場合は、ビジネス・イベントを発生させることができます。たとえば、顧客作成プロセスの完了後に顧客作成済イベントを発生させます。
イベント処理の詳細は、第39章「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。
動的ルーティング
動的ルーティングは、プロセスが経由するパスを決定する制御ロジックをプロセスの実行から分離します。動的ルーティング・ルールは、メディエータ・エディタから作成できます。
動的ルーティングの詳細は、第20.2.3項「動的ルーティング・ルールの作成方法」を参照してください。
エラー処理
Oracle Mediatorでは、フォルト・ポリシーをベースとしたエラー処理と手動によるエラー処理の両方がサポートされています。フォルト・ポリシーは、複数の条件とアクションで構成されます。条件によって、特定のエラー状態の場合に実行されるアクションを指定します。
エラー処理の詳細は、第22章「Oracle Mediatorエラー処理の使用」を参照してください。
Oracle Mediatorエコー・サポート
Oracle Mediatorでは、トランスフォーメーション、検証、割当てまたは順序操作の実行後に、ソース・メッセージを初期のコール元にエコーして戻す機能がサポートされています。
Oracle Mediatorエコー・サポートの詳細は、第20.2.2.1項「Oracle Mediatorサービスまたはイベントの指定方法」の「サービスをエコーする手順」を参照してください。
複数パート・メッセージのサポート
Oracle Mediatorでは、複数のパートで構成されたメッセージがサポートされています。リモート・プロシージャ・コール(RPC)Webサービスの中には、SOAPメッセージに複数のパートが含まれているものがあります。
複数パート・メッセージのサポートに関する詳細は、第21章「Oracle Mediatorにおける複数パート・メッセージの使用」を参照してください。
Oracle JDeveloperのSOAコンポジット・アプリケーション内にOracle Mediatorサービス・コンポーネントを作成した後、そのOracle Mediatorサービス・コンポーネントはメディエータ・エディタを使用して構成できます。メディエータ・エディタを表示するには、SOAコンポジット・エディタで、Oracle Mediatorサービス・コンポーネントをダブルクリックします。SOAコンポジット・エディタの詳細は、第2章「Oracle SOA Suiteを使用したSOAコンポジット・アプリケーションの開発」を参照してください。
図19-1には、メディエータ・エディタが「アプリケーション・ナビゲータ」、「構造」および「メッセージ」の各ウィンドウとともに表示されています。
図19-1のビューの各セクションによって、特定の設計やデプロイメント・タスクを実行できます。次のリストではこれらのセクションや機能について説明します。
図19-1の左上にある「アプリケーション・ナビゲータ」には、Oracle Mediatorファイルが表示されます。これらは、SOAコンポジット・アプリケーションでOracle Mediatorを作成するときに、「SOAコンテンツ」フォルダ内に表示されるファイルです。
SOAコンポジット・アプリケーションは、次のOracle Mediatorファイルで構成されています。
composite.xml
: SOAコンポジット・アプリケーション全体を説明するファイルです。composite.xml
ファイルの詳細は、第2章「Oracle SOA Suiteを使用したSOAコンポジット・アプリケーションの開発」を参照してください。
.componentType
: .componentType
ファイルには、サービス・コンポーネントのサービスと参照が記述されています。
.wsdl
: Webサービス記述言語(WSDL)は、他のサービスがOracle Mediatorを呼び出す方法を指定します。WSDLファイルは、入出力メッセージとOracle Mediatorの操作を定義します。
図19-1の中央に表示されるメディエータ・エディタでは、作成したOracle Mediatorのビジュアル・ビューが提供されます。このビューは、次のいずれかの処理を実行すると表示されます。
SOAコンポジット・エディタで、Oracle Mediatorアイコンをダブルクリックした場合。
「アプリケーション・ナビゲータ」で.mplan
ファイル名をダブルクリックした場合。
「ソース」ビューでは、Oracle Mediatorのソース・コードを表示できます。図19-1のメディエータ・エディタの下部にある「ソース」をクリックすると、ソース・コードが表示されます。「ソース」ビューのコードは即時に更新され、Oracle Mediator内の変更が反映されます。
例19-1は、Oracle Mediatorソース・コードのサンプルを示しています。
「履歴」ウィンドウでは、ファイルのリビジョン履歴を表示したり、ファイルの読取り専用バージョンと編集可能バージョンを並べて表示するなどのタスクを実行できます。図19-1の「設計」ウィンドウ下部にある「履歴」をクリックすると、「履歴」ウィンドウが表示されます。図19-2に、Oracle Mediatorファイルの「履歴」ビューを示します。
図19-1の下部にある「プロパティ・インスペクタ」では、Oracle Mediatorのプロパティに関する詳細を表示できます。
図19-1の左下にある「構造」ウィンドウには、Oracle Mediatorのデータの構造的なビューが表示されます。
「ログ」ウィンドウには、検証およびコンパイルのステータスに関するメッセージが表示されます。
次のいずれかの方法を使用して、Oracle JDeveloperのSOAコンポジット・アプリケーション内にOracle Mediatorを作成できます。
「コンポーネント・パレット」(図19-3を参照)からSOAコンポジット・エディタの「コンポーネント」セクションにOracle Mediatorをドラッグ・アンド・ドロップします。
図19-3 Oracle Mediatorサービス・コンポーネントが表示された「コンポーネント・パレット」
図19-4に示すように、SOAアプリケーションの作成ウィザードのSOA設定の構成ページで「メディエータを使用するコンポジット」オプションを選択します。
図19-4 「SOAプロジェクトの作成」ダイアログのOracle Mediatorを使用するコンポジットの選択
「新規ギャラリ」ダイアログで、「カテゴリ」リストから「サービス・コンポーネント」を選択し、「項目」リストから「メディエータ」を選択します(図19-5を参照)。
図19-5 Oracle Mediatorサービス・コンポーネントが表示された「新規ギャラリ」ダイアログ
それぞれの方法で「メディエータの作成」ダイアログを開き、ダイアログでOracle Mediator名を指定して、テンプレートを選択します。テンプレートにより、Oracle Mediatorの設計を開始できる基本的な一連のデフォルト・ファイルが提供されます。
空のOracle Mediatorは、インタフェース定義を使用せずに作成できます。これによって、目的の順番でSOAコンポーネントを柔軟に作成できます。たとえば、最初にOracle Mediatorを作成し、次にそのOracle Mediatorを起動するサービスまたはイベントを作成できます。
「メディエータの作成」ダイアログの「インタフェースを後で定義」テンプレートを選択すると、インタフェース定義を使用せずにOracle Mediatorを作成できます。
インタフェース定義を使用せずにOracle Mediatorを作成する手順は、次のとおりです。
「コンポーネント・パレット」の「SOA」リストから、「メディエータ」サービス・コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。
「メディエータの作成」ダイアログが表示されます。
「名前」フィールドに、Oracle Mediatorサービス・コンポーネントの名前を入力します。
図19-6に示すように、「テンプレート」リストから「インタフェースを後で定義」を選択し、「OK」をクリックします。
イベントのサブスクライブまたはサービスの定義によって、インタフェース定義を使用しないOracle Mediatorのインタフェースを定義できます。
イベントをサブスクライブする手順は、次のとおりです。
.edl
ファイルに定義されたイベントを選択してイベントをサブスクライブできます。
SOAコンポジット・エディタで、Oracle Mediatorアイコンをダブルクリックします。
メディエータ・エディタが表示されます。
「ルーティング・ルール」セクションで、「イベント・サブスクリプションの追加」をクリックします。
「サブスクライブ済イベント」ダイアログが表示されます。
「追加」をクリックします。
「イベント・チューザ」ダイアログが表示されます。
「イベント定義」フィールドの右側にある「検索」をクリックし、.edl
ファイルを選択します。
「イベント」フィールドに、.edl
ファイルに定義されているイベントが移入されます。
1つ以上のイベントを選択し、「OK」をクリックします。
「一貫性」リストで、イベントに対する配信一貫性のレベルを選択します。
「ロールとして実行」フィールドに、デフォルトのセキュリティ・ロールとして$publisherが表示されます。この値をそのまま使用することも、このフィールドを空白にすることもできます。
「フィルタ」フィールドをダブルクリックして、イベントをフィルタリングする式を指定します。
「OK」をクリックします。
イベントの「一貫性」、「ロールとして実行」および「フィルタ」の各フィールドに関する詳細は、第19.3.6項「イベント・サブスクリプション用のOracle Mediatorの作成」を参照してください。
サービスを定義する方法は、次のとおりです。
インタフェース定義を使用しないOracle Mediatorのサービスは、次の2つの方法で定義できます。
SOAコンポジット・エディタのワイヤを通じてOracle Mediatorをサービスに接続する方法
メディエータ・エディタの「サービスの定義」オプションを使用する方法
ワイヤを通じてOracle Mediatorのサービスを定義する方法は、次のとおりです。
SOAコンポジット・エディタで、Oracle Mediatorからサービスにワイヤをドラッグします。
ワイヤの詳細、およびサービス・コンポーネントをサービスに接続する方法については、第2.5.1項「サービスとサービス・コンポーネントの接続方法」を参照してください。
注意: 定義済インタフェースおよび定義済参照があるOracle Mediatorも、ワイヤを通じてサービスに接続できます。ただし、Oracle Mediatorをサービスに接続するには、そのOracle Mediatorのインタフェースとサービスが一致している必要があります。 |
ワイヤ・ソースからWSDLファイルを使用することで、Oracle Mediatorのサービスは自動的に定義されます。たとえば、図19-7に示すReadFileサービスをCustomerDataRouter Oracle Mediatorに接続すると、そのCustomerDataRouter Oracle Mediatorでは自動的にReadFileサービスのサービス定義が継承されます。
メディエータ・エディタでOracle Mediatorのサービスを定義する方法は、次のとおりです。
SOAコンポジット・エディタで、Oracle Mediatorアイコンをダブルクリックします。
メディエータ・エディタが表示されます。
「WSDL URL」フィールドの右側にある「サービスの定義」をクリックします。
図19-8に示すように、「サービスの定義」ダイアログが表示されます。
「WSDL URL」フィールドの右側にある「既存のWSDLを検索します。」をクリックして既存のWSDLファイルを使用するか、「スキーマからWSDLを生成します。」をクリックして新規のWSDLファイルを作成します。
WSDLファイルの生成方法は、第19.4項「WSDLファイルの生成」を参照してください。
「ポート・タイプ」リストから、ポートを選択します。
「コールバック・ポート・タイプ」リストから、非同期相互作用のレスポンス・メッセージのポートを選択します。
「OK」をクリックします。
既存のWSDLファイルに基づいてOracle Mediator を作成できます。WSDLファイルは、スキーマや操作などのOracle Mediatorのインタフェースについて説明します。
「メディエータの作成」ダイアログの「WSDLからのインタフェース定義」テンプレートを使用すると、WSDLファイルに基づいてOracle Mediatorを作成できます。
WSDLファイルに基づいてOracle Mediatorを作成する手順は、次のとおりです。
「コンポーネント・パレット」の「SOA」リストから、「メディエータ」サービス・コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。
「メディエータの作成」ダイアログが表示されます。
「名前」フィールドに、Oracle Mediatorサービス・コンポーネントの名前を入力します。
図19-9に示すように、「テンプレート」リストから、「WSDLからのインタフェース定義」を選択します。
図19-9 「メディエータの作成」ダイアログの「WSDLからのインタフェース定義」テンプレートの選択
Oracle Mediatorに自動的に接続されるSOAPバインディングを使用した公開済サービスを作成しない場合は、「SOAPバインディングを持つコンポジット・サービスの作成」オプションの選択を解除します。
「WSDL URL」フィールドに、WSDLファイルの名前を入力します。
既存のWSDLファイルを使用するか、新規のWSDLファイルを作成できます。既存のWSDLファイルの検索をクリックして既存のWSDLファイルを使用するか、「スキーマからWSDLを生成します。」をクリックして新規のWSDLファイルを作成します。
これらのオプションに関する詳細は、第19.4項「WSDLファイルの生成」を参照してください。
「ポート・タイプ」リストから、ポートを選択します。「WSDL URL」フィールドに指定したWSDLファイルが解析され、ポート・タイプのリストが表示されます。
「コールバック・ポート・タイプ」リストから、コールバック・ポートを選択します。コールバック・ポートは、非同期通信によるレスポンス・メッセージの送信先です。
「OK」をクリックします。
Oracle Mediatorでは、一方向相互作用をサポートしています。一方向相互作用では、クライアントがサービスにメッセージを送信しますが、サービスはリプライする必要がありません。
「メディエータの作成」ダイアログの「一方向インタフェース」テンプレートを使用することで、一方向相互作用のOracle Mediatorを作成できます。
一方向インタフェース定義を使用してOracle Mediatorを作成する手順は、次のとおりです。
「コンポーネント・パレット」の「SOA」リストから、「メディエータ」サービス・コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。
「メディエータの作成」ダイアログが表示されます。
「名前」フィールドに、Oracle Mediatorサービス・コンポーネントの名前を入力します。
図19-10に示すように、「テンプレート」リストから、「一方向インタフェース」を選択します。
Oracle Mediatorサービス・コンポーネントに自動的に接続されるSOAPバインディングを使用した公開済サービスを作成しない場合は、「SOAPバインディングを持つコンポジット・サービスの作成」オプションの選択を解除します。
「入力」フィールドの右側にある「検索」をクリックして、入力メッセージのスキーマ要素を選択します。デフォルトでは、入力メッセージ用にsingleStringスキーマ要素が選択されています。
注意: Oracle Mediatorで処理する入力文書の形式は、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> |
「OK」をクリックします。
入力メッセージ用のポート・タイプが定義された一方向相互作用のOracle Mediatorが作成されます。
Oracle Mediatorは、同期リクエスト/レスポンス相互作用をサポートしています。同期相互作用では、クライアントはサービスにリクエストを送信し、すぐにレスポンスを受信します。クライアントはレスポンスが届くまで次へ進みません。
「メディエータの作成」ダイアログの「同期インタフェース」テンプレートを使用することで、同期相互作用のOracle Mediatorを作成できます。
同期インタフェース定義を使用してOracle Mediatorを作成する手順は、次のとおりです。
「コンポーネント・パレット」の「SOA」リストから、「メディエータ」サービス・コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。
「メディエータの作成」ダイアログが表示されます。
「名前」フィールドに、Oracle Mediatorの名前を入力します。
図19-12に示すように、「テンプレート」リストから、「同期インタフェース」を選択します。
Oracle Mediatorに自動的に接続されるSOAPバインディングを使用した公開済サービスを作成しない場合は、「SOAPバインディングを持つコンポジット・サービスの作成」オプションの選択を解除します。
「入力」フィールドの右側にある「検索」をクリックして、入力メッセージのスキーマ要素を選択します。デフォルトでは、入力メッセージ用にsingleStringスキーマ要素が選択されています。
「出力」フィールドの右側にある「検索」をクリックして、出力メッセージのスキーマ要素を選択します。デフォルトでは、出力メッセージ用にsingleStringスキーマ要素が選択されています。
「OK」をクリックします。
リクエスト・メッセージ用のポート・タイプが定義されたOracle Mediatorが作成されます。
Oracle Mediatorは、非同期リクエスト/レスポンス相互作用をサポートしています。非同期相互作用では、クライアントはサービスにリクエストを送信しますが、リプライをブロックおよび待機しません。
「メディエータの作成」ダイアログの「非同期インタフェース」テンプレートを使用することで、非同期相互作用のOracle Mediatorを作成できます。
非同期インタフェース定義を使用してOracle Mediatorを作成する手順は、次のとおりです。
「コンポーネント・パレット」の「SOA」リストから、「メディエータ」サービス・コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。
「メディエータの作成」ダイアログが表示されます。
「名前」フィールドに、Oracle Mediatorの名前を入力します。
図19-14に示すように、「テンプレート」リストから、「非同期インタフェース」を選択します。
Oracle Mediatorサービス・コンポーネントに自動的に接続されるSOAPバインディングを使用した公開済サービスを作成しない場合は、「SOAPバインディングを持つコンポジット・サービスの作成」オプションの選択を解除します。
「入力」フィールドの右側にある「検索」をクリックして、入力メッセージのスキーマ要素を選択します。デフォルトでは、入力メッセージ用にsingleStringスキーマ要素が選択されています。
「出力」フィールドの右側にある「検索」をクリックして、出力メッセージのスキーマ要素を選択します。デフォルトでは、出力メッセージ用にsingleStringスキーマ要素が選択されています。
「OK」をクリックします。
リクエスト・メッセージとレスポンス・メッセージ用のポート・タイプが定義された、非同期相互作用のOracle Mediatorが作成されます。
目的の状況が発生したときに発生するビジネス・イベントをサブスクライブするOracle Mediatorを作成できます。ビジネス・イベントは、ビジネス環境における発生の結果として送信されるメッセージ・データで構成されています。ビジネス・イベントの詳細は、第39章「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。
「メディエータの作成」ダイアログの「イベントのサブスクライブ」テンプレートを使用して、イベントをサブスクライブするためのOracle Mediatorを作成できます。
イベント・サブスクリプション用のOracle Mediatorを作成する手順は、次のとおりです。
「コンポーネント・パレット」の「SOA」リストから、「メディエータ」サービス・コンポーネントをドラッグし、SOAコンポジット・エディタの「コンポーネント」セクションにドロップします。
「メディエータの作成」ダイアログが表示されます。
「名前」フィールドに、Oracle Mediatorサービス・コンポーネントの名前を入力します。
図19-16に示すように、「テンプレート」リストから、「イベントのサブスクライブ」を選択します。
図19-16 「メディエータの作成」ダイアログの「イベントのサブスクライブ」テンプレートの選択
「追加」をクリックします。
「イベント・チューザ」ダイアログが表示されます。
「イベント定義」フィールドの右側にある「検索」をクリックします。
「SOAリソース・ブラウザ」ダイアログが表示されます。
イベント定義ファイル(.edl
)を選択し「OK」をクリックします。
「イベント」フィールドに、選択した.edl
ファイルに記述されているイベントが移入されます。.edl
ファイルの作成方法の詳細は、第39章「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。
図19-17に示すように、「イベント」フィールドで1つ以上のイベントを選択し、「OK」をクリックします。
イベントと一貫性がある配信のレベルを選択します。
唯一: イベント配信にはグローバル(JTA)トランザクションが使用されます。イベント・コールが失敗した場合、トランザクションはロールバックされ、コールは構成可能な回数だけ再試行されます。
保証付き: 配信を保証するためにローカル・トランザクションが使用されます。失敗時の再試行はありません。
即時: イベントはコール元と同じスレッドおよび同じトランザクション上で配信されます。
「ロールとして実行」フィールドに、イベント・サブスクリプションを実行しているセキュリティ・ロールを入力します。デフォルトでは、イベント・サブスクリプションはイベント・パブリッシャ$publisherのセキュリティ下で実行します。この値をそのまま使用することも、このフィールドを空白にすることもできます。
イベントをフィルタリングするには、次のいずれかを実行します。
選択したイベントの「フィルタ」列をダブルクリックします。
イベントを選択した後、「フィルタ」アイコン(最初のアイコン)をクリックします。
「式ビルダー」ダイアログが表示されます。
「式」フィールドでXPath式を入力し、「OK」をクリックします。
図19-18に、「式ビルダー」ダイアログのサンプルを示します。
「メディエータの作成」ダイアログの「フィルタ」列が移入されます。
「OK」をクリックします。
図19-19に示すように、Oracle Mediatorが作成されます。
Oracle Mediatorの左側にあるアイコンは、そのOracle Mediatorがイベント・サブスクリプション用に構成されていることを示しています。
図19-19 「イベントのサブスクライブ」テンプレートを使用して作成されたOracle Mediatorコンポーネント
Oracle Mediatorをダブルクリックすると、メディエータ・エディタが表示されます。
この項では、Oracle Mediatorサービス・コンポーネントを作成するために知っておく必要がある概念について説明します。
Oracle SOA Suiteのサービス・コンポーネントであるOracle Mediatorは、様々なメッセージ交換パターン(同期、非同期、イベントの公開またはサブスクリプションなど)に加え、選択的なルーティング、トランスフォーメーションおよび検証の機能などの仲介機能を備えています。
Oracle Mediatorの作成方法の詳細は、第19.3項「Oracle Mediatorの作成」を参照してください。
ルーティング・ルールは、必要な仲介を実行するために定義する仲介ロジックまたは実行ロジックです。ルーティング・ルールの定義に関する詳細は、第20.2項「ルーティング・ルールの定義」を参照してください。
ルーティング・ルールを作成するには、次の内容を指定する必要があります。
操作またはイベント
Oracle Mediatorルーティング・ルールは、サービス操作またはイベント・サブスクリプションのいずれかでトリガーできます。サービス操作は、同期、非同期または一方向のいずれかです。
Javaコールアウト
Javaコールアウトは、Oracle Mediatorの実行における様々なポイントで外部Javaロジックを実行するために使用します。
静的ルーティング・ルール
静的に定義され、起動コンテキストによって変更されることのないOracle Mediatorルーティング・ルールです。この場合のルーティングは、エコー、別のサービスへのルーティングまたはイベントの公開のいずれかです。
静的ルーティング・ルールでは、次の内容を指定します。
リクエスト・ハンドラ
受信リクエストをOracle Mediatorが処理する方法を定義します。
リプライ・ハンドラ
コールしたサービスからの同期レスポンスをOracle Mediatorが処理する方法を定義します。
フォルト・ハンドラ
コールしたサービスからの名前付きフォルトまたは宣言済フォルトをOracle Mediatorが処理する方法を定義します。
コールバック・ハンドラ
コールしたサービスからの非同期レスポンスとコールバックをOracle Mediatorが処理する方法を定義します。
コールバックにおけるタイムアウト・ハンドラ
特定の非同期リクエストに対するタイムアウト処理を実行するまでに、Oracle Mediatorが、非同期レスポンスとコールバックを待機する時間を定義します。
イベントの公開およびサービスの起動
イベントの公開およびサービスの起動では、ハンドラの構成に応じて、他のサービスのコールまたはイベントの公開が実行されます。
順次実行およびパラレル実行
各ルーティング・ルールの実行は、順次(同じスレッド内で実行)またはパラレル(異なるスレッド内で実行)のいずれかに構成できます。
注意: 同期サービス起動の場合、ルーティング・ルールは必ず順次にする必要があります。 |
フィルタ式
特定のルーティング・ルールを実行するかどうかを定義します。この機能はXPath標準を使用し、Oracle Mediatorルーティング・ルールの選択的な実行を可能にします。
セマンティク検証
受信リクエストのセマンティク検証を可能にし、データが正しいかどうかも検証します。この機能は、Schematron検証標準を使用します。
トランスフォーメーション
受信データのトランスフォーメーションを可能にし、コールしたサービスまたは公開済イベントに準拠した形式へのトランスフォーメーションを実行します。この機能は、XSLトランスフォーメーション標準に基づいています。
割当て
コールしたサービスに合わせるために、メッセージのヘッダーおよびプロパティの操作を可能にします。
動的なルーティング・ルール
Oracle Rules Dictionaryへのルーティング・ロジックの外部化を可能にするOracle Mediatorルーティング・ルールです。Oracle Rules Dictionaryは、ルーティング・ルール内のルーティング・ロジックの動的変更を可能にします。この機能は、デシジョン・サービスおよびOracle Rulesを使用して、実行時にルーティング・ロジックを取得します。
注意: Oracle Mediatorのグローバリゼーションを完全にサポートするために、Unicodeデータベースのデータベース・キャラクタ・セットには、AL32UTF8 を使用することをお薦めします。 |
次のいずれかの方法を使用して、WSDLファイルを生成できます。
「メディエータの作成」ダイアログの「WSDLからのインタフェース定義」テンプレートを選択する際に表示される「スキーマからWSDLを生成します。」オプションを使用します。
インタフェース定義を使用しないOracle Mediatorのサービスの定義中に表示される「サービスの定義」ダイアログの「スキーマからWSDLを生成します。」オプションを使用します。
それぞれの方法で、図19-20に示す「WSDLの作成」ダイアログを開きます。
「WSDLの作成」ダイアログは「リクエスト」、「リプライ」、「フォルト」および「コールバック」の各タブで構成されており、これらのタブを使用してリクエスト、リプライ、フォルトおよびコールバックの各メッセージのスキーマ・ファイルを定義できます。リクエスト、レスポンス、フォルトおよびコールバック・メッセージに対して、同一または異なるスキーマ・ファイルを指定できます。最低でもリクエスト・メッセージのスキーマ・ファイルを指定する必要があります。デフォルトでは、リクエスト・メッセージ用にsingleString.xsdファイルが選択されています。
メッセージに対するWSDLファイルは、XMLスキーマ定義(XSD)ファイルまたはサンプル・ファイルを使用して生成できます。
XSDファイルからWSDLを生成する手順は、次のとおりです。
「WSDLの作成」ダイアログの「リクエスト」タブで「検索」をクリックして、スキーマ・ロケーションにアクセスします。
図19-21に示すように、スキーマ・ファイル(XSDファイル)のリストを含む「タイプ・チューザ」ダイアログが表示されます。
「プロジェクトのスキーマ・ファイル」ノードと「プロジェクトのWSDLファイル」ノードを開いて、使用するスキーマを検索します。
スキーマXSDファイルまたはWSDLファイルは、それぞれダイアログの右上にある「スキーマ・ファイルのインポート」アイコンまたは「WSDLのインポート」アイコンを使用して、プロジェクトにインポートすることもできます。
注意: ローカル・ファイル・システムのスキーマXSDファイルを使用する場合は、必ず、XSDファイルおよびそのファイルによってインポートされるXSDファイルすべてがOracle JDeveloperのプロジェクト・ディレクトリに存在している必要があります。 |
ファイルを指定すると、Oracle Jdeveloperによってファイルが解析されて定義済のスキーマ要素が決定され、リストに選択肢として表示されます。
XSDファイルのルート要素を選択し、「OK」をクリックします。
「操作名」フィールドに操作名を入力します。例: executeQuery
。
Oracle JDeveloperによって、指定された操作がWSDLファイルの操作要素に変換されます。
注意: 操作名に空白は使用できません。 |
「ポート・タイプ名」フィールドに、ポート名を入力します。
「ネームスペース」フィールドに、ネームスペースを入力するか、現在の値をそのまま使用します。
例: http://oracle.com/esb/namespaces/Mediator
指定するネームスペースは、WSDLファイルのtns
ネームスペースとして定義されます。
「リプライ」タブで情報を入力する場合は、「検索」をクリックしてスキーマにアクセスしてから、スキーマ要素を選択します。
「リプライ」タブで同期通信におけるレスポンス・メッセージのスキーマを指定できます。
「フォルト」タブで情報を入力する場合は、「検索」をクリックしてスキーマ・ロケーションにアクセスしてから、スキーマ要素を選択します。また、レスポンスを指定しないと、フォルト・メッセージ・スキーマは指定できません。
「コールバック」タブで情報を入力する場合は、「検索」をクリックしてスキーマにアクセスしてから、スキーマ要素を選択します。
「コールバック」タブで非同期通信におけるレスポンス・メッセージのスキーマを指定できます。
「操作名」フィールドに操作名を入力します。例: returnQuery
「ポート・タイプ名」フィールドに、レスポンスが送信されるポート名を入力します。
「OK」をクリックします。
サンプル・ファイルに基づいたWSDLファイルの生成
WSDLファイルは、カンマ区切り値(CSV)ファイル、固定長ファイル、Document Type Definition(DTD)ファイル、COBOLコピーブック・ファイルなどのネイティブ・フォーマットのファイルから生成できます。ネイティブ・フォーマット・ビルダー・ウィザードを使用して、サンプル・ファイルに基づいたWSDLファイルを生成できます。このネイティブ・フォーマット・ビルダー・ウィザードは、「WSDLの作成」ダイアログの「リクエスト」、「レスポンス」、「フォルト」および「コールバック」タブにある「ネイティブ・フォーマットのスキーマの定義」をクリックすると表示されます。WSDLファイルは、ウィザード完了後に生成されます。
ネイティブ・フォーマット・ビルダー・ウィザードの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
Oracle Mediatorを作成した後は、メディエータ・エディタを使用して、操作またはイベント・サブスクリプションの「有効な構文(XSD)の検証」チェック・ボックスを選択できます。このオプションを選択して、インバウンド・メッセージのスキーマを検証できます。デフォルトでは、このチェック・ボックスは選択されていません。
Oracle Mediatorの操作またはイベント・サブスクリプションは、メディエータ・エディタを使用して変更できます。
操作を追加または削除することで、Oracle MediatorのWSDLファイルを変更できます。WSDLファイルの変更後、「WSDLのリフレッシュ」ダイアログを使用して変更を同期化できます。
Oracle Mediatorの操作を変更する手順は、次のとおりです。
メディエータ・エディタで、「WSDL URL」フィールドの右側にある「WSDLからの操作のリフレッシュ」アイコンをクリックします。
「WSDLのリフレッシュ」ダイアログが表示されます。WSDLファイルが変更された場合、「WSDLのリフレッシュ」ダイアログには削除または追加される操作がすべて一覧表示されます。「リフレッシュにより、次のメディエータ操作が削除されます」フィールドには、WSDLファイルから削除された操作がすべて一覧表示されます。「リフレッシュにより、次のメディエータ操作が追加されます」フィールドに、WSDLファイルに追加された新規操作がすべて一覧表示されます。図19-22に、「WSDLのリフレッシュ」ダイアログを示します。
別のWSDLファイルを指定するには、「WSDL URL」フィールドの右側にある「既存のWSDLを検索します。」をクリックして既存のWSDLファイルを使用するか、または「スキーマからWSDLを生成します。」をクリックして新規のWSDLファイルを作成します。
「WSDLのリフレッシュ」ダイアログは、指定のWSDLファイルで定義された操作に基づいて更新されます。
「OK」をクリックします。
「ファイル」メニューから「すべて保存」を選択します。
メディエータ・エディタの「イベント・サブスクリプションの管理」オプションを使用すると、新規イベントのサブスクライブ、既存イベント・サブスクリプションの変更およびサブスクライブ済イベントからのサブスクライブ解除などを実行できます。
Oracle Mediatorのイベント・サブスクリプションを変更する手順は、次のとおりです。
メディエータ・エディタで、「イベント・サブスクリプション」の右側にある「イベント・サブスクリプションの管理」アイコンをクリックします。
図19-23に示すように、「サブスクライブ済イベント」ダイアログが表示されます。
次の機能のいずれも実行できます。
新規イベントをサブスクライブします。
イベントからサブスクライブ解除します。
イベントのフィルタ基準を変更または指定します。
イベント・サブスクリプションの「一貫性」または「ロールとして実行」プロパティを変更します。
イベントの「一貫性」、「ロールとして実行」および「フィルタ」の各フィールドに関する詳細は、第19.3.6項「イベント・サブスクリプション用のOracle Mediatorの作成」を参照してください。
「OK」をクリックします。
「ファイル」メニューから「すべて保存」を選択します。