この章では、Oracle Data Integratorを使用してデータ・サービスを構成および生成する方法について説明します。データ・サービスを使用すると、Webサービス・インタフェースを介してデータにアクセスできます。また、Oracle Data Integratorのチェンジ・データ・キャプチャ機能を使用して取得した変更にアクセスできます。
この章では、次の項目について説明します。
データ・サービスは特殊なWebサービスで、データストアのデータにアクセスしたり、チェンジ・データ・キャプチャを使用して、それらのデータストアに対して取得された変更にアクセスできます。これらのWebサービスは、Oracle Data Integratorによって自動的に生成され、アプリケーション・サーバーのWebサービス・コンテナにデプロイされます。
生成されたデータ・サービスは、次の場所にデプロイできます。
Java API for XML Web Service(JAX-WS)を実装しているWebサービス・スタック(Oracle WebLogic Server、IBM WebSphereなど)
アプリケーション・サーバーにインストールされているApache Axis2
警告: このバージョンでは、Axis2は推奨されていません。Axis2を使用しているユーザーは、データ・サービスの実装を移行してください。そのためには、データ・サービスをJAX-WSコンテナで再生成して再デプロイします。 |
データ・サービスは、Webサービス・コンテナ(Webサービス・スタックがインストールされているアプリケーション・サーバー)にデプロイします。このWebサービス・コンテナは、Axis2またはJAX-WSテクノロジに関連付けられたトポロジにデータ・サーバー形式で宣言する必要があります。
データ・サービスをアプリケーション・サーバーにデプロイする際は、そのアプリケーション・サーバーのデータにアクセスするために、データ・ソースもトポロジに定義してデプロイするか、そのアプリケーション・サーバーに作成する必要があります。
データ・サービスを設定するには、次の各項で説明する手順を実行します。
Oracle Data Integratorでデータ・サービスをWebサービス・コンテナにデプロイするには、そのWebサービス・コンテナをトポロジ内でデータ・サーバーとして宣言する必要があります。
注意: Webサービス・コンテナとデータを格納するサーバーを混同しないように注意してください。どちらもOracle Data Integratorではデータ・サーバーとして宣言されますが、前者はデータを格納しません。それらはデータ・サービスを公開する目的にのみ使用されます。 |
Oracle Data Integratorで宣言されたWebサービス・コンテナでは、次の3つのモードのいずれかを使用してWebサービスをデプロイします。
ファイルをサーバーに直接コピーします(サーバーに対するファイル・アクセス権がある場合)。
FTPを使用してサーバーにアップロードします。
Axis2のWebサービスのアップロードメソッドを使用してアップロードします。
Webサービス・コンテナを構成するための次の手順は、使用するWebサービス・コンテナのタイプおよびデプロイ・モードによって異なります。
Webサービス・コンテナを構成するには:
トポロジ・ナビゲータで、「物理アーキテクチャ」パネルの「テクノロジ」ノードを展開します。
Webサーバー・コンテナに対応するテクノロジ(Axis2またはJAX-WS)を選択します。Oracle WebLogic ServerまたはJEE 5と互換性のある別のアプリケーション・サーバーを使用している場合は、JAX-WSを使用します。
右クリックして「新規データ・サーバー」を選択します。
「定義」タブで、次のフィールドに値を入力します:
名前: Oracle Data Integratorに表示されるデータ・サーバーの名前。
データ・サーバーの名前を付ける場合は、命名標準の<TECHNOLOGY_NAME>_<SERVER_NAME>
を使用することをお薦めします。
公開されたサービスのベースURL: Webサービスを使用できるベースURLを入力します。Axis2の場合は、http://<host>:<HTTP Port>/axis2/services/
で、Oracle WebLogic Serverの場合は、http://<host>:<HTTP Port>/
です。
次のいずれかのデプロイ・オプションを選択します。
Webサービスをディレクトリへ保存: Webサービスを作成するディレクトリ。Webサービスを個別にコンテナにデプロイする場合は、アプリケーション・サーバー上のネットワーク・ディレクトリまたはローカル・ディレクトリを使用できます。
WebサービスをFTPによりアップロード: 生成されたWebサービスをコンテナにアップロードする場合にこのオプションを選択します。アップロード操作を実行するには、「FTP URL」、および「ユーザー名」と「パスワード」を入力する必要があります。
Axis2によるWebサービスのアップロード: Axis2 Webサービスのアップロード・メカニズムを使用して、生成されたWebサービスをコンテナにアップロードする場合にこのオプションを選択します。このオプションが表示されるのは、Axis2コンテナのみです。アップロード操作を実行するには、「Axis2 WebアプリケーションのベースURL」(通常は、http://<host>:<HTTP Port>/axis2/axis2admin/
)、およびAxis2の「ユーザー名」と「パスワード」を入力する必要があります。
「ファイル」メニューから「保存」をクリックします。データ・サーバーが物理アーキテクチャに表示されます。
このデータ・サーバーを選択し、右クリックして「新規物理スキーマ」を選択します。新規の物理スキーマのエディタが表示されます。「コンテキスト」タブで、新規物理スキーマの論理スキーマを作成するか、新規物理スキーマを既存の論理スキーマに関連付けます。論理スキーマを作成する手順は、第4章「トポロジの設定」を参照してください。
「ファイル」メニューから「保存」をクリックします。
必要なことは、Webコンテナの物理スキーマを1つ構成することです。デプロイするコンテナの条件をコンテキストで設定するため、ここでは論理スキーマ/コンテキスト/物理スキーマの関連付けが重要です。
Oracle Data Integratorで生成するデータ・サービスには、ソースおよびターゲットの接続情報が含まれていません。かわりに、データ・サービスは、Webサービス・コンテナ内またはアプリケーション・サーバー上に定義されているデータ・ソースを使用します。これらのデータ・ソースには、データへのアクセスに必要な接続プロパティが含まれています。各データ・ソースは、Oracle Data Integratorトポロジ内にすでに定義されているデータ・サーバーに対応している必要があります。
データ・ソースを設定するには、次のいずれかを実行します。
アプリケーション・サーバー・コンソールからデータ・ソースを構成します。詳細は、アプリケーション・サーバーのドキュメントを参照してください。
コンテナがOracle WebLogic Serverの場合は、Oracle Data Integratorからデータ・ソースをデプロイします。データ・ソースのデプロイの詳細は、第4章「トポロジの設定」を参照してください。
データ・サービスを構成するには、最初にモデルを作成して移入する必要があります。詳細は、第5章「モデルの作成およびリバースエンジニアリング」を参照してください。
適切なサービス・ナレッジ・モジュール(SKM)をプロジェクトの1つにインポートしておく必要があります。SKMには、データ・サービスを生成するコード・テンプレートが含まれています。KMのインポートの詳細は、第9章「統合プロジェクトの作成」を参照してください。
データ・サービスのモデルを構成するには:
デザイナ・ナビゲータの「モデル」ツリーで、モデルを選択します。
そのモデルをダブルクリックし、編集します。
「サービス」タブで、次の各フィールドに値を入力します。
アプリケーション・サーバー: すでに定義したコンテナに対応する論理スキーマを選択します。
ネームスペース: WebサービスWSDLで使用するネームスペースを入力します。
パッケージ名: Webサービスを格納するために生成するJavaパッケージの名前。通常、この名前の形式はcom.<company name>.<project name>
です。
データソースの名前: コンテナに定義されている名前。使用するアプリケーション・サーバーに応じて、データ・ソースはローカルまたはグローバルになります。
データ・ソースがグローバルの場合は、「データソース名」フィールドにデータ・ソース名のみ入力する必要があります。
データ・ソースがローカルの場合は、データ・ソース名の前にjava:/comp/env/
を付ける必要があります。
OC4Jはデフォルトでグローバル・データ・ソースを使用し、Tomcatはローカル・データ・ソースを使用します。詳細は、アプリケーション・サーバーのドキュメントを参照してください。
データ・サービスの名前: この名前は、モデル・レベルでのデータ・サービス操作に使用されます。後でデータストアごとにデータ・サービス名を定義することもできます。
リストからサービス・ナレッジ・モジュール(SKM)を選択し、そのオプションを設定します。KMとそのオプションの詳細は、Oracle Fusion Middleware Oracle Data Integrator接続性およびナレッジ・モジュール・ガイドを参照してください。プロジェクトにインポートされたSKMのみがこのリストに表示されます。
「デプロイ済データストア」タブに移動します。
データ・サービスとともに公開するすべてのデータストアを選択します。データストアごとに、「データ・サービス名」および「公開済エンティティ」の名前を入力します。
「ファイル」メニューから「保存」をクリックします。
必要に応じて、生成されたデータ・サービスの構成をデータストア・レベルおよび列レベルで微調整することもできます。
たとえば、許可する操作を列ごとに指定できます。このオプションの重要な使用方法の1つは、データ・サービスを介して書き込まれないように列をロックすることです。
データ・サービス・オプションをデータストア・レベルで構成するには:
デザイナ・ナビゲータの「モデル」ツリーで、データストアを選択します。
このデータストアをダブルクリックし、編集します。
「サービス」タブを選択します。
データストアをデプロイする場合は、「データ・サービスとしてデプロイ」を選択します。
データストアの「データ・サービス名」および「公開済エンティティ」の名前を入力します。
「ファイル」メニューから「保存」をクリックします。
データ・サービス・オプションを列レベルで構成するには:
デザイナ・ナビゲータの「モデル」ツリーで、列を選択します。
この列をダブルクリックし、編集します。
「サービス」タブを選択します。
許可する操作を「選択」、「挿入」、「削除」から選択します。「挿入」アクションには、「更新」アクションが含まれます。
「ファイル」メニューから「保存」をクリックします。
モデル、データ・ソースおよびコンテナを構成した後は、データ・サービスを生成してデプロイできます。
モデルにデータ・サービスを生成すると、モデル・レベルのデータ・サービスおよび選択したデータストアのデータ・サービスがモデルに生成されます。
モデルにデータ・サービスを生成するには:
デザイナ・ナビゲータの「モデル」ツリーで、モデルを選択します。
右クリックして「サービスの生成」を選択します。「データ・サービスを生成中」ウィンドウが開きます。
「データ・サービスを生成中」ウィンドウで、次の各フィールドに値を入力します。
生成されたデータ・サービスを格納: 生成されたソース・コードおよびコンパイルされたWebサービスがここに配置されます。このディレクトリは、生成後に削除できる一時的な場所です。データ・サービスに対して生成されたソース・コードをここで確認できます。
コンテキスト: データ・サービスを生成してデプロイするコンテキスト。このコンテキストの選択は、次の3つに影響します。
生成時のJDBC/Javaデータ型バインディングの決定
データの提供に使用される物理スキーマの決定
デプロイ先の物理Webサービス・コンテナの決定
生成フェーズ: 1つ以上の生成フェーズを選択します。通常のデプロイでは、3つのフェーズすべてを選択する必要があります。ただし、新規のSKMをテストする場合などには、生成フェーズのみを実行すると便利です。各フェーズの意味は、次の表を参照してください。
「OK」をクリックし、データ・サービスの生成およびデプロイを開始します。
フェーズ | 説明 |
---|---|
コードの生成 |
このフェーズは、次の操作を実行します。
|
コンパイル |
このフェーズは、次の操作を実行します。
|
デプロイメント |
このフェーズは、次の操作を実行します。
|
非推奨 10.xスタイルのWSDLの生成 |
非推奨 これは、生成フェーズではありません。Axis2 Webサービスの生成時に使用できるオプションです。10g ODI WSDLと互換性のあるWebサービスを生成する場合に、このオプションを選択します。 |
Oracle Data Integratorで生成されるデータ・サービスには、モデル・レベルのサービスとデータストア・レベルのサービスがあります。次に、これらのサービスについて説明します。
モデル・レベルのサービス
モデルが一貫性セットCDCに対応している場合、データ・サービスはモデル・レベルで生成されます。
モデル・レベルでは、次のサービスを使用できます。
extend Window(パラメータなし): ウィンドウの拡張操作を実行します。
lock(サブスクライバ名): 名前付きサブスクライバの一貫性セットをロックします。複数のサブスクライバの一貫性セットをロックするには、複数のOdiInvokeWebServiceステップを使用するなどして、このサービスを複数回コールします。
unlock(サブスクライバ名): 名前付きサブスクライバの一貫性セットをロック解除します。
purge(パラメータなし): 使用された変更をパージします。
これらの操作の詳細は、第6章「チェンジ・データ・キャプチャの使用」を参照してください。
データストア・レベルのサービス
生成された各データ・サービスによって提供される操作の範囲は、その生成に使用されたSKMに応じて異なります。Oracle Data Integratorに付属するSKMでは、複数の共通プロパティを共有しています。ほとんどの場合、公開されるエンティティの名前が各操作の名前の一部となります。次に、公開エンティティCustomerを使用した例を示します。
データストア・レベルでは、次の操作を使用できます。
単一のエンティティに対する操作。これらの操作では、主キーの値を指定することで単一のレコードを操作できます。新規行が存在する場合は、その行を記述する他のフィールドを指定する必要があります。例: addcustomer、getcustomer、deletecustomer、updatecustomer。
フィルタで指定されたエンティティ・グループに対する操作。これらの操作では、1つまたは複数のフィールドの値を指定してフィルタを定義し、各行に追加された変更に対応する他の値をオプションで指定します。通常、戻される行の最大数も指定できます。例: getcustomerfilter、deletecustomerfilter、updatecustomerfilter。
エンティティのリストに対する操作。このリストは、前述の単一のエンティティの場合と同様に、個々のエンティティを複数指定することで作成します。例: addcustomerlist、deletecustomerlist、getcustomerlist、updatecustomerlist。
生成されたデータ・サービスをテストする最も簡単な方法は、OdiInvokeWebService Oracle Data Integratorツールのグラフィカル・インタフェースを使用することです。詳細は、第15章「Oracle Data IntegratorでのWebサービスの使用」を参照してください。