この章では、インバウンドおよびアウトバウンド・サービスの作成方法について説明します。
項目は次のとおりです。
注意: 十分にテストされていないOracle Enterprise Service Bus機能は、これまではプレビュー機能として設計されていました。 これらの機能は、今後のリリースでサポートされる予定です。 このリリースにおけるプレビュー機能は次のとおりです。
|
Oracle JDeveloperで作成したサービスを使用すると、Oracle Enterprise Service Busをファイル・システム、データベース表、データベース・キュー、Java Message Service(JMS)、MQサービス、Oracle E-Business SuiteおよびすべてのSOAPサービスに統合できます。 メッセージをEnterprise Service Busに送信するこれらのサービスに加えて、Oracle Enterprise Service Busには、ルーティング・サービスと呼ばれるサービスが用意されています。このルーティング・サービスは、Enterprise Service Bus内のソース・エンドポイントからターゲット・エンドポイントにメッセージを送信するパスを決定します。
サービスはEnterprise Service Busの中核です。Oracle Enterprise Service Busは、Service Busとの間のメッセージの移動、Service Bus内でのメッセージの移動を実行する各種のサービスを作成することによって設計します。
データをService Busに移動するには、インバウンド・アダプタ・サービスを使用するか、外部アプリケーションでESBサービスを呼び出します。データをService Busから移動するには、アウトバウンド・アダプタ・サービスを使用するか、外部SOAPサービスを起動します。 Service Bus内でデータを移動し、データ構造をソース・アプリケーションの構造からターゲット・アプリケーションに必要な構造に変換するには、ルーティング・サービスを使用します。
アダプタ・サービスとルーティング・サービスの詳細は、次の各項を参照してください。
ルーティング・サービスについては、第5章「ルーティング・サービスおよびルーティング・ルールの作成」を参照してください。
Oracle Enterprise Service Busでは、Oracleテクノロジ・アダプタに対するサービスの作成をサポートしています。 Oracleテクノロジ・アダプタを使用すると、メインフレームとレガシー・アプリケーションをERP、カスタマ・リレーションシップ・マネジメント(CRM)、データベースおよびメッセージ・システムに統合できます。
表4-1に、作成可能なOracleテクノロジ・アダプタ・サービスの要約を示します。 アダプタ・サービスは、インバウンドまたはアウトバウンド・アダプタ・サービスとして構成できます。 インバウンド・アダプタ・サービスは、メッセージをEnterprise Service Busに送信します。これに対して、アウトバウンド・アダプタ・サービスは、メッセージをEnterprise Service Bus外部のアプリケーションまたはシステムに送信します。
表4-1 Oracleテクノロジ・アダプタの要約
アダプタ・サービス | 説明 |
---|---|
AQアダプタ・サービス |
Oracle Advanced Queuingのシングルまたはマルチ・コンシューマ・キューとの間でメッセージを送受信します。 |
データベース・アダプタ・サービス |
Oracle Database表から抽出されたメッセージ、またはストアド・プロシージャの実行で作成されたメッセージを送受信します。 |
ファイル・アダプタ・サービス |
ローカル・ファイル・システムにあるファイルからのメッセージを送受信します。 |
FTPアダプタ・サービス |
リモートFTPサーバーにあるファイルからのメッセージを送受信します。 |
JMSアダプタ・サービス |
JMSキューまたはトピックからのメッセージを送受信します。 |
MQアダプタ |
IBMのMQシリーズからのメッセージを送受信します。 |
Oracle Applicationsアダプタ・サービス |
Oracle E-Business Suiteインタフェースからのメッセージを送受信します。 |
ここでは、次の項目について説明します。
Oracle JDeveloperには、インバウンドおよびアウトバウンド・アダプタ・サービスの作成を支援するウィザードが用意されています。 このウィザードは、必要な情報を収集して、サービスを定義するWSDLファイルを生成します。
アダプタ・サービスを追加する手順は、次のとおりです。
「アプリケーション・ナビゲータ」で、アダプタ・サービスを作成するESBプロジェクトに移動し、「リソース」フォルダを開き、project-name.esbをダブルクリックします。ここでproject-nameは、SOAPサービスを追加するプロジェクトの名前です。
プロジェクトの「設計」タブが表示されます。
コンポーネント・パレットで下矢印をクリックし、「アダプタ・サービス」を選択します(選択されていない場合)。
アダプタを「設計」タブにドラッグ・アンド・ドロップします。
指定したアダプタ・タイプの「アダプタ・サービスの作成」ダイアログ・ボックスが開きます。
アダプタの名前、システム/グループおよび説明(オプション)を入力します。
名前: サービスを作成するESBシステム内で一意の名前を入力します。空白は使用できません。 例: CustomerDataFileIn
。
システム/グループ: 懐中電灯アイコンをクリックして「ESBサービス・グループ・ブラウザ」ダイアログを開き、このサービスに対するシステム/グループを選択します。 例: 「プロジェクトのシステム/グループ」の下にあるCustomerData。
説明: 説明を入力します(オプション)。 例: このアダプタ・サービスは、ローカル・データ・ファイルからレコードを読み取ります。
「WSDLファイル」フィールドを設定するには、フィールドの右にある次のアイコンをクリックします。
「アダプタ・サービスのWSDLの構成」アイコン
このアイコンをクリックすると、コンポーネント・パレットで選択した特定タイプのアダプタについて、アダプタ構成ウィザードが起動します。 ウィザードのガイドに従って設定を行います。
Oracle JDeveloperでAQ、データベース、ファイル、FTP、JMSおよびMQの各アダプタを構成する方法の詳細は、『Oracle Application Server Adapters for Files, FTP, DatabasesおよびEnterprise Messagingユーザーズ・ガイド』を参照してください。 Oracle E-Business Suite用のOracleアプリケーション・アダプタを構成する方法の詳細は、『Oracle Application Server Adapter for Oracle Applicationsユーザーズ・ガイド』を参照してください。
「サービス・エクスプローラ」アイコン
このアイコンをクリックして、サービス・エクスプローラを起動し、デプロイ済サービスを検索します。
「デプロイ済サービスの参照」を参照してください。
「ポート・タイプ」フィールドで、下矢印をクリックし、ルーティング・サービスのポート・タイプを選択します。
「OK」をクリックします。
アダプタ・サービスの作成プロセスを完了すると、サービスを表すアイコンが「設計」タブに表示されます。 「アプリケーション・ナビゲータ」では、プロジェクトの「リソース」フォルダに、拡張子がesbsvc
およびwsdl
のファイルが作成されます。 esbsvc
ファイルは、ESBサービスの定義ファイルです。 wsdlファイルは、このインスタンス・フローの入出力メッセージ、サポートされているクライアント・インタフェースと操作、およびその他の機能を定義します。
名前にアダプタ・サービス名が使用されているwsdlファイルに加えて、新規アダプタとともに作成された標準JCAヘッダー・ファイルがあります。 ヘッダー・ファイル名の書式は、サービスがインバウンドかアウトバウンドかに応じて、adapter_type
AdapterOutboundHeader.wsdl
またはadapter_type
AdapterInboundHeader.wsdl
になります。 adapter_type
は、アダプタのタイプ(例: DB
、file
、jms
)を指定します。 アダプタのインバウンドおよびアウトバウンド・ヘッダーWSDLファイルについては、『Oracle Application Server Adapters for Files, FTP, DatabasesおよびEnterprise Messagingユーザーズ・ガイド』を参照してください。
インバウンド・アダプタ・サービスを作成すると、Oracle JDeveloperでは、新規に作成したアダプタのルーティング・サービスが自動的に作成され、それらの間にリンクが設定されます。 このルーティング・サービスの名前は、インバウンド・アダプタ名に文字列_RS
(ルーティング・サービスの略称)を加えた名前になります。 「ルーティング・ルールの指定」を参照してください。
「設計」タブで、アダプタ・サービス・アイコンの上のセクションをダブルクリックします。 アイコンのリージョンでは、カーソルが手の形になります。
変更可能なアダプタ・サービス情報に変更を加えます。 サービスの名前は変更できないことに注意してください。
「エンドポイント・プロパティ」パネルでは、サービスのエンドポイント・プロパティを追加、削除、更新または表示できます。 パネルを開くには、「エンドポイント・プロパティ」の横にある+記号をクリックします。 「エンドポイント・プロパティの使用」を参照してください。
変更内容を保存します。
「設計」タブで、アダプタ・サービス・アイコンを選択します。
選択したアダプタ・サービスを削除するには、「設計」タブの上部にある大きい赤色のX記号をクリックします。
選択したサービスの削除を確認します。
変更内容を保存します。
注意: アプリケーション・ナビゲータでは、アダプタ・サービスを削除しないでください。 |
この例では、Oracle JDeveloperのウィザードで収集される情報を使用し、c:¥customer¥in
ディレクトリからローカルXMLファイルを読み取るインバウンド・ファイル・アダプタ・サービスを作成します。 このアダプタを作成する手順は、次のとおりです。
「アプリケーション・ナビゲータ」で、SOAPサービスを作成するESBプロジェクトに移動し、「リソース」フォルダを開き、project-name.esbをダブルクリックします。ここでproject-nameは、SOAPサービスを追加するプロジェクトの名前です。
プロジェクトの「設計」タブが表示されます。
コンポーネント・パレットで下矢印をクリックし、「アダプタ・サービス」を選択します(選択されていない場合)。
「ファイル・アダプタ」を「設計」タブにドラッグ・アンド・ドロップします。
「ファイル・アダプタ・サービスの作成」ダイアログ・ボックスが開きます。
この「ファイル・アダプタ・サービスの作成」ダイアログ・ボックスで、名前を入力します。
サービスを作成するESBシステム内で一意の名前を入力します。空白は使用できません。
例: CustFileDataIn
「ファイル・アダプタ・サービスの作成」ダイアログ・ボックスで、システム/グループを入力します。
「参照」(懐中電灯)アイコンをクリックすると、「ESBサービス・グループ・ブラウザ」ダイアログが表示されます。 このアダプタを配置するシステム/グループを検索します。 例: 「ESB」の下にあるCustomerData
→「プロジェクトのシステム/グループ」
「ファイル・アダプタ・サービスの作成」ダイアログ・ボックスで、説明を入力します(オプション)。
例: インバウンド・データ・ファイルのファイル・アダプタ・サービス
「ファイル・アダプタ・サービスの作成」ダイアログ・ボックスで、WSDLファイルを入力します。
「アダプタ・サービスのWSDLの構成」アイコンをクリックしてアダプタ構成ウィザードを起動します。
「ようこそ」ページで、「次へ」をクリックします。
「サービス」ページで、サービス名を受け入れて「次へ」をクリックします。
オプションで、説明を入力できます。
「操作」ページで、操作タイプと名前を入力して「次へ」をクリックします。
例:
操作タイプ: Read File
操作名: ReadCustFileData
「ファイル・ディレクトリ」ページで、ディレクトリ情報を更新して「次へ」をクリックします。
例:
ディレクトリ名は次の方法で指定します: 物理パス
着信ファイル用のディレクトリ(物理パス): c:¥customer¥in
正常な取得後にファイルを削除: ボックスをチェックして有効にします。
ページに表示されたその他のデフォルト設定を受け入れます。
「ファイルのフィルタ処理」ページで、フィルタリング設定を更新して「次へ」をクリックします。
例:
名前パターンは次の方法で指定します: ファイル・ワイルドカード(po*.txt)
処理対象ファイルの名前パターン: *.xml
ページに表示されたその他のデフォルト設定を受け入れます。
「ファイル・ポーリング」ページで、ポーリング設定を更新して「次へ」をクリックします。
ポーリング頻度: 10秒
ファイルの最小経過時間: 0秒
ページに表示されたその他のデフォルト設定を受け入れます。
「メッセージ」ページで、メッセージ・スキーマを指定して「次へ」をクリックします。
例:
既存のCustomerDataスキーマを検索するには、「スキーマの場所」の「参照」ボタンをクリックして「タイプの選択」ダイアログ・ボックスを表示します。 「プロジェクトのスキーマ・ファイル」またはレガシーのCustomer.xsdを開き、CustomerDataを選択します。 「OK」をクリックします。
ページに表示されたその他のデフォルト設定を受け入れます。
「終了」ページで、「終了」をクリックしてアダプタ構成ウィザードを終了します。
「ファイル・アダプタ・サービスの作成」ダイアログ・ボックスで「OK」をクリックすると、サービスが作成されます。
新規アダプタ・サービスが新規ルーティング・サービスとともに「設計」タブに表示されます。 ルーティング・サービスの名前には、接尾辞_RS
が追加されています。
たとえば、Oracle JDeveloperのアダプタ構成ウィザードを使用して、CustFileDataIn
という名前のインバウンド・ファイル・アダプタ・サービスを作成すると、Oracle JDeveloperでは、CustDataFileIn_RS
という名前のルーティング・サービスが自動的に作成され、図4-3に示すように、CustDataFileIn
アダプタ・サービスからCustDataFileIn_RS
ルーティング・サービスへの接続が作成されます。
次に、この新規ルーティング・サービスに対してルーティング・ルールを追加する必要があります。 「ルーティング・ルールの指定」を参照してください。
SOAP呼出しサービスを使用すると、Apache AXIS、JDeveloper Webサービス、.NETなどの外部WebサービスをOracle Enterprise Service Busに統合できます。
ここでは、次の項目について説明します。
この項では、Oracle JDeveloperを使用して、外部サービスと統合するアウトバウンドSOAPサービスを作成する方法を説明します。
外部サービスは、図4-4に示すACMECustomerSOAPService
のように、OC4Jインスタンスにデプロイされたアプリケーションである場合があります。
図4-4 Oracle Application Server Control – アプリケーション
Oracle JDeveloperを使用してアウトバウンドSOAPサービスを作成する手順は、次のとおりです。
「アプリケーション・ナビゲータ」で、SOAPサービスを作成するESBプロジェクトに移動し、「リソース」フォルダを開き、project-name.esbをダブルクリックします。ここでproject-nameは、SOAPサービスを追加するプロジェクトの名前です。
プロジェクトの「設計」タブが表示されます。
コンポーネント・パレットで下矢印をクリックし、ESBサービスを選択します(選択されていない場合)。
「SOAPサービス」を「設計」タブにドラッグ・アンド・ドロップします。
「SOAP呼出しサービスを作成します。」ダイアログ・ボックスが開きます。
この「SOAP呼出しサービスを作成します。」ダイアログ・ボックスで、次の情報を入力します。
名前
サービスを作成するESBシステム内で一意の名前を入力します。空白は使用できません。
例: ACMEService
システム/グループ
例: CustomerData
説明
例: SOAPサービス
WSDLファイル
例: http://localhost:8888/ESBSamples-AcmeCust-context-root/ReceiveCustomerDataSoapHttpPort?WSDL
ポート・タイプ
例: ReceiveCustomerData
終了後に「OK」をクリックします。
新規SOAPサービスが「設計」タブに表示されます。
次に、新規SOAPサービスがターゲットになるルーティング・ルールを追加する必要があります。 ルーティング・ルールの定義方法は、「ルーティング・ルールの指定」を参照してください。
SOAPサービスは、Oracle JDeveloperでSOAPサービスのプロパティ・ページを開いて変更できます。
SOAPサービスを変更する手順は、次のとおりです。
Oracle JDeveloperの「設計」タブで、SOAPサービス・アイコンの上のセクションをダブルクリックします。 アイコンのリージョンでは、カーソルが手の形になります。
変更可能なアダプタ・サービス情報に変更を加えます。 サービスの名前は変更できないことに注意してください。
「エンドポイント・プロパティ」パネルでは、サービスのエンドポイント・プロパティを追加、削除、更新または表示できます。 パネルを開くには、「エンドポイント・プロパティ」の横にある+記号をクリックします。 「エンドポイント・プロパティの使用」を参照してください。
変更内容を保存します。
デプロイ済サービスは、サービス・エクスプローラを使用して参照できます。 サービス・エクスプローラは、アダプタ・サービス、ルーティング・サービスまたはSOAPサービスの作成時に使用可能になります。
デプロイ済サービスを参照する手順は、次のとおりです。
「アダプタ・サービスの作成」、「ルーティング・サービスの作成」または「SOAP呼出しサービスを作成します。」ダイアログを開きます(開いていない場合)。
「名前」、「システム/グループ」、「説明」など、ページの他のフィールドに情報を入力します。
ルーティング・サービスを作成する場合は、「ルーティング・サービスの作成」ダイアログで「既存のWSDLの選択」を選択します。
「WSDLの位置」フィールドの右にある懐中電灯アイコンをクリックして、「サービス・エクスプローラ」ダイアログを開きます。
「サービス・エクスプローラ」ツリーのブランチ(BPELサーバー接続など)を選択します。
サーバー接続フォルダを開いて、既存のプロジェクトを表示します。
たとえば、設定されている「統合サーバー接続」を開きます。
プロジェクトを開いて、デプロイ済サービスを表示します。
デプロイ済サービスを選択します。
終了後に「OK」をクリックして、ダイアログ・ボックスを閉じます。
「サービス・エクスプローラ」ダイアログ・ボックスが閉じ、「サービスの作成」ダイアログ・ボックスに戻ります。
注意: エンドポイント・プロパティは十分にテストされていないため、プレビュー機能のマークが付けられていました。 プレビュー機能は、今後のリリースでサポートされる予定です。 エンドポイント・プロパティを使用できるのは、Oracle JDeveloperが「プレビュー」モードで開始されている場合のみです。 「Oracle JDeveloperの開始」を参照してください。 |
各アダプタ・タイプおよびSOAPサービスには、サービスの作成時に指定される特定のエンドポイント・プロパティ・セットがあります。 たとえば、SOAPサービスのLocation
エンドポイント・プロパティには、新規のURL(1つまたは複数)を指定できます。 または、RetryCount
およびRetryInterval
エンドポイント・プロパティを変更して、アダプタのエラー処理のデフォルト値を上書きできます。 アダプタのエラー処理については、「インバウンド・アダプタのエラー処理」を参照してください。
エンドポイント・プロパティには、事前定義と論理の2タイプがあります。
事前定義(上書き)プロパティ
このプロパティはアダプタ・ウィザードで定義され、値は上書き可能で実行時に指定することもできます。
論理プロパティ
ファイル・アダプタまたはFTPアダプタの場合は、物理ディレクトリではなく論理ディレクトリを指定できます。 論理名は、エンドポイント・プロパティとして「エンドポイント・プロパティの選択」ダイアログに表示されます。
さらに、$
をウィザードの値に挿入するか、WSDLファイルを手動で編集して、アダプタ・プロパティを論理プロパティにすることができます。 たとえば、ユーザーがアダプタ・ウィザードで、値として$myName
を指定すると、「エンドポイント・プロパティの選択」ダイアログにはmyName
と表示されます。
Oracle JDeveloperでアダプタ・サービスまたはSOAPサービスを変更するときは、「エンドポイント・プロパティ」パネルで、そのサービスのエンドポイント・プロパティを追加、削除、更新または表示できます。 「アダプタ・サービスの変更」および「SOAPサービスの作成」を参照してください。 Oracle ESB Controlの「サービス」ビューの「プロパティ」タブでも、エンドポイントにアクセスできます。 「Oracle ESB Controlの「サービス」ビュー」を参照してください。
エンドポイント・プロパティは、Oracle JDeveloperでアダプタまたはSOAPサービスのプロパティ・ページを開いて、追加および変更できます。
エンドポイント・プロパティを追加または変更する手順は、次のとおりです。
Oracle JDeveloperの「設計」タブで、アダプタ・サービス・アイコンまたはSOAPサービス・アイコンの上のセクションをダブルクリックし、プロパティ・ページを開きます。 アイコンのリージョンでは、カーソルが手の形になります。
「エンドポイント・プロパティ」パネルでは、サービスのエンドポイント・プロパティを追加、削除、更新または表示できます。
パネルを開くには、「エンドポイント・プロパティ」の横にある+記号をクリックします。 「エンドポイント・プロパティ」パネルには、次のオプションが表示されます。
右上の大きい緑色のプラス記号(+)
「エンドポイント・プロパティの選択」ダイアログが開き、エンドポイント・プロパティをサービスに追加できます。 「エンドポイント・プロパティの選択」ダイアログのリストからプロパティを選択し、「OK」ボタンをクリックして、エンドポイント・プロパティを追加します。 カーソルをプロパティ名の上に置くと、そのプロパティのツールチップが表示されます。
右上の大きい赤色のX記号
選択したエンドポイント・プロパティを削除します。
名前
エンドポイント・プロパティの名前。 カーソルをプロパティ名の上に置くと、そのプロパティのツールチップが表示されます。
値
このフィールドをクリックして、エンドポイント・プロパティの値を入力または更新します。
「File」→「Save」の順に選択して、プロパティ・ページへの変更を保存します。
BPELおよびESBとともにSOA Suiteをインストールしている場合は、図4-6に示すように、BPELからESBサービスへのパートナ・リンクを作成できます。 たとえば、ESBルーティング・サービスを起動するinvokeアクティビティに対して、パートナ・リンクを作成できます。
ESBサービスを起動するBPELからのパートナ・リンクを作成する手順は、次のとおりです。
Oracle JDeveloperの「BPELプロセス」プロジェクトで、「Invoke」アクティビティをコンポーネント・パレットの「Process Activities」から「設計」タブにドラッグ・アンド・ドロップします。
「Invoke」ダイアログの「名前」フィールドに、名前を入力します。
「Invoke」ダイアログで、「パートナ・リンク」フィールドの横にある懐中電灯アイコンをクリックして、「パートナ・リンクの選択」ダイアログを表示します。
「パートナ・リンクの選択」で、「パートナ・リンク」を選択し、棒型アイコンをクリックして「パートナ・リンクの作成」ダイアログを表示します。
「パートナ・リンクの作成」ダイアログで、「名前」フィールドに名前を入力します。
「パートナ・リンクの作成」ダイアログで、懐中電灯アイコンをクリックして「サービス・エクスプローラ」ダイアログを表示します。
「サービス・エクスプローラ」ダイアログで、「Registered ESB Services」ツリーから目的のESBルーティング・サービスを選択し、「OK」をクリックします。
「パートナ・リンクの作成」ダイアログで、リストから「パートナ・ロール」を選択し、「OK」をクリックします。
「パートナ・リンクの作成」ダイアログで、「入力変数」フィールドの横にある棒型アイコンをクリックして、「変数の作成」ダイアログを表示します。
「変数の作成」ダイアログで「OK」をクリックします。
「Invoke」ダイアログで「OK」をクリックします。
BPELプロセスを統合サーバーに正常にデプロイすると、そのBPELプロセスによって、BPELパートナ・リンクに指定したESBサービスが起動されます。
BPELプロセスの作成方法については、『Oracle BPEL Process Manager開発者ガイド』を参照してください。
ESBサービスは、サービスの具体的なWSDL URLを使用して、外部サービスから呼び出すことができます。 具体的なWSDL URLは、図4-7に示すように、Oracle ESB Controlの「サービス」ビューの「定義」タブで確認できます。 ESBサービスの呼出しに使用する外部ツールに具体的なWSDL URLをコピーして貼り付けます。
Oracle JDeveloperのサービス・プロパティ・ページまたはOracle ESB Controlの「定義」タブで、ESBサービスが外部サービスから呼出し可能であることを指定する必要があります。 Oracle JDeveloperのサービス・プロパティ・ページについては、「サービス定義およびルーティング・ルールの概要」を参照してください。 Oracle ESB Controlにあるサービスの「定義」タブについては、「サービス定義の表示」を参照してください。
Oracle Enterprise ManagerでのESBサービスのテスト方法については、「ESBサービスのテスト」を参照してください。