この章では、Oracle Data IntegratorのWebサービスでの使用方法について説明します。
この章では、次の項目について説明します。
Oracle Data Integratorは、サービス指向アーキテクチャ(SOA)への次のエントリ・ポイントを提供します。
図14-1は、異なるタイプのWebサービスが相互作用する方法を示しています。
この図は、データ・サービス、ランタイムWebサービス(パブリックWebサービスおよびエージェントWebサービス)およびOdiInvokeWebServiceツールを含む単純な例を示しています。
データ・サービスおよびランタイムWebサービスのコンポーネントはサードパーティ・アプリケーションによって呼び出されるのに対し、OdiInvokeWebServiceツールはサードパーティWebサービスを呼び出します。
データ・サービスは、データストア(ソースおよびターゲットの両方のデータストア)に含まれるデータ、ならびにチェンジ・データ・キャプチャ・フレームワークによりトラップされた変更内容へのアクセスを可能にします。このWebサービスはOracle Data Integratorによって生成され、Java EEアプリケーション・サーバーにデプロイされます。
パブリックWebサービスは、リポジトリに接続してコンテキストおよびシナリオのリストを取得します。このWebサービスはJava EEアプリケーション・サーバーにデプロイされます。
エージェントWebサービスは、Oracle Data Integratorエージェントに対してシナリオの開始と監視およびセッションの再開を命令します。このWebサービスはJava EEエージェントまたはスタンドアロン・エージェントに組み込まれている点に注意してください。
OdiInvokeWebServiceツールはパッケージで使用され、サードパーティWebサービスのポート上で、特定の操作(BPELプロセスのトリガーなど)を呼び出します。
Oracle Data IntegratorのランタイムWebサービスとデータ・サービスは、2つの異なるタイプのWebサービスです。Oracle Data IntegratorのランタイムWebサービスでは、WebサービスによってOracle Data Integratorの機能にアクセスできますが、データ・サービスはOracle Data Integratorによって生成され、Webサービスを使用してデータにアクセスできます。
データ・サービスは、データストアに含まれるデータ、ならびにチェンジ・データ・キャプチャを使用してこれらのデータストア用に取得された変更内容へのアクセスを可能にする、特殊なWebサービスです。これらのWebサービスはOracle Data Integratorによって自動生成され、アプリケーション・サーバーのWebサービス・コンテナにデプロイされます。
データ・サービスの設定、生成およびデプロイ方法の詳細は、第8章「データ・サービスの使用」を参照してください。
Oracle Data Integratorランタイム・サービスは、サービス指向アーキテクチャ(SOA)でユーザーがOracle Data Integratorの機能を活用できるようにするWebサービスです。これらのWebサービスはサードパーティ・アプリケーションによって開始され、Oracle Data Integratorで開発されたシナリオの開始を管理します。
ODIランタイム・サービスにより各種ODI実行タスク(シナリオの実行、セッションの再開、実行コンテキストおよびシナリオのリストなど)を実行する方法については、19.7項「Webサービスを使用した実行の管理」を参照してください。19.7項では、SOAPリクエストおよびレスポンスの例も示しています。
この項では、Oracle Data IntegratorにおけるサードパーティWebサービスの呼出し方法について説明します。
この項の内容は次のとおりです。
Webサービスは次のように呼び出せます:
Oracle Data IntegratorパッケージでOdiInvokeWebServiceツールを使用: このツールでは、サード・パーティWebサービスを呼び出し、Oracle Data Integratorで処理可能なXMLファイルにレスポンスを保存できます。
データ・サービスのテスト目的: 生成したデータ・サービスが正しく動作しているかどうかをテストする最も簡単な方法は、OdiInvokeWebServiceツールのグラフィカル・インタフェースを使用する方法です。詳細は、14.4.2項「OdiInvokeWebServiceツールの使用」を参照してください。
OdiInvokeWebServiceツールでは、HTTPまたはHTTPSプロトコルを使用してWebサービスを呼び出し、返されたレスポンスをXMLファイルに書き込みます。このツールでは、記述ファイル(WSDL)のURLが提供されるWebサービスのポート上で特定の操作を呼び出します。この操作にSOAPリクエストが必要な場合、リクエスト・ファイルで提供されるか、ツール・コールに直接書き出されます(XMLRequest
パラメータ内)。Webサービス・リクエストのレスポンスは、Oracle Data Integratorで使用可能なXMLファイルに書き込まれます。Webサービス・リクエストの作成方法の詳細は、14.4.3項「統合フローにおけるWebサービスの呼出し」を参照してください。
注意: OdiInvokeWebServiceツールでは、リクエストのSOAPヘッダーのカスタマイズはサポートしていません。したがって、保護されたWebサービスの呼出しはサポートしていません。 |
このツールは、パッケージのツール・ステップで標準のOracle Data Integratorツールとして使用されます。パッケージにおけるツール・ステップの作成方法は10.3.1.4項「Oracle Data Integratorツール・ステップの追加」を、またOdiInvokeWebServiceツール・パラメータの詳細は付録A「OdiInvokeWebService」を参照してください。
OdiInvokeWebServiceツールには、コードを生成するための拡張エディタが用意されています。この拡張エディタでは、次の操作が可能です。
WSDLへの接続
「プロパティ」ペインで指定されたパラメータに加えて、ツールのパラメータを指定する
自動選択されたポートにおける特定の操作を選択し、SOAPエディタでリクエスト・パラメータを指定する
Webサービスの呼出し
SOAPエディタでのWebサービス・レスポンスの閲覧
図14-2では、拡張エディタの概要を示しています。
拡張エディタは、表14-1に説明するセクションで構成されています。
表14-1 拡張エディタの各セクション
セクション | アイコン名 | 図の中の位置 | 説明 |
---|---|---|---|
Webサービス記述 ファイル(WSDL)のURL |
上 |
ここには、WSDLの場所を入力します。 |
|
ポート |
左 |
Webサービスのポートがデフォルトで設定されます。Webサービスで複数のポートを使用できる場合は、適切なポートを選択します。 |
|
![]() |
Webサービスの呼出し |
ツールバー・アイコン |
現在のWebサービスをすぐに呼び出し、SOAPエディタにレスポンスを表示します。 |
|
パネル位置の切替え |
ツールバー・アイコン |
SOAPエディタを垂直または水平に並べて表示します。 |
![]() |
レスポンスXSDのエクスポート |
ツールバー・アイコン |
現在のレスポンスXMLスキーマ記述をファイルに保存します。 |
![]() |
デフォルトのリクエストに戻す |
ツールバー・アイコン |
現在のリクエストを破棄して、デフォルトの空白のリクエスト構造に戻します。 |
![]() |
空のオプション・コンポーネントの削除 |
ツールバー・アイコン |
すべての空のオプション・コンポーネントを問合せから削除します。有効な問合せを作成するために、この操作が必要になる場合があります。 |
![]() |
実行前のクリーンアップ |
ツールバー・アイコン |
「Webサービスの呼出し」をクリックすると、SOAPリクエストにある空のオプション要素が自動的に削除されます。実行時のパッケージ・ステップでは、このチェックボックスは機能しません。 |
![]() |
リクエスト・ファイルの使用 |
ツールバー・アイコン |
SOAPエディタで指定されたパラメータのかわりに、ファイルに格納されたSOAPリクエストを使用します。 |
![]() |
タイムアウト(ミリ秒) |
ツールバー・アイコン |
リクエストの完了を待つ最長期間を指定します。 |
操作 |
選択したポートの操作リスト。 |
||
オプション |
HTTPリクエストのオプション:
|
||
SOAPエディタ |
中央と右 |
SOAPエディタの左パネルまたは「ソース」タブにWebサービス・リクエストが表示され、右パネルにSOAPレスポンスが表示されます。 |
SOAPエディタ
SOAPエディタでは、WebサービスのSOAPリクエストを図を使用して作成し、レスポンスを表示できます。
OdiInvokeWebServiceステップを作成している場合、SOAPエディタに入力されたこのSOAPリクエストはそのステップにより保存されます。
エディタの左部分には問合せの階層構造が表示され、右側にはレスポンスの構造が表示されます。この配置を変更するには、「パネル位置の切替え」をクリックします。SOAPリクエストおよびレスポンスのraw XMLソースは「ソース」タブに表示されます。
エディタでは、リクエストの各要素の値(およびオプションで属性)を入力できます。
警告: 空の要素は、Webサービスにそのまま渡されます。文字列の場合、これは空の文字列に相当します。数値タイプまたは日付タイプの場合、これはエラーの原因となる可能性があります。nullの文字列、数値または日付を送信する場合、 |
オプションの要素はイタリックで表示されます。繰返し可能な要素は、名前の後に...(n*)が付けられます。
任意の要素を右クリックして、次のいずれかの操作を実行できます(可能な場合)。
コンテンツの複製: 要素の構造およびコンテンツをコピーします。
構造の複製: 構造をコピーしますが、すべてのフィールドが空のままとなります。
削除: 要素を削除します。
エクスポート・リクエスト: SOAPリクエスト全体をXMLファイルにエクスポートします。
結果
インタフェースのこの部分は、OdiInvokeWebServiceツール・ステップをパッケージで使用している場合にかぎり、レスポンスをXMLファイルに書き込む方法を制御するために表示されます。
ファイル・モード(-RESPONSE_MODE
): NEW_FILE、FILE_APPEND、NO_FILEのいずれか
結果ファイル(-RESPONSE_FILE
): 書き込む結果ファイルの名前
XMLキャラクタ・セット(-RESPONSE_XML_ENCODING
): XMLファイルに書き込む文字エンコーディングの名前
Javaキャラクタ・セット(-RESPONSE_FILE_CHARSET
): ファイルの書込み時に使用される文字エンコーディングの名前
これらのパラメータの詳細は、A.5.22項「OdiInvokeWebService」を参照してください。
注意: 結果ファイル・パラメータは、実行時にのみ考慮されます。「Webサービスの呼出し」をクリックした際に、結果ファイルは生成されません。 |
OdiInvokeWebServiceツールを使用したWebサービスのコール
Webサービスをコールするには:
パッケージでOdiInvokeWebServiceツール・ステップを作成するか、データストアを右クリックしてコンテキスト・メニューの「Webサービスのテスト」を選択します。
WSDLの場所を入力します。次のいずれかを使用できます。
サーバーにデプロイされたWSDLのURL(例: http://host:8080/services/WSCustomer?wsdl
)
ローカル・ファイルの場所(例: c:/DataServices/WSCustomer.wsdl
)
ポートを選択します(複数のポートが使用可能な場合)。
左側のリストから操作を選択します。
SOAPエディタで、Webサービス・リクエストを入力します。かわりに外部リクエスト・ファイルを使用することもできます。このリクエスト・ファイルはODIで生成できます。ODIを使用したWebサービス・リクエスト・ファイルの生成方法は、リクエスト・ファイルの生成を参照してください。
(オプション)「空白のオプション要素の削除」をクリックして、指定されていないオプション・リクエスト・パラメータを削除します。一部のWebサービスでは、空の要素は無効として処理されます。
「Webサービスの呼出し」をクリックして、Webサービスをすぐに呼び出します。レスポンスはSOAPエディタの右側ペインに表示されます。
OdiInvokeWebServiceツール・ステップを作成している場合、レスポンス・ファイル・パラメータを定義します。
「ファイル」メニューから、「保存」を選択します。
レスポンス・ファイルの処理
OdiInvokeWebServiceツールを使用してWebサービスをコールする場合、レスポンスはXMLファイルに書き込まれます。
このXMLファイルの処理は、次のガイドラインを使用してOracle Data Integratorで実行できます。
Webサービスを一度呼び出し、「レスポンスXSDのエクスポート」オプションを使用してXMLスキーマをエクスポートします。
このXMLスキーマ・ファイルに基づいてレスポンス・ファイルのXMLモデルを作成し、XSDをリバースエンジニアリングしてモデル構造を取得します。
XMLテクノロジの標準Oracle Data Integratorインタフェース・ソースを使用して、レスポンスの情報を処理できます。
XMLファイル処理の詳細は、Oracle Data Integrator接続性およびモジュール・ガイドを参照してください。
注意: Oracle Data Integratorにおいて各XMLファイルはモデルとして定義されます。リクエストまたはレスポンス・ファイルにXMLファイル処理を使用する際に、リクエストまたはレスポンス・ファイルごとにモデルが作成されます。モデルを配置するにはモデル・フォルダを使用することをお薦めします。詳細は、16.2項「フォルダによるモデルの編成」を参照してください。 |
Oracle Data Integratorでは、Webサービス・レスポンスを処理するためのOdiXMLConcatおよびOdiXMLSplitツールが用意されています。これらのツールの使用方法は、付録A「カテゴリごとのODIツール」のXMLの項を参照してください。
リクエスト・ファイルの生成
リクエスト・ファイルを生成するには、レスポンス・ファイルの処理で実行される内容と同様に、XMLドライバを使用することも可能です。
注意: 手動で、またはXMLドライバを使用してリクエスト・ファイルを生成している場合、リクエストは完全なSOAPではなく、簡略化されたXML形式である点に注意してください。テンプレート・リクエストの生成にはSOAPエディタを使用してください。 |
リクエストに対するバインディング・メカニズムの使用
プロシージャでWebサービス・コールを使用する場合、バインディング・メカニズムを使用できます。この方法では、問合せによって返された行ごとにWebサービスをコールし、行の値に基づいてリクエストをパラメータ化できます。詳細は、バインディングのソースおよびターゲット・データを参照してください。