ルーティング・サービスは、Enterprise Service Bus全体にわたって(開始から終了まで)メッセージを移動するための主要なコンポーネントです。 Oracle JDeveloper ESB Designerには、ルーティング・サービスの作成を支援するツールが用意されています。
ルーティング・サービスを定義する主な構成要素は、次のとおりです。
WSDLファイル
ターゲット・サービスおよび操作
トランスフォーメーション定義
フィルタ式
実行タイプ(同期または非同期)
ルーティング・サービスがメッセージを受け入れる送信元ESBシステム
WSDLは、他のサービス(Enterprise Service Bus内部または外部)がルーティング・サービスをコールする方法を指定します。 WSDL以外の項目は、ルーティング・ルールと呼ばれ、ターゲット・サービスにメッセージを送信する前に、ルーティング・サービスが各メッセージを送信する宛先、メッセージの送信方法、およびメッセージ構造に対する変更(ある場合)を判断します。
Oracle JDeveloper ESB Designerには、ルーティング・サービスWSDLの作成やルーティング・ルールの定義を支援するツールが用意されています。
ルーティング・サービスWSDLの作成には主に2つの方法があります。
既存のWSDLファイルと、そのWSDLに定義されているポート・タイプの1つを指定する方法
このオプションでは、既存のWSDLファイル(ローカル・ファイル・システムのファイルまたはOracle JDeveloper ESB Designer接続を介したファイル)を使用してルーティング・サービスを定義できます。 指定したWSDLが解析され、ポート・タイプの選択肢がリストに表示されます。
既存のWSDLをそのルーティング・サービス用に編集する場合は、WSDLエディタ(Oracle JDeveloperなど)を使用して該当するWSDLを編集してから、このダイアログにWSDLを指定します。
スキーマ・ファイル(.xsd)からWSDLを生成する方法
このオプションでは、既存のXSDファイルまたはネイティブ・ファイル・フォーマット(カンマ区切り(CSV)ファイル、固定長ファイル、Document Type Definition(DTD)ファイル、COBOLコピーブック・ファイルなど)のファイルを使用して、ルーティング・サービスを定義できます。
リクエスト、レスポンスおよびフォルト・メッセージ・スキーマには、同じスキーマ・ファイルまたは異なるスキーマ・ファイルを指定できます。これらのファイルは、Oracle JDeveloper ESB DesignerによってWSDLの入力、出力およびフォルト要素に変換されます。 最低限でも、リクエスト・メッセージのスキーマを指定する必要があります。 また、レスポンスを指定しないと、フォルト・メッセージ・スキーマは指定できません。
さらに、操作とネームスペースを指定します。 操作はWSDLファイルの操作要素に変換され、指定したネームスペースはWSDLファイルにtns
ネームスペースとして定義されます。
操作要素には、操作に対する入力の定義方法が記述されます。
Oracle Enterprise Service Busでのルーティング・サービスの管理方法については、『Oracle Enterprise Service Bus開発者ガイド』の「ルーティング・サービスおよびルーティング・ルールの作成」を参照してください。
ルーティング・サービスを作成するには、Oracle JDeveloper ESB Designerで「ルーティング・サービスの作成」ダイアログの指定を完了する必要があります。 このダイアログにアクセスするには、次のいずれかの方法を使用します。
「設計」タブを使用してアダプタ・サービスを図式的に追加する手順は、次のとおりです。
アプリケーション・ナビゲータで、ルーティング・サービスを作成するESBプロジェクトに移動し、「リソース」フォルダを開き、「project-name.esb」をダブルクリックします。project-nameは、ルーティング・サービスを追加するプロジェクトの名前です。
プロジェクトの「設計」タブが表示されます。
コンポーネント・パレットで下矢印をクリックし、「ESBサービス」を選択します(選択されていない場合)。
「ルーティング・サービス」を「ダイアグラム」タブにドラッグ・アンド・ドロップします。
「ルーティング・サービスの作成」ダイアログが表示されます。
「設計」タブ内で右クリックし、「ESBサービスの作成」→「ルーティング・サービス」の順に選択してルーティング・サービスを作成することもできます。
ダイアログ・ボックスのみを使用してルーティング・サービスを作成する手順は、次のとおりです。
アプリケーション・ナビゲータで、ルーティング・サービスを作成するESBプロジェクトを右クリックし、「新規」をクリックします。
新規ギャラリが表示されます。
「カテゴリ」パネルで、「Business Tier」を開き、「Web Services」をクリックします。
「項目」パネルで、「ESBルーティング・サービス」をクリックし、「OK」をクリックします。
「ルーティング・サービスの作成」ダイアログが表示されます。
「ルーティング・サービスの作成」ダイアログでは、次の各項に示すように、3種類の方法でルーティング・サービスのWSDLを指定できます。 次の各項では、使用方法に応じて「ルーティング・サービスの作成」ダイアログの指定を完了する手順について説明します。
図6-5は、「リクエスト」タブが表示された状態の「ルーティング・サービスの作成」ダイアログの例です。
この方法では、ルーティング・サービス用に既存のWSDLを指定します。 ファイルを指定すると、ファイルが解析されて定義済のスキーマ要素が判断され、ドロップダウン・リストの選択肢に表示されます。
既存のXSDファイルからWSDLを生成する手順は、次のとおりです。
「ルーティング・サービスの作成」ダイアログを開きます(開いていない場合)。
「名前」フィールドに、ルーティング・サービスの名前を入力します。
指定する名前は、ルーティング・サービスを作成するプロジェクトの有効範囲内で一意であることが必要です。 空白は使用できません。
「システム/グループ」フィールドの「参照」をクリックして「ESBサービス・グループ・ブラウザ」ダイアログを開き、ルーティング・サービスを追加するシステム(必要に応じてサービス・グループ)を選択し、「OK」をクリックします。
作成しているルーティング・サービスを格納するシステムまたはサービス・グループを新規作成するには、「ESBサービス・グループ・ブラウザ」ダイアログの上部の「新規作成」をクリックします。 新規ESBシステムまたはサービス・グループの作成方法は、第6.4.1項「ESBシステムまたはサービス・グループの作成方法」を参照してください。
「説明」フィールドに、必要に応じてルーティング・サービスの説明を入力します。 このフィールドはオプションです。
「スキーマからWSDLを生成」を選択します。
このオプションには、「リクエスト」、「リプライ」および「フォルト」タブがあります。
「リクエスト」タブで「参照」をクリックし、「スキーマの場所」にアクセスします。
「タイプの選択」ダイアログが開き、WSDLを生成するために選択可能なスキーマ・ファイル(XSDファイル)が表示されます。 「プロジェクトのスキーマ・ファイル」、「プロジェクトのWSDLファイル」および「ESB」のツリーを開き、スキーマを検索します。 このルーティング・サービスで処理するメッセージ・インスタンスのXSDファイルのルート要素に移動します。 要素を選択して「OK」をクリックします。
スキーマ・ファイルまたはWSDLファイルは、「タイプの選択」ダイアログの右上部に表示される「スキーマ・ファイルのインポート」または「WSDLのインポート」アイコンをクリックしてインポートすることもできます。
図6-6は、「スキーマ・ファイルのインポート」ツリーが開いた状態の「タイプの選択」ダイアログの例です。
「リクエスト」タブの「スキーマ要素」フィールドで、このルーティング・サービスで処理するメッセージのルート要素を選択します(選択されていない場合)。
「リプライ」タブに情報を入力する場合は、このタブに対して「リクエスト」タブの手順を繰り返します。
「フォルト」タブに情報を入力する場合は、このタブに対して「リクエスト」タブの手順を繰り返します。
「操作名」フィールドに、操作名を入力します。 空白は使用できません。
「ネームスペース」フィールドに、ネームスペースを入力するか、現在の値をそのまま使用します。
「OK」をクリックします。
ルーティング・サービスが作成され、ESBプロジェクトの「設計」タブにアイコンが追加されます。
Oracle JDeveloper ESB Designerには、サンプル・ファイルおよびファイル構造について指定した詳細情報に基づいて、様々なファイル形式(CSVファイル、固定長ファイル、DTD、COBOLコピーブックなど)によるXSD表現の作成を支援するウィザードがあります。 その後、そのXSDファイルからルーティング・サービスのWSDLを生成するようにOracle JDeveloper ESB Designerに指示できます。
サンプル・ファイルに従ってWSDLを生成する手順は、次のとおりです。
「ルーティング・サービスの作成」ダイアログを開きます(開いていない場合)。
「サービス名」フィールドに、ルーティング・サービスの名前を入力します。
指定する名前は、ルーティング・サービスを作成するプロジェクトの有効範囲内で一意であることが必要です。 空白は使用できません。
「システム/グループ」フィールドの「参照」をクリックして「ESBサービス・グループ・ブラウザ」ダイアログを開き、ルーティング・サービスを追加するシステム(必要に応じてサービス・グループ)を選択し、「OK」をクリックします。
「ESBサービス・グループ・ブラウザ」ダイアログの使用方法を確認するには、「ヘルプ」をクリックします。
「説明」フィールドに、必要に応じてルーティング・サービスの説明を入力します。 このフィールドはオプションです。
「スキーマからWSDLを生成」を選択します。
このオプションには、「リクエスト」、「リプライ」および「フォルト」タブがあります。
「リクエスト」タブで、「ネイティブ・フォーマットのスキーマの定義」をクリックします。
ネイティブ・フォーマット・ファイル・ビルダー・ウィザードが開きます。
ウィザードの各ステップに従います。
ウィザードのページについて支援が必要な場合は、「ヘルプ」をクリックします。
「リクエスト」タブの「スキーマ要素」フィールドで、このルーティング・サービスで処理するメッセージのルート要素を選択します。
「リプライ」タブ
「フォルト」タブ
「操作名」
空白は使用できません。
「ネームスペース」
「OK」をクリックします。
ルーティング・サービスが作成され、ESBプロジェクトの「設計」タブにアイコンが追加されます。
この方法を使用してルーティング・サービスのWSDLを指定する場合は、既存のWSDLがローカル・ファイル・システムに存在している必要があります。 ファイルを指定すると、ファイルが解析されて定義済のポート・タイプが判断され、ドロップダウン・リストの選択肢に表示されます。
既存のWSDLを選択する手順は、次のとおりです。
「ルーティング・サービスの作成」ダイアログを開きます(開いていない場合)。
「サービス名」フィールドに、ルーティング・サービスの名前を入力します。
指定する名前は、ルーティング・サービスを作成するプロジェクトの有効範囲内で一意であることが必要です。 空白は使用できません。
「システム/グループ」フィールドの「参照」をクリックして「ESBサービス・グループ・ブラウザ」ダイアログを開き、ルーティング・サービスを追加するシステム(必要に応じてサービス・グループ)を選択し、「OK」をクリックします。
「ESBサービス・グループ・ブラウザ」ダイアログの使用方法を確認するには、「ヘルプ」をクリックします。
「説明」フィールドに、必要に応じてルーティング・サービスの説明を入力します。 このフィールドはオプションです。
「既存のWSDLの選択」を選択します。
「WSDLファイル」フィールドを設定するには、フィールドの右にある次のアイコンをクリックします。
「WSDLファイルの参照」アイコン
このアイコンをクリックして、ファイルの「オープン」ダイアログを起動します。 「オープン」ダイアログで、既存のWSDLファイルに移動し、「オープン」をクリックしてダイアログを閉じます。 このダイアログについて支援が必要な場合は、「ヘルプ」をクリックしてください。
「サービス・エクスプローラ」アイコン
このアイコンをクリックして、サービス・エクスプローラを起動し、デプロイ済サービスを検索します。 第6.5.1項「デプロイ済サービスの参照方法」を参照してください。 終了後に「OK」をクリックして、ダイアログを閉じます。
「ポート・タイプ」フィールドで、下矢印をクリックし、ルーティング・サービスのポート・タイプを選択します。
「OK」をクリックします。
ルーティング・サービスが作成され、ESBプロジェクトの「設計」タブにアイコンが追加されます。
ルーティング・サービスは、Oracle JDeveloper ESB Designerで変更できます。
ルーティング・サービスを変更する手順は、次のとおりです。
「設計」タブで、ルーティング・サービス・アイコンの上のセクションをダブルクリックします。 アイコンのリージョン上では、カーソルが手の形になります。
図6-7は、サービス・アイコンが表示された状態のESBプロジェクトの「設計」タブの例です。
変更可能なルーティング・サービスのプロパティを更新します。 サービス、WSDLファイルおよびポート・タイプの名前は変更できないことに注意してください。
このプロパティ・ページでは、ルーティング・ルールも更新できます。 第6.10項「ルーティング・ルールの指定」を参照してください。
変更内容を保存します。
ルーティング・サービスは、Oracle JDeveloper ESB Designerで削除できます。
ルーティング・サービスを削除する手順は、次のとおりです。
「設計」タブで、ルーティング・サービス・アイコンを選択します。
選択したルーティング・サービスを削除するには、「設計」タブの上部にある大きい赤色のX記号をクリックします。
選択したサービスの削除を確認します。
変更内容を保存します。
注意: アプリケーション・ナビゲータでは、ルーティング・サービスを削除しないでください。 |
新規ルーティング・サービスを追加するための情報の指定が完了すると、「設計」タブにルーティング・サービス・アイコンが表示されます。また、アプリケーション・ナビゲータでは、ESBプロジェクトの「リソース」フォルダにサービス定義ファイルが表示されます。 アプリケーション・ナビゲータのルーティング・サービス・エントリの名前には、ESBシステム名、ルーティング・サービス名および拡張子esbsvcが含まれ、system-name_service-name
.esbsvc
の形式で表示されます。 Oracle JDeveloper ESB Designerでは、サービス定義ファイルの実際のソースは表示されません。
サービスのWSDLファイルがservice_name
.wsdl
の形式で作成され、アプリケーション・ナビゲータに表示されます。 例6-4は、ルーティング・サービスWSDLファイルのサンプルです。
例6-4 ルーティング・サービスWSDLファイルのサンプル
<?xml version= '1.0' encoding= 'UTF-8' ?> <definitions name="OrderFulfillment" targetNamespace="http://www.globalcompany.com/ns/Fulfillment" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.globalcompany.com/ns/Fulfillment" xmlns:inp1="http://www.globalcompany.com/ns/order"> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" > <import namespace="http://www.globalcompany.com/ns/order" schemaLocation="OrderBookingPO.xsd" /> </schema> </types> <message name="PurchaseOrder_request"> <part name="PurchaseOrder" element="inp1:PurchaseOrder"/> </message> <portType name="execute_ppt"> <operation name="execute"> <input message="tns:PurchaseOrder_request"/> </operation> </portType> </definitions>
ESBプロジェクトがESBサーバーに登録されると、Oracle JDeveloper ESB Designerで作成したルーティング・サービスがデザインタイム・メタデータ・サーバーにデプロイされます。 第6.2.1項「Oracle Enterprise Service Busフロー作成時の処理内容」を参照してください。