Oracle Warehouse Builderでは、マッピングなどのコア機能をWebサービスとして公開できます。これにより、Webサービスを他のアプリケーションにインポートできます。同様に、他のアプリケーションで公開されたWebサービスをOracle Warehouse Builderにインポートすることもできます。Webサービスは広く受け入れられているXMLベースのオープン・スタンダードを使用して作成されているため、Oracle Warehouse Builder機能をWebサービスとして公開すると、その可視性を高め、多くのアプリケーションからアクセス可能にすることができます。
この章の内容は次のとおりです。
Webサービスは、様々なクライアントからアプリケーションのデータにアクセスする方法を定義する、XMLベースのオープン・スタンダードを使用したアプリケーション・コンポーネントです。これらのクライアントは、様々なプラットフォーム上で稼働していて異なるネットワーク上にあってもかまいません。クライアント/サーバー・モデルの場合、Webサービスはサーバー側にあり、クライアントはトランスポート・プロトコルを使用してサーバーからWebサービスを取得します。
Webサービス・データはメッセージとしてパッケージされ、その形式はSimple Object Access Protocol (SOAP)フレームワークで定義されます。SOAPはネットワーク上でXMLベース・メッセージを転送するトランスポート・プロトコルです。通常、転送にはHTTPを使用します。このため、SOAPベース・メッセージを読み取って解釈できるクライアントはすべて、Webサービス内のデータにアクセスできます。Oracle Warehouse Builderでは、SOAPバージョン1.1および1.2がサポートされています。
Webサービスは、Web Services Description Language (WSDL)を使用して構築されます。WSDLファイルは、Webサービスを記述し、Webサービスを介した通信方法の詳細を指定するXMLファイルです。これにより、トランスポート・プロトコルの詳細およびWebサービスで使用されるメッセージ形式が指定されます。また、Webサービスの操作または機能を定義するポートの詳細が、WSDLファイル内のメタタグとして含まれます。Oracle Warehouse Builderでは、WSDLバージョン1.1がサポートされています。
Webサービスを定義するWSDLファイルの例を次に示します。
<definitions name="PfWebServiceImplService" targetNamespace="http://oracle.wh.jrt.sdk.packaging.dbWebService/" ............................ > <types> </types> <message name="runInput"/> <message name="runOutput"> <part name="return" type="xsd:int"/> </message> ......................... <portType name="PfWebServiceImpl"> <operation name="run"> <input message="tns:runInput" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl" ns1:Action=""/> <output message="tns:runOutput" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl" ns1:Action=""/> </operation> ................................ </portType> <binding name="PfWebServiceImplSoapHttp" type="tns:PfWebServiceImpl"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="run"> <soap:operation soapAction=""/> <input> <soap:body use="literal" namespace="http://oracle.wh.jrt.sdk.packaging.dbWebService/"/> </input> <output> <soap:body use="literal" namespace="http://oracle.wh.jrt.sdk.packaging.dbWebService/" parts="return"/> </output> </operation> ............................. </binding> <service name="PfWebServiceImplService"> <port name="HttpSoap11" binding="tns:PfWebServiceImplSoapHttp"> <soap:address location="REPLACE_WITH_ACTUAL_URL"/> </port> </service> </definitions>
Webサービスを公開すると、Oracle Warehouse BuilderによってWSDLファイルが自動的に生成されます。Webサービスのファンクションは、portType
メタタグ内で定義されます。soap:address location
メタタグは、Webサービスがデプロイされるロケーションを定義します。
Oracle Warehouse Builder機能をWebサービスとして公開すると、同じXMLベースのオープン・スタンダードを使用しているクライアントでこれらの機能を幅広く使用できます。Webサービスとして次の機能を公開できます。
マッピング(コード・テンプレート・ベース・マッピングおよびコード・テンプレート・ベース以外のマッピング)
プロセス・フロー
変換(ファンクション、プロシージャ、パッケージ)
データ監査
モジュールおよび表
注意: 固有のデータベース接続でインポートされる表およびモジュールのみ公開できます。モジュールには、モジュールに関連付けられたチェンジ・データ・キャプチャ・コード・テンプレートを使用する必要があります。表は、CDCの追跡で識別される必要があります。 |
実行時にWebサービスに渡すことができる3つのタイプのパラメータがあります。
カスタム・パラメータ(custom_params): PL/SQLマッピング、プロセス・フローおよびデータ監査に基づくWebサービスの実行中に入力する必要がある入力パラメータ。たとえば、入力パラメータの入力が必要なマッピングに基づくWebサービスを作成する場合、Webサービスの実行中にカスタム・パラメータを使用して入力する必要があります。
システム・パラメータ(system_params): Oracle Warehouse Builderのオブジェクトに構成できるパラメータ。たとえば、マッピングの場合、バルク・サイズ、監査レベルなどのランタイム・パラメータを構成できます。マッピングに基づくWebサービスの実行中に、これらの値がシステム・パラメータとして渡されます。システム・パラメータは、PLS/SQLマッピング、プロセス・フローおよびデータ監査に基づくWebサービスに適用されます。
OWBパラメータ(owb_params): コード・テンプレート・マッピングおよびCDCオブジェクト(コントロール・センター・エージェントで実行されるため)に基づくWebサービスで使用されます。
様々なパラメータの詳細は、Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイドを参照してください。
Webサービスとして公開できる各オブジェクトでは、Webサービスに次の操作およびパラメータが生成されます。
コード・テンプレート以外のマッピング、プロセス・フローおよびデータ監査: 次の操作を使用できます。
run()
: パラメータを使用しないでWebサービスを実行します。
runWithSystemParam(string system_params)
: システム・パラメータを使用して、Webサービスを実行します。
runWithCustomParam(string custom_params)
: カスタム・パラメータを使用して、Webサービスを実行します。
runWithParams(string system_params, string custom_params, boolean isAsync)
: システム・パラメータおよびカスタム・パラメータを使用して、Webサービスを実行します。Async値がtrue
に設定されると、バックグラウンドでプロセスが実行されます。
コード・テンプレート・マッピング: 次の操作を使用できます。
runWithoutParams()
: パラメータを使用しないでWebサービスを実行します。
runWithOwbParams(string owb_params):
Oracle Warehouse Builderパラメータを使用してWebサービスを実行します。
パラメータを指定する形式はPARAM=x
です。複数のパラメータがカンマで区切られます。たとえば、マッピングのシステム・パラメータを次のように指定できます。
OPERATING_MODE=SET_BASED,AUDIT_LEVEL=NONE
注意: Webサービスとしてコード・テンプレート・ベース・マッピングを公開すると、マッピングのコードがWebサービス内に埋め込まれます。したがって、このようなマッピングを変更する場合、Webサービスを再デプロイする必要があります。WebサービスとしてPL/SQLマッピングなどのコード・テンプレート・ベース以外のマッピングを公開する場合、マッピングのコードはWebサービス内に埋め込まれません。かわりに、コードの参照のみがWebサービスに含まれます。したがって、マッピングを変更する場合、マッピングのみを再デプロイする必要があります。Webサービスを再デプロイする必要はありません。 |
変換: 変換演算子に基づくWebサービスの場合、操作はファンクションの操作と同じです。つまり、同じファンクション名およびパラメータが共有されます。
モジュールおよび表(CDCベース): 一貫性セットのCDCでは、次のモジュール・コマンドを使用します。
start_cdc()
: CDCインフラストラクチャを設定します。
drop_cdc()
: CDCインフラストラクチャを削除します。
subscribe(string subscriber_name)
: サブスクライバをこのCDCに追加します。
unsubscribe(string subscriber_name)
: CDCからサブスクライバを削除します。
extend_window()
: 一貫性ウィンドウは、参照整合性に違反することなくinsert
、update
、delete
を実行できる一貫性セットのすべての表における使用可能な変更の範囲です。「ウィンドウの拡張」操作を行うと、前回の「ウィンドウの拡張」
操作以降に取得された新しい変更を考慮してこのウィンドウが計算されます。
lock_subscriber(string subscriber_names)
: ウィンドウの拡張は一貫性セット全体に適用されますが、サブスクライバは変更を個別に使用します。この操作では、一貫性ウィンドウの変更のサブスクライバ固有のスナップショットを実行します。このスナップショットには、サブスクライバにまだ使用されていない一貫性ウィンドウ内のすべての変更が含まれます。
unlock_subscriber(string subscriber_names)
: この操作を実行すると、サブスクライバのlock subscriber
操作中にロックされた変更の使用がコミットされます。この操作は、サブスクライバですべての変更が処理された後にのみ実行する必要があります。
purge_cdc()
: すべてのサブスクライバがサブスクライブした変更を使用した後、余分なエントリがキャプチャ表に残る場合があるので削除する必要があります。この作業は、ジャーナルのパージ操作で実行します。
一貫性セットではないCDCの場合、表およびモジュールの両方で、Start
、Drop
、Subscribe
およびUnsubscribe
コマンドを使用できます。Lock Subscriber
およびUnlock Subscriber
を使用できますが、使用されません。
Webサービスは、アプリケーション・サーバー・モジュールに格納されます。Webサービスの作成には、次のタスクが含まれます。
Webサービスは、アプリケーション・サーバー・モジュールに作成されます。アプリケーション・サーバー・モジュールを作成する手順は、次のとおりです。
プロジェクト・ナビゲータで、「アプリケーション・サーバー」を右クリックして、「新規アプリケーション・サーバー」をクリックします。
モジュールの作成ウィザードが表示されます。
「次へ」をクリックして、名前と説明ページに進みます。名前と説明(オプション)を指定します。
「次へ」をクリックして、接続情報ページへ進みます。「アプリケーション・サーバー・ロケーションの指定」の説明に従って、ロケーションの詳細を指定します。
詳細を確認した後、「次へ」をクリックし、サマリー・ページの「終了」をクリックします。
これにより、新しく作成したモジュールが「アプリケーション・サーバー」ノードに表示されます。このノードには、「Webサービス」と「Webサービス・パッケージ」の2つのサブノードがあります。
グローバル・ナビゲータの「パブリック・アプリケーション・サーバー」にアプリケーション・サーバー・モジュールを作成することもできます。
アプリケーション・サーバー・モジュールの作成中またはWebサービスのデプロイ中に、ロケーション情報を指定できます。
Webサービスを次の場所にデプロイできます。
OC4Jスタンドアロン
Oracle Application Server
ロケーション情報を指定する前に、コントロール・センター・エージェント(CCA)が実行されていることを確認します。WindowsおよびUNIXシステムのコントロール・センター・エージェントの起動および停止の詳細は、「コントロール・センター・エージェントの起動および停止」を参照してください。
ロケーションを作成する手順は、次のとおりです。
接続情報ページで、「編集」をクリックして「エージェントのロケーションの編集」ダイアログ・ボックスを開き、次の詳細を提供します。
ユーザー名: 十分な権限を持つoc4jadmin
ユーザーまたはアプリケーション・サーバー・ユーザー。
パスワード: ccastart
ファイルの実行中にoc4jadmin
ユーザーに設定されるパスワード。
ホスト: OC4Jまたはアプリケーション・サーバーが格納されるホスト。
ポート: サーバーにアクセスするポート番号。デフォルト値は23791です。
ポート・タイプ: OC4JスタンドアロンのRMIポートおよびOracle Application ServerのOPMN。
インスタンス: OC4Jインスタンス名。Oracle Application Serverにのみ提供されます。
アプリケーション名: デフォルト値はjrt
に設定されます。
HTTPポート: ブラウザでWebサービスにアクセスする場合、このポートが使用されます。デフォルト値は8888に設定されます。
「接続テスト」をクリックして、接続詳細を確認します。
有効なデプロイメント・ロケーションを指定しないと、Webサービスはデプロイできません。デプロイメント・ロケーションを指定せずにWebサービスをデプロイしようとすると、Oracle Warehouse Builderで「エージェントのロケーションの編集」ダイアログ・ボックスが表示されます。Webサービスをデプロイする前に、接続の詳細を指定してください。
アプリケーション・サーバー・モジュール内で、スタンドアロンのWebサービスを作成するか、Webサービス・パッケージにWebサービスを作成できます。
Webサービス・パッケージを作成する手順は、次のとおりです。
「Webサービス・パッケージ」を右クリックして、「新規Webサービス・パッケージ」をクリックします。
「Webサービス・パッケージの作成」ダイアログ・ボックスが表示されます。
名前および説明(オプション)を指定して、「OK」をクリックします。
新しく作成したWebサービス・パッケージを「Webサービス・パッケージ」ノードで使用できます。
「Webサービス・ウィザードに進む」オプションを選択した場合、Webサービスの作成ウィザードが表示され、個別のWebサービスを作成できます。
Webサービスを作成する手順は、次のとおりです。
「Webサービス」を右クリックして、「新規Webサービス」をクリックします。
Webサービスの作成ウィザードが表示されます。
「次へ」をクリックして、名前と説明ページに進みます。名前と説明(オプション)を指定します。
「次へ」をクリックして、実装の定義ページへ進みます。Webサービスとして公開するオブジェクトを選択します。
「次へ」をクリックして、仕様のレビューページへ進みます。
「ソースの表示」をクリックして、Webサービスに生成されるWSDLファイルを表示します。
「終了」をクリックして、Webサービスを作成します。
新しく作成したWebサービスを「Webサービス」ノードで使用できます。
グローバル・ナビゲータで使用できる「パブリック・アプリケーション・サーバー」ノードを使用して、Webサービスをインポートできます。
Webサービスをインポートするには、最初にアプリケーション・サーバー・モジュールを作成して、Webサービスをこのモジュールにインポートする必要があります。
アプリケーション・サーバー・モジュールを作成する手順は、次のとおりです。
グローバル・ナビゲータで、「パブリック・アプリケーション・サーバー」を右クリックして、「新規アプリケーション・サーバー」を選択します。
「モジュールの作成」ダイアログ・ボックスが表示されます。
モジュールの名前を指定します。
新しく作成したモジュールを「パブリック・アプリケーション・サーバー」ノードで使用できます。
Webサービスをインポートする手順は、次のとおりです。
「アプリケーション・サーバー」ノードを右クリックして、「新規Webサービス」を選択します。
Webサービスの作成ウィザードが表示されます。
名前と説明ページに、Webサービスのロケーションの詳細を入力します。
ローカル・システムにデプロイするWebサービスをインポートできます。URL形式を使用してロケーションの詳細を指定するか、ロケーションを参照できます。
Webサービスをインポートした後、Webサービスを実行してファンクションを実行できます。Webサービスの実行の詳細は、Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイドを参照してください。
Webサービスの作成、公開および実行の詳細は、Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイドを参照してください。