ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionインテグレーターズ・ガイド
11g リリース1 (11.1.1)
B63033-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 Oracle Business IntelligenceメタデータWebサービスの使用

この章では、Oracle BIメタデータWebサービスについて説明します。Oracle BIサーバーとのWebサービス接続の構成、Webサービスのコールに使用されるメソッド、Webサービスの保護およびOracle BIサーバーのXMLプロシージャの使用について説明します。

この章の内容は次のとおりです。

4.1 Oracle BIメタデータWebサービスの概要

Oracle BIサーバーではセマンティック・モデルを使用して、操作関連の動作を格納および制御します。セマンティック・レイヤーは共通エンタープライズ情報モデルと呼ばれ、Oracle BI管理ツールによって管理されるメタデータ内で取得されます。

Oracle BIの以前のバージョンでは、管理ツールを使用して、メタデータ・リポジトリ内に保管された情報にアクセスしていました。一方、現バージョンのOracle BIでは、Oracle BIメタデータWebサービスのWebサービス・インタフェースを使用することで、Oracle BIサーバーのストアド・プロシージャをコールできます。これらのプロシージャにより、メタデータについての情報を取得したり、メタデータを変更したりできます。

たとえば、Essbaseキューブに基づく分析を構築しようとする開発者が、管理ツールへのアクセス権がなく、メタデータ・リポジトリの作成方法がわからないとします。この開発者はストアド・プロシージャを使用することで、Oracle BIプレゼンテーション・サービス内にキューブをインポートしてから、キューブに問い合せ、必要な分析を構築できます。

4.2 Oracle BIサーバーとのWebサービス接続の構成

このトピックでは、Oracle BIサーバーのデフォルト・インストールを使用しない場合について説明します。デフォルトでは、メタデータWebサービスは、次のURLで実行されるOracle BIサーバー・インスタンスに接続しようとします。

jdbc:oraclebi://localhost:9703/

しかし、Oracle BIサーバーが別のマシン上にデプロイされている場合、別のポートを使用する場合、またはWebサービスとサーバー間でSSL接続を構成しようとする場合は、Oracle WebLogic Serverの管理コンソールで作成したBI JDBCデータ・ソースを使用する必要があります。Webサービスは次の名前のデータ・ソースを検索し、見つかった場合は、これを使用してOracle BIサーバーに接続します。

jdbc/bi/server

4.2.1 BI JDBCデータ・ソースの設定方法

BI JDBCデータ・ソースの作成方法は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Edition開発者ガイド』のOracle WebLogicでのBI JDBCデータ・ソースの作成方法に関する項を参照してください。

ただし、メタデータWebサービスで使用できるようにBI JDBCデータ・ソースを設定する場合は、次の要件に注意が必要です。プリファレンスが適用されるように、このデータ・ソースの設定が完了した時点で、Webサービスを停止および再起動してください。

  • 新規JDBCデータ・ソースウィザードの「接続プロパティ」ページの「URL」フィールドで、Oracle BIサーバーに対して構成したポートを指定します。既存の指示では「9703」を指定するようにされていますが、「9703」は正しいポート番号ではない可能性があります。

  • BI JDBCデータ・ソースを作成して保存した後は、データ・ソースの設定を変更する必要があります。データ・ソースの「設定」にアクセスし、「接続プール」タブをクリックします。各設定項目を、次のように変更します。

    • 文キャッシュ・サイズ」フィールドに「0」と入力します。この値を指定することで、文のキャッシュが無効になります。

    • 「詳細設定」タブで、「接続作成の再試行間隔」フィールドに「10」と入力します(または0より大きな任意の数値)。

4.3 Oracle BIメタデータWebサービスのコールと保護

この項では、Webサービスのコールと保護について説明します。

4.3.1 Webサービスのコール方法

Webサービスは通常、次の場所にデプロイされます。

http://server:port/AdminService/AdminService

WSDLは次の場所にあります。

http://server:port/AdminService/AdminService?WSDL

Webサービスは、2つの汎用メソッドを公開します。これらのメソッドcallProcedureおよびcallProcedureWithResultsを使用すると、Oracle BIサーバー上の任意のストアド・プロシージャをコールできます。

4.3.1.1 callProcedure()メソッド

このメソッドを使用すると、結果セットを返すことが想定されていないプロシージャをコールできます。表4-1は、このメソッドの各引数についての情報を示します。

表4-1 callProcedureメソッドの引数

引数 データ型 説明

procedureName

文字列

コールするプロシージャの名前です。

parameters

パラメータのリスト

一連のパラメータ・オブジェクト。各パラメータは、ストアド・プロシージャ引数に対応するタイプと値を定義します。

サポートされるパラメータ・タイプは、WSDLを参照してください。


4.3.1.2 callProcedureWithResults()メソッド

このメソッドは、結果セットを返すことが想定されるプロシージャのコールに使用します。

このメソッドは、結果セットを一連のResultsRowオブジェクトとして模倣するオブジェクトを返します。各ResultsRowにはそれぞれ1つ以上の列が含まれ、各列はタイプと値を定義します。エラーが発生した場合、ほとんどのストアド・プロシージャは、文字列による1つの列からなる行を1つ以上返します。このため、返された結果を注意深く確認することが重要です。

表4-2は、このメソッドの各引数についての情報を示します。

表4-2 callProcedureメソッドの引数

引数 データ型 説明

procedureName

文字列

コールするプロシージャの名前です。

parameters

パラメータのリスト

一連のパラメータ・オブジェクト。各パラメータは、ストアド・プロシージャ引数に対応するタイプと値を定義します。

サポートされるパラメータ・タイプは、WSDLを参照してください。


4.3.2 Webサービスの保護

Webサービスを適切に保護するには、Oracle Web Services Manager (WSM)を使用する必要があります。Webサービスをコールするには、クライアント・コードを適切なクライアント側ポリシーによって構成し、ストアド・プロシージャのコール権限を持つユーザーにセキュリティ資格証明を提供する必要があります。

4.3.2.1 ポリシーの適用

デフォルトでは、Webサービスは次の定義済ポリシーによって保護されます。

oracle/wss11_saml_token_with_message_protection_service_policy

Webサービスを適切にコールするには、クライアント・コードで次の定義済ポリシーを適用する必要があります。

oracle/wss11_saml_token_with_message_protection_client_policy

WSMの詳細、および定義済ポリシーの適用および構成方法は、Oracle Fusion Middleware Webサービスのセキュリティおよび管理者ガイドを参照してください。

4.3.2.2 WSMの構成

Webサービスを適切に使用するには、事前にWSMを構成しておく必要があります。Oracle BIメタデータWebサービスおよびアクション・フレームワークには、同じ構成を使用します。

Oracle BIメタデータWebサービスを使用するためのWSMの構成は、「Oracle Web Services Managerの構成」を参照してください。

4.3.2.3 SAMLの構成

ポリシーの適用」の手順で適用したポリシーを使用するには、SAMLを構成する必要があります。この構成により、SAMLトークンをリクエスト内に挿入することで、適切な認証が実行されるようになります。Oracle BIサーバーへの接続を試みるWebサービスは、システムのユーザー資格証明を使用して、リクエストのSAMLトークン内から検出されたユーザーとして振る舞います。

SAMLの構成の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』を参照してください。

4.3.2.4 manageRepositories権限の割当て

Webサービスを実行するユーザーには、manageRepositories権限を付与する必要があります。セキュリティの設定方法、およびこの権限の適用方法は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』を参照してください。

4.3.2.5 サンプル・コード

次のコードを使用してクライアント側のセキュリティを設定します。このコードを使用すると、SAMLトークン内の認証情報を渡すように構成された、管理サービスのクライアント側インスタンスを設定できます。このコードは認証されたWebアプリケーションに格納されている必要があります。セッションの認証情報はWebサービスに自動的に渡されます。次の例のようなコードを使用するには、クライアント側のプロキシ・クラスを生成する必要があります。

次の例では、adminwebservice.clientパッケージ内でプロキシが生成されています。

import adminwebservice.client.*;

   /**
    * Looks up an instance of the Admin Service and sets the correct
       authentication information on it.
    * @return Admin Proxy to the admin service.
    */
   protected Admin getAdminService() throws Exception {
 
     String SERVICE_NAMESPACE = "http://ws.admin.obiee.oracle/";
     String SERVICE_NAME = "AdminService";
     String PORT_NAME = "AdminPort";
     String WSS_POLICY_CONFIG_FILE_SAML = "wss-policy-saml.xml";
 
     URL wsdlURL = new URL
        ("http://localhost:7001/AdminService/AdminService?WSDL");
     QName serviceQname = new QName(SERVICE_NAMESPACE, SERVICE_NAME);
     QName portQname = new QName(SERVICE_NAMESPACE, PORT_NAME);
 
     ServiceDelegateImpl serviceDelegate = new ServiceDelegateImpl
        (wsdlURL, serviceQname, OracleService.class);
      Admin admin = serviceDelegate.getPort( portQname, Admin.class);
 
      ((BindingProvider)admin).getRequestContext().put(ClientConstants.CLIENT_
          CONFIG,toElement(this.getClass().getResourceAsStream(WSS_POLICY_CONFIG_
           FILE_SAML)));

      ((BindingProvider)admin).getRequestContext().put(BindingProvider.
           ENDPOINT_ADDRESS_PROPERTY, getServiceUrl());
       return admin;
   }
 

WSS_POLICY_CONFIG_FILE_SAML

WSS_POLICY_CONFIG_FILE_SAMLは、次のような内容を持つファイルのリソース名です。

<?xml version="1.0" encoding="UTF-8"?>
<oracle-webservice-clients>
   <webservice-client>
      <port-info>
         <policy-references>
            <policy-reference uri="oracle/wss11_saml_token_with_
                  message_protection_client_
                   policy"category="security"/>
         </policy-references>
      </port-info>
   </webservice-client>
</oracle-webservice-clients>

4.4 Oracle BIサーバーのXMLプロシージャの使用

Oracle BIには、JDBCまたはODBC経由でOracle BIサーバーをコールするための、いくつかのOracle BIサーバーXMLプロシージャが用意されています。Oracle BIサーバーXMLプロシージャは、バイナリ(RPD)形式のリポジトリでのみ使用できます。

ここでは、次のプロシージャについて詳しく説明します。

4.4.1プロジェクト抽出プロシージャ

プロジェクト抽出プロシージャは、リポジトリからプロジェクトを抽出するために使用します。出力される結果セットには、リポジトリ内で定義された各プロジェクトを示す行が含まれます。

このプロシージャの構造は、次のとおりです。

NQSExtractMetadataProject
Input
   1.      PROJECT_NAMES
   2.RPD_NAME (optional)
Output
   1.      RPD_OBJECT

表4-3は、プロジェクト抽出プロシージャの入力および出力パラメータと、それぞれの説明を示します。

表4-3 プロジェクト抽出プロシージャのパラメータと説明

パラメータ 説明

PROJECT_NAMES

プロシージャに送られ、抽出されるプロジェクト名のデリミタ付きリストです。

RPD_NAME

このパラメータは現在使用されていません。今後使用するために予約されています。

RPD_OBJECT

抽出されたリポジトリのバイナリ表現となる、単一のBLOBオブジェクトを保持します。


4.4.2 メタデータ変更プロシージャ

メタデータ変更プロシージャは、変更をリポジトリに適用するために使用します。出力される結果セットには、0または1つの行が含まれます。1行が返された場合、この行にはエラー・メッセージが含まれます。

メタデータは、コマンドラインXMLユーティリティ(biserverxmlgen、biserverxmlexexおよびbiserverxmlcliなど)のような他のメソッドを使用し、管理ツール内でコピーおよび貼付けを行うことによって変更できます。biserverxmlgen、biserverxmlexexおよびbiserverxmlcliのコマンドライン・ツールの詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Edition XMLスキーマ・リファレンス』のXMLの生成および実行に関する項を参照してください。

このプロシージャの構造は、次のとおりです。

NQSModifyMetadata
Input
   1.      XUDML_TEXT
   2.      ORIGINAL_RPD      (optional)
   3.      RPD_NAME          (optional)
Output
   1.      ERROR_MESSAGES

表4-4は、メタデータ変更プロシージャの入力および出力パラメータと、それぞれの説明を示します。

表4-4 メタデータ変更プロシージャのパラメータと説明

パラメータ 説明

XUMDL_TEXT

サーバーに適用される完全なOracle BI Server XMLテキスト。元のリポジトリが入力パラメータに設定されている場合を除き、通常はメタデータ定義は直接適用され、既存の定義を上書きします。

ORIGINAL_RPD

Oracle BIがOracle BI Server XMLを比較するためのリポジトリ名。Oracle BIは、指定した元のRPDに対してOracle BI Server XMLフラグメントを比較し、競合を検出した場合には、Oracle BI Server XMLを適用しません。競合が検出されない場合は、Oracle BI Server XMLが適用されます。

RPD_NAME

このパラメータは現在使用されていません。今後使用するために予約されています。

ERROR_MESSAGES

問合せの実行の結果返されたすべてのエラーを保持します。


4.4.3 メタデータ問合せプロシージャ

メタデータ問合せプロシージャは、リポジトリにメタデータを問い合せるために使用します。出力される結果セットには、一致したオブジェクトの数だけの行が含まれます。完全な形式のOracle BI Server XMLドキュメントを得るには、結果行を連結する必要があります。

このプロシージャの構造は、次のとおりです。

NQSQueryMetadataObjects
Input
   1.      OBJECT_TYPES
   2.      OBJECT_NAME       (optional)
   3.      OBJECT_PARENT     (optional)
   4.      CHILD_FLAG        (optional)
   5.      RPD_NAME          (optional)
Output
   1.      XUDML_TEXT
   2.      ERROR_MESSAGES

表4-5は、メタデータ問合せプロシージャの入力および出力パラメータと、それぞれの説明を示します。

表4-5 メタデータ問合せプロシージャのパラメータと説明

パラメータ 説明

OBJECT_TYPES

検索するオブジェクト・タイプのリスト。複数のオブジェクト・タイプを問い合せるには、各オブジェクト・タイプをカンマで区切って追加します。

たとえば、サブジェクト領域オブジェクトとプレゼンテーション・カタログ・オブジェクトを問い合せるには、object_typesの値を「2000,4004」と設定します。この例では、サブジェクト領域オブジェクトのタイプID値は2000であり、プレゼンテーション・カタログ・オブジェクトのタイプID値は4004です。

OBJECT_NAME

(オプション)名前に一致するオブジェクトをフィルタします。この名前は、完全修飾名ではありません。

たとえば、「AtomicStar」という名前のすべてのサブジェクト領域を問い合せるには、OBJECT_TYPESパラメータを「2000」に、OBJECT_NAMEパラメータを「AtomicStar」に設定します。

OBJECT_PARENT

(オプション)親オブジェクト名に基づいてオブジェクトをフィルタします。このパラメータは、完全修飾名を指定する場合に使用します。

CHILD_FLAG

(オプション)このパラメータをtrueに設定して問合せを行うと、問い合せたオブジェクトのすべての子オブジェクトが返されます。たとえば、オブジェクト・タイプ・パラメータをビジネス・モデルと設定して、子フラグ・パラメータをtrueに設定すると、ツリー内のビジネス・モデルの下位にあるすべてのオブジェクトが返されます。

RPD_NAME

このパラメータは現在使用されていません。今後使用するために予約されています。

XUDML_TEXT

すべてのメタデータに対して返されたXML表現。XMLデータが大きすぎて1行に収まらない場合は、複数行に分割された結果が返されます。完全な形式のOracle BI Server XMLドキュメントを得るには、結果行を連結する必要があります。

ERROR_MESSAGES

問合せの実行の結果返されたすべてのエラーを保持します。


4.4.4 プロジェクト問合せプロシージャ

プロジェクト問合せプロシージャは、リポジトリ内のプロジェクトを確認するために使用します。出力される結果セットは、出力された単一のBLOBを表す1行です。

このプロシージャの構造は、次のとおりです。

NQSQueryMetadataProjects
Input
   1.      RPD_NAME          (optional)
Output
   1.      PROJECT_NAME

表4-6は、プロジェクト問合せプロシージャの入力および出力パラメータと、それぞれの説明を示します。

表4-6 プロジェクト問合せプロシージャのパラメータと説明

パラメータ 説明

RPD_NAME

このパラメータは現在使用されていません。今後使用するために予約されています。

PROJECT_NAME

各プロジェクトを示す行セット。行セット全体を収集するのは、コール元の責任であることに注意してください。