Webサービスは、エンタープライズ・アプリケーションを統合するための広く使用されているサービス指向アーキテクチャ(SOA)アプローチの基礎です。Webサービスは、業界標準のメカニズムを使用し、プロバイダのプラットフォーム、ロケーション、またはサービス実装に依存することなく、リモート・コンテンツおよびアプリケーション機能に簡単にアクセスできます。
Oracle Warehouse BuilderベースのソリューションはSOAベースのアーキテクチャに完全に参加できます。特定のOracle Warehouse BuilderオブジェクトをWebサービスとして公開することができるため、他の開発者が業界標準を使用してこれらのオブジェクトで定義した機能を活用できます。
この章の内容は次のとおりです。
Webサービスとは、ネットワークを介してコンピューティング・リソースまたはサービスにアクセスするための標準的でベンダー非依存の方法を提供するように設計されたソフトウェア・システムです。これは、オープンなXMLベースの標準規格およびトランスポート・プロトコルを使用して、コール側クライアントとデータを交換します。
Webサービスは、通常、次から構成されます。
Webサービスの公開されているインタフェース定義。クライアントがサービスに送信できるメッセージとWebサービスがコール元に返すレスポンスを説明しています。
インタフェースで公開される機能を提供する実装。
Webサービスのコール元はプログラミング言語、アプリケーション・サーバー技術またはデータベースの選択など基盤となる実装の詳細に依存しません。公開されたインタフェースでは、コール元がWebサービスを消費するために必要なすべての情報を説明します。
実装の違いはコール元に公開されないため、Webサービスでは異なる技術ベンダーのソフトウェア・コンポーネントを簡単に統合できます。Webサービスに基づくソリューションの構築アプローチは一般にサービス指向アーキテクチャ(SOA)と呼ばれます。
Webサービスを構築するには複数の共通のアプローチがありますが、エンタープライズ・コンピューティングでは、Webサービスは、通常、XMLベースの標準Simple Object Access Protocol(SOAP)およびWeb Services Description Language(WSDL)を使用してやり取りします。
Simple Object Access Protocol(SOAP)
Simple Object Access Protocol(SOAP)は、コンピュータ・ネットワーク上でXMLベースのメッセージを交換するためのプロトコルであり、通常はHTTPを使用します。SOAPはWebサービス・スタックの基本レイヤーであり、抽象度の高いレイヤーの構築を可能にする基本的なメッセージング・フレームワークを提供します。これを使用して、Webサービス・リクエストの送信およびWebサービス・レスポンスの受信を行います。
Web Services Description Language(WSDL)
Web Services Description Language (WSDL)は、Webサービスを使用して通信する方法に関する、XMLベースのサービスの説明です。次の情報が含まれています。
Webサービスの目的とロケーション(リモート・コンピュータ上)
Webサービスで実行できる操作
各操作の入力パラメータおよび戻り値
Webサービスとの対話に必要なプロトコル・バインディングおよびメッセージ・フォーマット
サポートされている操作およびメッセージの概要が説明され、その後に、具体的なネットワーク・プロトコルとメッセージ・フォーマットに関連付けられています。
Webサービスでは次の利点を提供します。
サービス指向アーキテクチャ(SOA)のサポート
アプリケーション機能の機能をアプリケーション開発者どうしで共有できる
データ統合プロセスを呼び出すサービスを構築できる
他のユーザーが作成したアプリケーション・ロジックを再利用できるため、アプリケーションを構築できる
Oracle Warehouse BuilderではSOAP標準およびWSDL標準を使用してWebサービスの統合がサポートされるため、SOAベースのエンタープライズ・アーキテクチャに完全に統合できます。Oracle Warehouse Builderに慣れている開発者は、既存のツール、コードおよびスキル・セットを使用してデータ統合設計でWebサービスベースのソリューションを作成して、活用できます。たとえば、Oracle BPELプロセス・マネージャなどの製品に基づくより大きなソリューションにETL設計を統合できます。
関連項目: Webサービスの概念の詳細は、『Oracle Warehouse Builderソースおよびターゲット・ガイド』を参照してください。 |
Oracle Warehouse Builderでは次のWebサービス関連の機能がサポートされます。
他のシステムが起動または消費できるSOAPベースのWebサービスとしてOracle Warehouse Builder ETLジョブを公開。
「Webサービスの公開について」を参照してください。
Oracle Warehouse Builder ETL設計以外で作成された機能を公開するWebサービスの呼出し。
「Webサービスの消費について」を参照してください。
Oracle Warehouse Builderベースの設計をSOAベースのソリューションに完全に参加させることができる2つの機能領域があります。
Webサービスはデザイン・センターのアプリケーション・サーバー・モジュール内に定義されます。アプリケーション・サーバー・モジュールは、Webサービスのデプロイ先となるロケーションに関連付けられます。これには、WebサービスおよびWebサービス・パッケージが格納されます。Webサービス・パッケージは一連のWebサービスを含んでおり、主に関連するWebサービスをグループ化するために使用されます。
既存のOracle Warehouse Builderオブジェクトに基づいてWebサービスを定義するには、プロジェクト・ナビゲータの「アプリケーション・サーバー」ノードを使用します。グローバル・ナビゲータで公開アプリケーション・サーバー・ノードを使用して、公開Webサービスを定義します。
Oracle Warehouse Builderを使用して設計したETLプロセスを、他のアプリケーション開発者がWebサービスの形式で使用できるようにするプロセスを、Webサービスの公開と呼びます。Webサービスを公開するには、Webサービスに関する情報を含むWSDLファイルを作成し、このWSDLファイルをリモート・アクセスで使用できるようにする必要があります。
Oracle Warehouse Builderを使用してWebサービスを公開する場合、機能をWebサービスとして公開するオブジェクトを選択する必要があります。コード・ジェネレータでは必要なWSDLファイルが生成されます。
特定のOracle Warehouse Builderオブジェクトを使用して定義されたETLプロセスは、これらのオブジェクトをWebサービスとして公開すると、他のアプリケーション開発者が使用できるようになります。Oracle Warehouse BuilderオブジェクトをWebサービスとして公開すると、他の開発者はこのWebサービスにリモートでアクセスし、このオブジェクトに定義された機能を使用できます。Webサービスはオープンな業界標準のメカニズムを使用しているので、開発者がOracle Warehouse Builderをインストールしたり、Oracle Warehouse Builderの仕組みに精通している必要はありません。
次のOracle Warehouse Builderオブジェクトに基づいてWebサービスを作成できます。
コード・テンプレート(CT)マッピングを含むマッピング
プロセス・フロー
変換
データ監査
チェンジ・データ・キャプチャ用の表またはモジュール
Oracle Warehouse Builderオブジェクトに基づいてWebサービスを作成する方法
Oracle Warehouse Builderオブジェクトに基づいてWebサービスを作成するには、次のいずれかの方法を使用します。
Oracle Warehouse BuilderオブジェクトをWebサービスとして公開します。
Webサービスの作成ウィザードを使用してWebサービスを定義します。次に、Webサービスを生成し、デプロイします。
Webサービスの作成の詳細は、「Oracle Warehouse Builderオブジェクトに基づいてWebサービスを作成する手順」を参照してください。
「URLに基づくWebサービスの公開手順」の説明に従ってURLに基づくWebサービスを公開することもできます。
注意: データ・ウェアハウスの存続期間中に、Webサービスが基づいているオブジェクトの定義が変更する可能性があります。これらの変更をWebサービスに伝搬するには、「Webサービスのデプロイ」に説明する手順を使用してWebサービスを再デプロイします。プロセス・フローで使用するWebサービスを修正し、再デプロイする場合は、ensure that you synchronize the Web service as described in 「Webサービスのアクティビティと参照Webサービスとの同期」. |
Webサービスでサポートされているバージョン
表16-1では、Oracle Warehouse Builderがサポートする標準および製品のバージョンを示します。
表16-1 Webサービスの標準および製品のサポートされているバージョン
標準または製品 | バージョン |
---|---|
WSDL |
1.1 |
SOAP |
1.1, 1.2 |
OC4Jスタンドアロン |
10g以降 |
Oracle Application Server |
10g以降 |
WebサービスとしてOracle Warehouse Builderオブジェクトを公開する手順
プロジェクト・ナビゲータからOracle Warehouse BuilderオブジェクトをWebサービスとして簡単に公開できます。Webサービスとして公開するオブジェクト(マッピング、プロセス・フロー、データ監査または変換)を右クリックし、「Webサービスとして公開」を選択します。既存のアプリケーション・サーバー・モジュールおよびWebサービス・パッケージを含むアプリケーション・サーバーまたはWebサービス・パッケージの選択ダイアログ・ボックスが表示されます。Webサービスとして公開するアプリケーション・サーバー・モジュールまたはWebサービス・パッケージを選択します。アプリケーション・サーバー・モジュールまたはWebサービス・パッケージの下にある選択したオブジェクトに基づいてWebサービスが作成され、Webサービスが公開されます(アプリケーション・サーバーにWebサービスがデプロイされます)。
Oracle Warehouse Builderオブジェクトに基づいてWebサービスを作成する手順
次の手順を使用して、Oracle Warehouse Builderオブジェクトに基づくWebサービスを公開します。
アプリケーション・サーバー・モジュールまたはそれに関連付けられるロケーションをまだ作成していない場合は、プロジェクト・ナビゲータでそれらを作成します。アプリケーション・サーバー・モジュールはWebサービスおよびWebサービス・パッケージのセットのコンテナです。
関連項目: アプリケーション・サーバー・モジュールの作成の詳細は、『Oracle Warehouse Builderソースおよびターゲット・ガイド』を参照してください。 |
「Oracle Warehouse Builderオブジェクトに基づいてWebサービスを作成する方法」の説明に従ってWebサービスを作成します。
「Webサービスの検証」の説明に従ってWebサービスを検証します。
「Webサービスの生成」の説明に従ってWebサービスを生成します。
「Webサービスのデプロイ」の説明に従ってWebサービスをデプロイします。
「Webサービスの実行」の説明に従ってWebサービスを実行することでWebサービスで定義されている機能を使用できます。
URLに基づくWebサービスの公開手順
次のURLオブジェクトに基づいてWebサービスを公開する手順を使用します。
まだ作成していない場合は、グローバル・ナビゲータで、「パブリック・アプリケーション・サーバー」ノードおよび関連ロケーションで公開アプリケーション・サーバー・モジュールを作成します。公開アプリケーション・サーバー・モジュールはWebサービスのセットのコンテナです。
関連項目: 公開アプリケーション・サーバー・モジュールの作成の詳細は、『Oracle Warehouse Builderソースおよびターゲット・ガイド』を参照してください。 |
「URLに基づくWebサービスの作成」の説明に従ってWebサービスを作成します。
「Webサービスの検証」の説明に従ってWebサービスを検証します。
「Webサービスの生成」の説明に従ってWebサービスを生成します。
「Webサービスのデプロイ」の説明に従ってWebサービスをデプロイします。
Webサービス・パッケージはWebサービスのセットのコンテナです。Webサービス・パッケージを使用して、関連するWebサービスのセットをグループ化します。Webサービス・パッケージには関連付けられているロケーションがないため、このパッケージが含むアプリケーション・サーバー・モジュールの同一のロケーション詳細を使用します。
グローバル・ナビゲータではなくプロジェクト・ナビゲータでのみ、Webサービス・パッケージを作成できます。
Webサービス・パッケージを作成する手順は、次のとおりです。
Webサービス・パッケージを作成するプロジェクト・ノードを開きます。
作成していない場合は、Webサービス・パッケージを含むアプリケーション・サーバー・モジュールを作成します。
関連項目: アプリケーション・サーバー・モジュールの作成の詳細は、『Oracle Warehouse Builderソースおよびターゲット・ガイド』を参照してください。 |
Webサービス・パッケージを作成するアプリケーション・サーバー・ノードを開きます。Webサービス・パッケージを右クリックし、新規Webサービス・パッケージを選択します。
Webサービス・パッケージの作成ダイアログ・ボックスが表示されます。
Webサービス・パッケージの作成ダイアログ・ボックスに次の詳細を入力します。
名前: Webサービス・パッケージの名前。
説明: Webサービス・パッケージの説明(オプション)。
プロジェクト・ナビゲータを使用して、Oracle Warehouse Builderオブジェクトに基づくWebサービスを作成します。
Oracle Warehouse Builderオブジェクトに基づいてWebサービスを作成する手順は、次のとおりです。
プロジェクト・ナビゲータで、プロジェクト・ノードを開き、Webサービスを作成するアプリケーション・サーバー・ノードを開きます。
「Webサービス」ノードを右クリックして「新規Webサービス」を選択します。
Webサービス・パッケージでWebサービスを作成するには、プロジェクト・ナビゲータで、Webサービス・パッケージを右クリックして「新規Webサービス」を選択します。
Webサービスの作成ウィザードが表示されます。
ウィザードのようこそページで「次へ」をクリックします。
「名前と説明」ページで、次の詳細を入力し、「Webサービスのネーミング」の説明に従って、「次へ」をクリックします。
「実装」ページで、「Webサービス実装の定義」の説明に従って詳細を入力し、「次へ」をクリックします。
仕様の確認ページで、ウィザードに入力した詳細を確認します。値を変更するには、「戻る」をクリックします。Webサービスの定義を完了するには、「終了」をクリックします。
「ソースの表示」をクリックして、Oracle Warehouse Builderで生成されるWSDLコードを表示し、このWebサービスを実装します。
Webサービスが作成され、ナビゲータ・ツリーに追加されます。
また、Webサービスを作成するうえで基づくオブジェクトを右クリックしてWebサービスの作成を選択することで、Webサービスをすばやく作成できます。アプリケーション・サーバーまたはWebサービス・パッケージの選択ダイアログ・ボックスが表示されます。選択して「OK」をクリックします。選択したアプリケーション・サーバー・ノードの下にWebサービスが作成され、追加されます。
例: WebサービスのWSDLファイル
次は、Webサービスで作成されるWSDLファイルの例です。
<definitions name="HttpSoap11" targetNamespace="http://dbWebService.packaging.sdk.jrt.wh.oracle/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://dbWebService.packaging.sdk.jrt.wh.oracle/" xmlns:mime="http://http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > <types> </types> <message name="FUNCTION_TARGETInput"> <part name="P1" type="xsd:string"/> <part name="P2" type="xsd:string"/> </message> ... ... ...
名前と説明ページに、Webサービスの説明を入力します。このページでは、次の情報を入力します。
名前: Webサービスの名前。この名前は、Oracle Warehouse Builderのネーミング標準に準拠している必要があります。
説明: Webサービスの説明(オプション)。
実装ページを使用して、WebサービスのベースとなるOracle Warehouse Builderオブジェクトを選択します。
次のオプションのいずれかを選択して、Webサービスを作成します。
マッピングからの作成
プロセス・フローからの作成
変換からの作成
データ監査からの作成
チェンジ・データ・キャプチャ用の表またはモジュールからの作成
選択するオプションに基づいて、オプションの下にあるテキスト領域にWebサービスに基づくことができる使用可能なオブジェクトを表示します。このテキスト領域からOracle Warehouse Builderオブジェクトを選択します。
CTマッピングに基づくWebサービスを作成するときは、Webサービスに関連付けられているエージェントがコード・テンプレート・マッピングに関連付けられているエージェントと異なる場合、検証中に警告が表示されます。この場合でも、そのWebサービスを生成、デプロイおよび実行できます。ただし、実行が失敗する場合があります。
CTマッピングに基づくWebサービスを作成する場合は、Webサービスではコード・テンプレート・マッピングと同じエージェントを使用することをお薦めします。
Webサービスを検証すると、メタデータ定義および構成パラメータが確認され、Oracle Warehouse Builderによって定義されたルールに応じてこれらが有効であるかどうかが確認されます。Webサービスを検証すると、Webサービスに関連付けられているWSDLファイルはW3C WSDLスキーマに対して検証されます。検証が成功すると、Webサービスをデプロイコードを生成できます。
Webサービスを検証するには、デザイン・センターでWebサービスを選択し、ツールバーの「検証」をクリックします。または、デザイン・センターでWebサービスを右クリックし、「検証」をクリックします。
また、アプリケーション・サーバー・モジュールまたはWebサービス・パッケージを検証することもできます。この操作により、アプリケーション・サーバー・モジュールまたはWebサービス・パッケージに含まれるすべてのWebサービスが検証されます。
Webサービスを生成することで、OC4JまたはOracle Application Serverロケーションに関連付けられているWebサービスのデプロイに必要なコードが作成されます。Webサービスを生成すると、各Webサービスに対応するWSDLファイルが作成されます。Oracle Warehouse Builderオブジェクトに基づくWebサービスでは、.ear
ファイルも生成されます。Webサービス・パッケージでは、Webサービスごとに.ear
ファイルが1つ生成されます。
生成されたファイルは、デザイン・クライアントがインストールされているファイル・システムのデフォルトのロケーションに格納されます。これらの生成済ファイルを表示または編集できません。
Webサービスを生成するには、Webサービスを選択し、ツールバーの「生成」をクリックします。または、Webサービスを右クリックして「生成」を選択します。また、アプリケーション・サーバー・モジュールまたはWebサービス・パッケージに含まれるすべてのWebサービスに対して同時にコードを生成するためのアプリケーション・サーバー・モジュールまたはWebサービス・パッケージも生成できます。
注意: パブリックWebサービスを生成することはできません。ただし、公開Webサービスは検証きません。 |
Webサービスのデプロイでは生成時に作成されたスクリプトを使用して、Webサービスを含むアプリケーション・サーバー・モジュールに関連付けられているエージェントのロケーションにWebサービスを作成します。
Webサービスをデプロイすると、そのWebサービスに対応する.ear
ファイルが、OWB_HOME
/owb/jrt/applications
ディレクトリに配置されます。このディレクトリには、Oracle Warehouse Builderの埋込みOC4Jインスタンスにデプロイされた各Webサービス用の個別フォルダも含まれています。
Webサービスをデプロイするには、コントロール・センター・エージェント(CCA)およびOC4Jインスタンスが必要です。
OC4Jスタンドアロン・インスタンス
Oracle Warehouse Builderをインストールすると、同時にOC4Jインスタンスがインストールされます。このOC4JインスタンスまたはOracle Application Serverインスタンスの一部であるOC4JインスタンスにWebサービスをデプロイできます。
Oracle Application Server
WebサービスをOracle Application Serverにデプロイできます。実行する前に、このOracle Application Serverインスタンスを指し示すURIロケーションを作成します。Oracle Application Serverインスタンスに関連するロケーションの作成の詳細は、『Oracle Warehouse Builderソースおよびターゲット・ガイド』を参照してください。
Webサービスはデザイン・センターかコントロール・センター・マネージャからデプロイできます。
注意: パブリックWebサービスをデプロイすることはできません。 |
Oracle Warehouse Builderオブジェクトに基づいてWebサービスをデプロイする前に、必ず次を実行します。
Webサービスが基づくOracle Warehouse Builderオブジェクトをデプロイします。
コントロール・センター・エージェントを起動します。
Oracle Warehouse Builderを使用して、URLから公開Webサービスを作成できます。公開Webサービスはグローバル・ナビゲータの公開アプリケーション・サーバー・ノードで定義する公開Webサービスです。公開Webサービスは、主にETLオブジェクトのWebサービスとして使用できる既存の機能を活用するために使用します。ETL設計で既存のWebサービス(ローカルまたはリモート)を使用する前に、Webサービスの機能を表すOracle Warehouse Builderの公開Webサービスを作成する必要があります。
URLからWebサービスを作成するには、有効なWSDLファイルを指すURLが必要です。URLはローカル・ファイル・システムまたはリモート・ロケーションを指すことができます。WSDLファイルがリモート・コンピュータ上にある場合、リモート・ロケーションへのアクセスに使用するプロキシ設定を指定する必要があります。
外部URLに基づくWebサービスを作成する場合、外部URLへのアクセスに必要なプロキシ設定を指定する必要があります。プロキシを設定するには、次の手順を実行します。
デザイン・センターで、「ツール」メニューから「プリファレンス」を選択します。
「プリファレンス」ダイアログ・ボックスが表示されます。
左側にあるナビゲータ・ツリーで、Webブラウザおよびプロキシを選択します。
Webブラウザおよびプロキシプリファレンスが「プリファレンス」ダイアログ・ボックスの右側に表示されます。
HTTPプロキシ・サーバーの使用を選択して、次のフィールドの値を指定します。
ホスト名: プロキシ・サーバー名を表します。
ポート番号: プロキシ・サーバーのポート番号を表します。
例外: バイパスされるプロキシ・サーバーのアドレスを表します。アスタリスク(*)ワイルドカードとして使用し、縦棒(|)を使用して複数のエントリを区切ります。
プロキシ・サーバーで認証が必要な場合は、プロキシ・サーバーに認証が必要を選択します。「ユーザー名」フィールドおよび「パスワード」フィールドを使用して資格証明を入力します。
プロキシのテストをクリックし、プロキシ設定をテストします。
URLに基づくWebサービスの作成手順
次のURLに基づいてWebサービスを作成する手順を使用します。
デザイン・センターのグローバル・ナビゲータで、Webサービスを作成するアプリケーション・サーバー・ノードを開きます。
アプリケーション・サーバー・ノードを右クリックして「新規Webサービス」を選択します。
Webサービスの作成ウィザードが表示されます。
ウィザードのようこそページで「次へ」をクリックします。
「名前と説明」ページで、次の詳細を入力し、「公開Webサービスのネーミングと説明」の説明に従って、「次へ」をクリックします。
仕様の確認ページで、ウィザードに入力した詳細を確認します。値を変更するには、「戻る」をクリックします。Webサービスの定義を完了するには、「終了」をクリックします。
「ソースの表示」をクリックして、このWebサービスの実装に使用されるWSDLコードを表示します。
Webサービスが作成され、ナビゲータ・ツリーに追加されます。
名前と説明ページを使用して、Webサービスの基礎として機能とするWSDLファイルのロケーションを指定します。このページには、次のフィールドが含まれます。
名前: Webサービス名を示します。名前は自動的にWSDLファイルから導出され、必要に応じて編集できます。
WSDLファイルのロケーション: 「参照」をクリックし、WSDLファイルへのパスを指定します。URLアドレスにはネットワークを介してアクセス可能なローカル・ファイルまたはURLアドレスのパスを使用できます。WSDLファイルには既存のWebサービスの定義が含まれます。
このプロパティは、グローバル・ナビゲータを使用してURLに基づくWebサービスを作成する場合にのみ表示されます。
説明: Webサービスの説明(オプション)。
Webサービスの実行により、Webサービスで定義している機能を実行できます。Webサービスは、コントロール・センター・マネージャまたはWebブラウザから実行できます。
Webサービスの実行の前提条件
Webサービスを実行するには、OWB_J2EE_EXECUTOR
ロールを付与されたJ2EEユーザーを使用する必要があります。Oracle Warehouse Builderの埋込みOC4Jサーバーを使用する場合、このロールは作成済です。
注意: CTマッピングを含むWebサービスで、Webサービスの実行に複数日かかる可能性がある場合は、ジョブをさらに細かく分けることをお薦めします。OC4Jのデフォルトのトランザクション・タイムアウトは1日に設定されています。ジョブの実行時間が1日を超えると、その実行はタイムアウトとなり、予期しないエラーが発生します。 |
次のいずれかの方法で、J2EEユーザーにこのロールを割り当てます。
リポジトリ・アシスタントのJ2EEユーザー・アカウントの管理オプション
デザイン・センターの「ツール」メニューにあるJ2EEユーザーの管理オプション
関連項目:
|
コントロール・センター・マネージャを使用してWebサービスを実行する手順は、次のとおりです。
「コントロール・センター・マネージャ」で、Webサービスを含むロケーション・ノードを開き、Webサービスを選択して、ツールバーで「開始」をクリックします。または、Webサービスを右クリックして「開始」を選択します。
「操作の選択」ダイアログ・ボックスが表示されます。「操作」リストにWebサービスを使用して実行できる操作のリストがあります。
Webサービスに含まれる操作が1つのみの場合は、「操作の選択」ダイアログ・ボックスは表示されません。
「操作」リストで実行する操作を選択し、「OK」をクリックします。
Webサービスの実行パラメータを提供するために使用する「入力パラメータ」ダイアログ・ボックスが表示されます。
「入力パラメータ」ダイアログ・ボックスで、表示するパラメータの値を入力します。
リストされるパラメータは、Webサービスが基づくオブジェクトのタイプによって異なります。たとえば、PL/SQLマッピングに基づくWebサービス、プロセス・フローおよびデータ監査にはCUSTOM_PARAMS and SYSTEM_PARAMSがあります。コードCTマッピングに基づくWebサービスにはパラメータOWB_PARAMSが含まれます。
CUSTOM_PARAMS: Webサービスで使用するマッピングの入力パラメータの値を表します。
たとえば、マッピングに基づくWebサービスを作成し、マッピングに入力パラメータが必要な場合、CUSTOM_PARAMSフィールドを使用してこれらの入力パラメータの値を入力します。複数の値はコンマを使用して区切ります。
SYSTEM_PARAMS: バルク・サイズ、「監査レベル」、オペレーティング・モード、「エラーの最大数」および「コミット頻度」などのマッピング実行パラメータがある場合に、その値を表します。複数のシステム・パラメータがある場合は、カンマを使用してパラメータの間を区切ります。
次に例をあげます。OPERATING_MODE=SET_BASED,AUDIT_LEVEL=NONE
OWB_PARAMS: Webサービスが基づくCTマッピングのパラメータを表します。
「OK」をクリックします。
Webサービスが実行され、デザイン・センターの新しいログ・ウィンドウに実行結果が表示されます。表示される詳細には、選択、挿入、更新または削除された行の数と発生したエラーまたは警告の数が含まれます。
任意のブラウザを使用して、Oracle Warehouse Builderの埋込みOC4Jサーバーまたはその他のOC4JサーバーにデプロイされたWebサービスを実行します。
Oracle Warehouse Builderの埋込みOC4Jサーバーを使用してWebサービスにアクセスする場合は、Webサービスのセキュリティに関するすべての前提条件が満たされます。Webサービスを実行するには、基本認証を提供する必要があります。
ブラウザを使用してWebサービスを実行する手順は、次のとおりです。
「 Webサービスの実行の前提条件」の説明に従って前提条件が満たされていることを確認します。
(オプション) Oracle Warehouse Builderとともにインストールされたもの以外のOC4JサーバーにデプロイされたWebサービスを実行するときには、「外部OC4Jサーバーでのセキュアなアクセスの設定」に記載された手順を実行してください。
注意: Oracle Warehouse Builderの埋込みOC4JサーバーにデプロイされていないWebサービスを実行すると、エラーが発生する場合があります。これらのエラーの解決の詳細は、「セキュアWebサイトからのWebサービス実行時のエラー」を参照してください。 |
Webブラウザを開き、アドレス・バーに次のURLを指定して、[Enter]キーを押します。
http://
host_name
:8888/jndi_name
/webservice
Webサービスを安全に実行するには、次のURLを使用します。
https://
host_name
:4443/jndi_name
/webservice
Webサービスのエンドポイント・ページが表示されます。Oracle Warehouse Builderが提供するAGENTWEBSERVICE Webサービスを使用する場合、AgentWebServiceエンドポイント・ページが表示されます。
ここで、host_name
はWebサービスを格納するコンピュータのホスト名を表し、jndi_name
はWebサービスで生成される.ear
ファイルの名前です。Oracle Warehouse Builderと一緒にインストールされるAGENTWEBSERVICEを使用してWebサービスを実行するには、jndi_name
としてjrtを使用します。
Webサービスで使用するデフォルトのポート番号は8888および4443です。別のポート番号を使用できます。
「ブラウザを使用したWebサービスに対する操作の実行」に示す手順に従ってWebサービスを実行します。
グローバル・ナビゲータのAGENT_SERVERノードの下にあるAGENTWEBSERVICE Webサービスは、WebサービスとしてOracle Warehouse BuilderとともにインストールされたAGENTサーバーを公開する埋込みWebサービスです。この項で示される手順は、AGENTWEBSERVICEに対応するインタフェースであるAgentWebServiceエンドポイント・ページを使用して実行します。このWebサービスはコントロール・センター・エージェント(CCA)の起動時に自動的に起動されます。ただし、他のWebサービスのエンドポイントを使用してもWebサービスで定義する操作を実行できます。
Webサービスで実行する操作を選択し、操作の実行に必要な情報を入力します。
次に、AGENTWEBSERVICEを使用する際に選択できる一部の操作を示します。
isDeployed
runCCJob
abortJob
「実行ジョブの終了」を参照
invokeEAR
トランスポート情報の表示ノードを開き、HTTP認証というラベルの右にある「有効化」を選択します。
トランスポート情報の表示セクションで、次のフィールドの詳細を入力します。
ユーザー名: Webサービスの実行に使用される、OWB_J2EE_OPERATOR
ロールを持つJ2EEユーザーの名前。
パスワード: 「ユーザー名」で指定したJ2EEユーザーのパスワード
「呼出し」をクリックします。
操作の結果を含むテスト結果ページが表示されます。
注意: 資格証明を入力して、「呼出し」をクリックした後、資格証明の入力を求められることがあります。トランスポート情報セクションで指定したJ2EEの資格証明を再度入力してください。 |
isDeployed操作では、WebサービスまたはアプリケーションがOC4Jサーバーにデプロイされているかどうかの特定できます。
WebサービスがOC4Jサーバーにデプロイされているかどうかを特定する手順は、次のとおりです。
AgentWebServiceエンドポイントページで、「操作」フィールドのisDeployedを選択します。
「jndiName」フィールドで、アプリケーションの名前を入力します。
jndi_nameまたは完全修飾アプリケーション名を使用します。この名前を特定するには、OWB_HOME
/owb/jrt/applications
ディレクトリを確認します。
WebサービスがOC4Jインスタンスにデプロイされた場合、テスト結果ページのXMLコードに「True」が表示されます。
runCCJob操作により、コントロール・センター・ジョブを実行できます。ジョブにはOracle Warehouse Builderを使用して定義されたWebサービス、マッピングおよびプロセス・フローが含まれます。
コントロール・センター・ジョブを実行する手順は、次のとおりです。
AgentWebServiceエンドポイントページで、「操作」フィールドのrunCCJobを選択します。
次の各フィールドに情報を入力します。
ユーザー名: Webサービスを実行するワークスペースの名前を表します。
パスワード: 「ユーザー名」フィールドで指定したユーザーのパスワードを表します。
ワークスペース: Webサービスの実行ジョブを実行するワークスペースの名前を表します。Webサービスを実行するユーザーがワークスペース所有者でない場合は、ユーザー名に接頭辞としてワークスペース名を付けます(test_user.my_workspaceなど)。
ロケーション: タスクのデプロイ先のロケーションの物理名を表します。
task_type: タスクのタイプを表します。次の値を使用します。
PLSQL - PL/SQLマッピング用
SQL_LOADER - SQL*Loaderマッピング用
PROCESS - プロセス・フロー用
SAP - SAPマッピング用
DATA_AUDITOR - Oracle Warehouse Builderのデータ監査マッピング用
task_name: デプロイ済のオブジェクトの物理名を表します。たとえば、MY_MAPPINGです。プロセス・フローの場合は、プロセス・フローが属しているプロセス・フロー・パッケージの名前でプロセス・フロー名を修飾します(たとえば、MY_PROCESS_FLOW_PACK. MY_PROCESS_FLOW
)。
connection_string: コントロール・センター・マネージャが含むコンピュータの接続情報を表します。
system_params: バルク・サイズ、「コミット頻度」などのマッピング実行パラメータを表します。複数のシステム・パラメータがある場合は、カンマを使用してパラメータの間を区切ります。
次に例をあげます。OPERATING_MODE=SET_BASED,AUDIT_LEVEL=NONE
custom_params: マッピングの入力パラメータを表します。
runCCJob操作では、実行が成功した場合は1を、警告がある場合は2を、実行時にエラーがある場合は3を戻します。
abortJob操作により、コントロール・センター・マネージャに送信された特定のジョブを終了できます。
特定のジョブを終了する手順は、次のとおりです。
AgentWebServiceエンドポイント・ページで、「操作」フィールドのabortJobを選択します。
jobIDフィールドに終了するコントロール・センター・ジョブのジョブIDを入力します。
「timeOut」フィールドで、タイム・アウトの値をミリ秒単位で入力します。このフィールドに0を入力すると、タイムアウトがないことを示します。
テスト結果ページのTRUEの戻り値はコントロール・センター・マネージャに終了メッセージが送信されたことを示します。
invokeEAR操作では、Webサービス、CTマッピングなどのデプロイ済のアプリケーションを実行できます。
WebサービスまたはCTマッピングを実行する手順は、次のとおりです。
AgentWebServiceエンドポイント・ページで、「操作」フィールドのinvokeEARを選択します。
「jndiName」フィールドで、WebサービスのJNDI名を入力します。
「soa_params」フィールドで、マッピング実行パラメータの値を入力します。各値はカンマで区切ります。
「owb_params」フィールドで、入力パラメータの値を入力します。
テスト結果ページにはWebサービス実行のジョブIDが含まれています。
Webサービスで定義した機能をプロセス・フローの一部として使用できます。Webサービスは、新規に作成するか、またはOracle Warehouse Builderにインポートできます。プロセス・フローでWebサービスを使用するには、Webサービスのアクティビティを使用します。
プロセス・フローでWebサービスを使用する例は、事例: データ統合のためのWebサービスの使用を参照してください。
プロセス・フローでは、次のように、特定のルールに準拠しているWebサービスのみがOracle Warehouse Builderでサポートされます。
アクセス可能なWSDLファイルで記述されるWebサービスのみがサポートされます。
WSDLファイルに複数のサービスが含まれる場合は、1つのサービスを指定する必要があります。
基本認証を含むWebサービスには資格情報を提供するためにURIロケーションが必要です。Webサービス・アクティビティのデプロイ済ロケーションプロパティをこのURIロケーションに設定する必要があります。
Webサービスに複数のポートが含まれる場合は、ポートを指定する必要があります。
ポートはhttpトランスポートを使用する必要があります。
プロセス・フローでWebサービスを使用する手順は次のとおりです。
プロジェクト・ナビゲータで、プロセス・フローを作成します。
プロセス・フローの詳細は、「プロセス・フローを定義する手順」を参照してください。
プロセス・フローの一部であるWebサービスのアクティビティを除きすべてのアクティビティを追加して、アクティビティ間のデータ・フローを確立します。
外部Webサービスを使用している場合、グローバル・ナビゲータで公開Webサービスを作成することにより、WebサービスをOracle Warehouse Builderにインポートします。
プロジェクト・ナビゲータまたはグローバル・ナビゲータのいずれかからプロセス・フロー・エディタのキャンバスにWebサービスをドラッグ・アンド・ドロップします。
または
「グラフ」メニューから「使用可能なオブジェクト」を選択します。「使用可能なオブジェクトの追加」ダイアログ・ボックスが表示されます。必要なWebサービスを選択して、「OK」をクリックします。
「Webサービス操作」ダイアログ・ボックスが表示されます。
Webサービスの使用可能な操作から操作を1つ選択して、「OK」をクリックします。選択した操作はプロセス・フローで使用されます。
Webサービスはプロセス・フロー・エディタに追加され、プロパティが「構造」パネルにリストされます。
同期Webサービスの操作には入力メッセージおよび出力メッセージの両方が含まれます。これらは、プロセス・フローのWebサービス・アクティビティの入力パラメータまたは出力パラメータにマップされます。
Webサービスのアクティビティの各プロパティに必要な入力値を指定します。「構造」パネルのプロパティを選択し、「プロパティ・インスペクタ」を使用して値を設定します。
Webサービスに認証が必要な場合は、URIロケーションを作成し、Webサービスのアクティビティのデプロイ済ロケーションプロパティをこのURIロケーションに設定する必要があります。
Webサービス・アクティビティとの間のデータ・フローを確立します。
プロセスを生成し、エラーが発生した場合は解決します。
Webサービスのアクティビティの形式でプロセス・フローに追加したすべてのWebサービスがデプロイされたことを確認します。
手順1で作成されたプロセス・フローを含むプロセス・フロー・パッケージをデプロイします。コントロール・センター・マネージャを使用するか、プロジェクト・ナビゲータでプロセス・フロー・パッケージを右クリックして「デプロイ」を選択します。
プロセス・フローを実行します。プロジェクト・ナビゲータで、プロセス・フローを右クリックして「開始」を選択します。
Webサービスの定義が変更されると、このWebサービスを消費するすべてのプロセス・フローにそれらの変更を伝搬する必要があります。
プロセス・フローで使用するWebサービスを同期する手順は、次のとおりです。
Webサービスを使用するプロセス・フロー・パッケージを右クリックして「開く」を選択します。
このプロセス・フローのプロセス・フロー・エディタが表示されます。
Webサービスが変更されたことを示しているWebサービスのアクティビティを選択します。「編集」メニューから、「同期化」を選択します。
「同期化」ダイアログ・ボックスが表示されます。Webサービスを同期する必要のあるオブジェクトが選択されると、変更することはできません。
オブジェクトIDによる一致、オブジェクト位置による一致またはオブジェクト名による一致のいずれかの一致オプションを選択して「一致方針」を指定します。
これらのオプションの詳細は、「ヘルプ」をクリックします。
「置換」または「マージ」を選択して「同期化方針」を指定します。
「OK」をクリックして、Webサービスとベースにするオブジェクトを同期します。
Webサービスに行った変更は、Webサービスに基づいているWebサービスのアクティビティに伝搬されます。
Webサービスは本質的に関数であるため、Oracle Databaseが提供するWebサービスのサポートを活用することで、マッピング内のWebサービス(PL/SQLパッケージ)を使用できます。このため、既存のWebサービスにある機能を活用できます。
次の方法のいずれかを使用して、Webサービスソースまたはターゲットとして使用するマッピングを作成します。
UTL_HTTP
パッケージを使用します。
JPublisherユーティリティを使用してWebサービスに対するSQLのインタフェースの役割を果します。
「JPublisherを使用してマッピングでWebサービスを消費する手順」を参照してください。
UTL_DBWS
パッケージを使用してWebサービスを消費します。
Oracle Databaseのリリースに応じて、これらのタスクを実行するにはDBWSユーティリティをダウンロードしてインストールする必要があります。
OWB_HOME
/owb/misc/mappingWS
ディレクトリにあるスクリプトuse_webservice_in_mapping.tcl
を使用して、マッピングのWebサービスを消費するために使用できるエキスパートを作成します。
JPublisherを使用してマッピングでWebサービスを消費する手順
JPublisherユーティリティでは、オブジェクト・タイプ(Oracleオブジェクト、可変長配列、ネストした表、REFまたはオブジェクト・タイプである可能性がある)がJavaクラスに変換され、オブジェクトの各属性のアクセッサ・メソッドが生成されます。JPublisherではオブジェクト・タイプとJavaクラスとのマッピング、オブジェクトの属性のタイプと対応するJava型とのマッピングが作成されます。
PL/SQLパッケージでは、JPublisherによりパッケージのサブプログラムごとにラッパー・メソッドを含むクラスが作成されます。オブジェクト・メソッドと同様に、サブプログラムごとに作成されたラッパー・メソッドは、元のメソッドが静的メソッドである場合でも必ずインスタンス・メソッドです。JPublisherが生成したラッパー・メソッドでは、JavaコードからPL/SQLストアド・プロシージャを呼び出したり、クライアントのJavaプログラムからJavaストアド・プロシージャを呼び出す便利な方法を提供します。
JPublisherを使用してWSDLファイルのテーブル・ファンクション・プロキシを生成し、PL/SQLラッパーおよびプロキシ・コードを公開します。
たとえば、次のコマンドではhttp://99.22.32.21:9762/services/test_ws?wsdlというURLで使用できるWebサービスのプロキシが生成されます。
jpub -user wh_tgt/wh_tgt_pswd -sysuser system/oracle -dir=test_ws -proxywsdl=http://90.22.32.21:9762/services/test_ws?wsdl
ここで、wh_tgt
およびwh_tgt_pswd
は、マッピングがデプロイされているOracle Warehouse Builderロケーションに対するデータベース資格証明です。
JPublisherではJavaクラスおよびPL/SQLラッパーを生成し、指定のスキーマ(WH_TGT
)にロードします。
(オプション)Webサービスを呼び出すPL/SQLコードを定義します。
この手順によって、テーブル・ファンクションへのコールアウトがOracle Databaseレベルで動作することが、Oracle Warehouse Builderを介さずに確認されます。
次の例では、パッケージmy_pack
の一部であるmy_func
という関数へのコールアウトが正しく機能することを確認します。
SELECT * FROM TABLE(WH_TGT.MY_PROC.MY_FUNC)
テーブル・ファンクション・プロキシを生成したWebサービスのメタデータを、インポート・メタデータ・ウィザードによってOracle Warehouse Builderにインポートします。
メタデータにはユーザー定義型およびPL/SQLパッケージが含まれます。
Webサービスを消費するOracle Warehouse Builderマッピングを開き、テーブル・ファンクション演算子を追加してWebサービスを呼び出します。次のタスクを実行します。
テーブル・ファンクション演算子の「テーブル・ファンクション名」プロパティで、マッピングに追加する(手順1で)生成されたテーブル・ファンクションの名前を入力します。
テーブル・ファンクション演算子のINGRP1グループで、入力パラメータの型フィールドを使用してテーブル・ファンクションが許容する入力の型を選択します。
Webサービスへの入力を表すソース行を定義します。
Webサービスを表す演算子をテーブル・ファンクション演算子の入力グループにマッピングします。
Webサービスの出力をマッピングの表に取得します。
テーブル・ファンクション演算子ではコレクション型を出力として戻すので、必要に応じて、オブジェクトの拡張演算子を使用してターゲット表に個別に行をマッピングします。
(オプション)企業のファイアウォールの背後で実行する場合など、Webプロキシを設定する場合は、プロシージャINITIALIZE_PROXYを使用するマッピング前プロセス演算子を使用してHTTPプロキシを構成します。
マッピングを生成して実行します。
セキュリティが主な問題点である場合、Oracle Warehouse BuilderではSecure Sockets Layer(SSL)を使用してWebサービスにセキュアな方法でアクセスできます。これにより、OC4JサーバーとWebサービスとの間で交換するメッセージが確実に保護されます。
Oracle Warehouse Builderの埋込みOC4Jサーバーとその他の外部OC4JサーバーのどちらにデプロイされたWebサービスにも安全にアクセスできます。
Oracle Warehouse Builderでは、Oracle Warehouse Builderのコントロール・センター・エージェントのセキュリティを促進する次の3つのロールが提供されます。
OWB_J2EE_EXECUTOR:
権限受領者がコントロール・センター・エージェント(CCA)でマッピングを実行できます。
OWB_J2EE_OPERATOR:
OWB_J2EE_EXECUTOR
ロールを含み、権限受領者が監査情報にアクセスし、操作できます。
OWB_J2EE_ADMINISTRATOR:
OWB_J2EE_EXECUTOR
ロールを含み、権限受領者がOC4Jを管理したり、コントロール・センター・エージェントにOracle Warehouse Builderオブジェクトをデプロイしたりできます。
(Oracle Warehouse Builderに埋め込まれていない)その他のOC4JサーバーにあるWebサービスに安全にアクセスできます。実行する前にOC4Jサーバーでのセキュリティを設定する必要があります。
他のOC4Jサーバーへの安全なアクセスを設定する手順は、次のとおりです。
キーツール・ユーティリティを使用してRSAの秘密鍵と公開鍵のペアを持つキー・ストアを作成します。
次の例では、RSAキー・ペア生成アルゴリズムを使用して、123456というパスワードを持つmykeystore.jks
というファイルにあるキー・ストアを生成します。
%keytool -genkey -keylag RSA -keystore mykeystore.jks -storepass 123456
keystore
オプションでは、キーを格納するファイル名が設定されます。storepass
オプションでは、キー・ストアを保護するパスワードを設定します。storepass
オプションを省略すると、パスワードを入力するように求められます。
キー・エントリのパスワードを入力するように求められます。OC4J 10.1.3.xの実装では、キー・ストアのパスワードはキー・エントリのパスワードと同じである必要があります。
現在のディレクトリにmykeystore.jks
ファイルを作成されます。キーのデフォルトの別名はmykey
です。
secure-web-site.xml
ファイルがない場合は、OWB_HOME
/j2ee/home/config
に作成します。
開始するには、default-web-site.xml
から必要な内容をすべてコピーします。これには、通常、要素に次のサブ要素が含まれます。
<web-app> (保護するWebアプリケーションごと)
(ロギング用。これは適切なログ・ファイルを指定することを確認する)
<default-web-app>
次の要素を使用してsecure-web-site.xml
を更新します。
Webサイト要素を更新し、secure="true"を追加して、ポート番号を使用可能なポートに設定します。スタンドアロンOC4Jでは、デフォルト設定であるHTTPプロトコルを使用します。デフォルトの443を使用するには、スーパー・ユーザーである必要があります。
protocol="http"およびsecure="true"を設定する場合は、HTTPSプロトコルが使用されます。
次は、要素の例です。
<web-site port="4443" secure="true" protocol="http" display-name="Default Oracle OAS Containers for J2EE Web Site"> ... ... </web-site>
次のようにweb-site要素の下にエントリを追加しキー・ストアとそのパスワードを定義します。
<ssl-config keystore="your_keystore
" keystore-password="your_password
" />
ここで、your_keystore
はキー・ストアへのパス、つまり、OWB_HOME
/j2ee/home/config
(WebサイトのXMLファイルが格納されている場所)への相対または絶対パスです。また、your_password
はキー・ストアのパスワードです。
変更内容をsecure-web-site.xml
に保存します。
セキュアなWebサイトを有効にするには、OWB_HOME
/owb/jrt/config
ディレクトリにあるserver.xml
ファイルにセキュアなWebサイトを追加します。
OC4Jサーバーを再起動して、以前の変更が適用されていることを確認します。
まだ作成されていない場合は、OWB_J2EE_EXECUTOR
ロール、OWB_J2EE_OPERATOR
ロールおよびOWB_J2EE_ADMINISTRATOR
ロールを作成します。
OWB_HOME
/owb/jrt/config
フォルダにあるfile system-jazn-data.xml
ファイルを参照してください。
Webサービスを実行するために使用するJ2EEユーザーを作成して、このユーザーにOWB_J2EE_EXECUTOR
ロールを付与します。
会社Aと会社Bが合併しました。会社Aは米国のサンフランシスコにあり、会社Bは中国の上海にあります。現在、それぞれの会社はまだ別々に独自のビジネス・プロセスに従っています。それらのビジネス・プロセスを統合するためのプランを策定する必要があります。
企業AではOracle Databaseを使用してデータを格納し、データ統合およびETLではOracle Warehouse Builderを使用しています。指定期間の売上合計の決定にはマッピングが使用されています。
企業BはSQL Serverデータベースを使用してデータを格納し、データ統合およびETLではOracle Warehouse Builderを使用しています。ソース表はSQLサーバーであるので、指定期間の売上合計の決定にはCTマッピングを使用しています。
企業AではORDERS
という表に売上詳細を格納しています。PRODUCTS
表には製品の詳細が格納されます。マッピングLOAD_TOTAL_SALES_MAP
によりソース・データが変換され、売上合計の詳細をターゲット表TOTAL_SALES
にロードされます。データ統合要件の一部として、企業Aおよび企業Bのビジネス・プロセスを統合する必要があります。
マッピングLOAD_TOTAL_SALES_MAP
をWebサービスとして公開することで、ロケーション、データ形式またはプロバイダのプラットフォームに依存することなくマッピングで定義された機能にリモートにアクセスできます。
企業Aではデータの格納に次の表を使用します。
ORDERS:
には、order_id
、order_date
、product_id
、quantity
およびcustomer_id
の各列が含まれます。
PRODUCTS:
には、product_id
、product_name
、product_desc
およびproduct_price
が含まれます。
CUSTOMERS:
にはcustomer_id
、first_name
、last_name
、cust_address
およびcust_city
が含まれます。
次の手順を使用して、LOAD_TOTAL_SALES_MAP
をWebサービスとして公開します。
プロジェクト・ナビゲータで、作成しているWebサービスが含まれるINTEGRATION_AS_MOD
というアプリケーション・サーバー・モジュールを作成します。このモジュールのロケーションの詳細がWebサービスのデプロイ先のエージェント・ロケーションに設定されていることを確認します。
LOAD_TOTAL_SALES_MAP
マッピングを含むOracleモジュールを開きます。
LOAD_TOTAL_SALES_MAP
マッピングを右クリックしてWebサービスとしての公開を選択します。
アプリケーション・サーバーまたはWebサービス・パッケージの選択ダイアログ・ボックスが表示されます。
INTEGRATION_AS_MOD
を選択して、「OK」をクリックします。
WS_LOAD_TOTAL_SALES_MAP
というWebサービスが作成され、アプリケーション・サーバー・モジュールINTEGRATION_AS_MOD
に関連付けられているエージェント・ロケーションにデプロイされます。
企業BではLOAD_TOT_SALES_CT_MAP
というCTマッピングを使用して指定期間の売上の集計をターゲット表TOT_SALES
にロードします。このマッピングは企業Aが使用するマッピングに似ています。ただし、ソース表ORDERS
、PRODUCTS
、CUSTOMERS
はSQL Serverデータベースに格納されているため、CTマッピングを使用しています。
企業Bは中国の上海にあるので、ソース表の売上金額は中国の元で格納されています。ただし、企業Aおよび企業Bは合併されたため、営業管理者は両社の連結売上を共通の通貨である米国ドルで確認する必要があります。今度は、企業Bの売上金額を米国ドルに変換する必要があります。
変換レートの決定には、外部の通貨変換Webサービスを使用できます。このWebサービスでは2つの入力パラメータ変換元通貨および変換先通貨を取ります。その出力は変換元通貨から変換元通貨への変換に使用する必要のある複数の出力です。これは外部のWebサービスであるため、最初にこのWebサービスをOracle Warehouse Builderにインポートする必要があります。
プロセス・フローでWebサービスを消費する手順
CTマッピングLOAD_TOT_SALES_CT_MAP
を編集して、マッピング入力演算子および式演算子を追加します。マッピング入力演算子を使用して通貨変換値を指定します。式演算子を使用して、中国元の合計売上に変換値を乗算して、変換された売上金額をTOT_SALES
表にロードすることによって、米国ドルの合計売上を求めます。
通貨変換Webサービスは次で入手できる外部のWebサービスです。
http://www.webservicex.net/CurrencyConvertor.asmx?WSDL
プロセス・フローでこのWebサービスを消費するには、次の手順を使用してこのWebサービスをOracle Warehouse Builderにインポートする必要があります。
グローバル・ナビゲータで、PUBLIC_AS_MOD
というアプリケーション・サーバー・モジュールを作成します。
URLに基づくWebサービスをインポートするには、グローバル・ナビゲータで公開Webサービスを作成する必要があります。
グローバル・ナビゲータで、PUBLIC_AS_MOD
を右クリックして、「新規Webサービス」を選択してURLに基づくWebサービスを作成します。このWebサービスはWS_CURR_CONVERT
と呼ばれます。
通貨変換WebサービスへのURLを使用してWSDLファイルのロケーションを指定します。
URLに基づくWebサービスの作成の詳細は、「URLに基づくWebサービスの作成」を参照してください。
プロセス・フローを使用して、オブジェクトの実行順序を確立し、オブジェクトの出力を他への入力として使用します。このプロセス・フローでは、企業Bの米国ドルの売上金額がターゲット表にロードされます。
表16-1に、企業Bの米国ドルの売上金額をTOT_SALES
表にロードするプロセス・フローを示します。
WebサービスCONVERTSERVICE_CONVERSIONRATE
がまず実行され、その出力は、中国元の金額に乗算して米国ドルに変換するため変換値です。この値はマッピング入力パラメータ演算子としてLOAD_TOT_SALES_CT_MAP
CTマッピングへの入力として指定され、変換値を表すマッピング・アクティビティCMAP1として表されます。
Oracle Warehouse Builderを使用して開発したETL機能をOracle BPELプロセス・マネージャなどの製品と統合できます。これは、Oracle BPELプロセス・マネージャで消費できるETLオブジェクトをWebサービスとして公開することにより実行されます。
Oracle BPELプロセス・マネージャでは、BPELプロセスを設計、デプロイおよび管理するための包括的で使いやすいソリューションを提供します。
シナリオ
企業Aの営業責任者は指定期間の企業Aと企業B両方の売上業績を評価する必要があります。A社およびB社には、指定期間の売上業績を決定するそれぞれ独自のプロセスがあります。合併企業としての一定期間の合計売上を簡単に決定できるようにこれらのプロセスを統合する必要があります。
ETL機能とOracle BPELプロセス・マネージャを統合する前に
A社ではマッピングLOAD_TOTAL_SALES_MAP
マッピングを使用しており、これは、WebサービスWS_LOAD_TOTAL_SALES_MAP
として公開されています。企業BではLOAD_TOT_SALES_CT_MAP
というコード・テンプレート・マッピングと中国元の売上を米国ドルに変換するプロセス・フローを使用しています。このプロセス・フローをWebサービスとして必ず公開します。また、これらのWebサービスに関連付けられているすべてのオブジェクトも公開します。
BPELとの統合手順
Oracle SOAスイートを起動します。
JDeveloper BPEL Designerを起動します。
BPEL_INTEGというBPELプロセスを作成します。このプロセスではA社とB社が作成するWebサービスを使用します。
図16-2にプロセスBPEL_INTEGを示します。
アプリケーション・ナビゲータでBPELプロセスを右クリックし、「デプロイ」を選択して、デプロイメント・ロケーションを選択することで、BPELプロセスをデプロイします。
「ログ」パネルを使用してデプロイメント結果を表示できます。
Webブラウザを使用してBPELマネージャにログインします。
「ダッシュボード」タブで、「デプロイ済BPELプロセス」セクションでBPEL_INTEGを選択します。
「開始」タブを選択します。
入力フィールドを使用して入力パラメータSTART_DATE and END_DATEの値を入力し、「XMLメッセージの転送」をクリックしてBPELプロセスを実行します。
たとえば、入力フィールドにSTART_DATA=2007-01-01,END_DATA=2008-12-31という値を入力します。
ビジネス・プロセス実行の監査証跡を確認します。BPELコンソール「インスタンス」タブを選択して、このフローのリンクをクリックします。