SOAP Web サービス用データソース

CREATE DATASOURCE WS ステートメントは、SOAP Web サービスからデータを取得するデータソースを作成します。

CREATE DATASOURCE WS ステートメントの構文
CREATE [ OR REPLACE ] DATASOURCE WS <name:identifier>
    [ FOLDER = <literal> ]
    WSDLURI = <literal>
    [ <endpoint> ]
    [ CHECKCERTIFICATES ]
    [ <pool configuration> ]
    [ <authentication> ]
    [ <proxy> ]
    [ TRANSFER_RATE_FACTOR = <double> ]
    [ DESCRIPTION = <literal> ]

<endpoint> ::=
      ENDPOINT URI = <literal>
    | ENDPOINT VAR = <var_name:identifier>

<pool configuration> ::=
      MAXCONNECTIONS <integer>
      CONNECTIONPOOLTIMEOUT <integer>
      [ CONNECTIONPOOLREADTIMEOUT <integer> ]

<authentication> ::=
  AUTHENTICATION <authentication type>

<authentication type> ::=
    OFF
  | {
        HTTP BASIC
      | HTTP DIGEST
      | HTTP SPNEGO
      | WSS BASIC
      | WSS DIGEST
    }
    ( {
          <credentials>
        | WITH PASS-THROUGH SESSION CREDENTIALS ( <credentials> )
        | <credentials_with_vars>
      }
    )
  | HTTP NTLM ( {
        <ntlm_credentials>
      | WITH PASS-THROUGH SESSION CREDENTIALS ( <ntlm_credentials> )
      | <ntlm_credentials_with_vars>
    }
    )

<credentials> ::=
  USER <literal> PASSWORD <literal> [ ENCRYPTED ]

<credentials_with_vars> ::=
  USER <literal> VAR <user:identifier>
  PASSWORD <literal> VAR <password:identifier>

<ntlm_credentials> ::=
  <credentials> [ DOMAIN <literal> ]

<ntlm_credentials_with_vars> ::=
  <credentials_with_vars> [DOMAIN <literal> VAR <domain:identifier> ]

<proxy> ::=
  PROXY {
      OFF
    | DEFAULT
    | ON ( HOST <literal> PORT <integer> [ <credentials> ] )
    | AUTOMATIC ( PACURI <literal> )
  }

Web サービスデータソースを変更するには、ALTER DATASOURCE WS ステートメントを使用します。

ALTER DATASOURCE WS ステートメントの構文
ALTER DATASOURCE WS <name:identifier>
    WSDLURI = <literal>
    [ <endpoint> ]
    [ CHECKCERTIFICATES ]
    [ <pool configuration> ]
    [ <authentication> ]
    [ <proxy> ]
    [ TRANSFER_RATE_FACTOR = <double> ]
    [ DESCRIPTION = <literal> ]

<endpoint> ::= (「 CREATE DATASOURCE WS ステートメントの構文 」を参照)

<pool configuration> ::= (「 CREATE DATASOURCE WS ステートメントの構文 」を参照)

<authentication> ::= (「 CREATE DATASOURCE WS ステートメントの構文 」を参照)

<proxy>::= (「 CREATE DATASOURCE WS ステートメントの構文 」を参照)


これらのステートメントで利用する一部のパラメーターの説明 :

  • OR REPLACE: 指定されている場合、同じ名前のデータソースが存在すれば、現在の定義が新しい定義で置き換えられます。

  • WSDLURI: Web サービスを定義する WSDL ファイルへの URI。WSDL ファイルは 1 つまたは複数の Web サービスを定義し、各サービスはそれぞれ 1 つまたは複数の操作を伴う異なるポートから構成されている場合があります。Web サービスのデータソースでは、Web サービスが定義する操作のいずれかをモデリングするラッパーを作成できます。

    Virtual DataPort サーバーは、このデータソースにクエリを実行するときではなく、このデータソースに基づいてラッパーを作成するときにのみ WSDL を取得します。

    WSDLURI が指定されていない Web サービスデータソースからラッパーを作成する場合、サーバーはラッパーを不完全として指定し、ラッパーへのクエリは失敗します。このラッパーに対してクエリを実行し、サーバーが WSDL を取得できると、ラッパーは完全として指定され、「クエリ可能」になります。

  • プール構成: Web サービスデータソースは、コネクションプールを使用してデータを取得します。つまり、リクエストのたびに新しいコネクションを作成せずに既存のコネクションを再利用できるように、データソースごとに専用の HTTP コネクションのプールが用意されます。

    このデータソースの基本ビューを指定したクエリを実行すると、Virtual DataPort サーバーは、リクエストのたびに接続するのではなく、このプールにあるコネクションを再利用します。この方法の利点は、コネクションが確立済みなので、はるかに短時間で応答が得られることにあります。

    • MAXCONNECTIONS: このデータソースのプールが保存する最大コネクション数。Virtual DataPort サーバーがリクエストを実行するときに、プールに空いているコネクションが存在しない場合は、プールに新しいコネクションが作成されます。プールにあるコネクションの数が MAXCONNECTIONS に到達した状態で Virtual DataPort サーバーがさらにコネクションを必要とする場合、 CONNECTIONPOOLTIMEOUT に設定されているミリ秒数だけ Virtual DataPort サーバーが待機します。この時間が経過してタイムアウトすると、そのリクエストは失敗します。このタイムアウトの値に 0 を指定した場合、Virtual DataPort サーバーは新しいコネクションが得られるまで無期限に待機します。データソースが「パススルーセッション資格情報」を使用している場合、Virtual DataPort サーバーは各データソースのユーザー名ごとにコネクションプールを 1 つずつ作成します。

    • CONNECTIONPOOLREADTIMEOUT: コネクションのタイムアウト (ミリ秒単位)。プールからコネクションを取得した Virtual DataPort サーバーはターゲットホストに HTTP リクエストを送信します。このプロパティは、ソースからのデータの返信が始まるまでコネクションが待機する時間を制御します。これがタイムアウトに達すると、クエリは失敗します。

  • ENDPOINT: WSDL が誤った URL を参照しているか、URL が含まれていない場合、別の URL を使用して新しいデータソースに接続するように指定できます。このパラメーターが指定されていない場合、新しいデータソースは WSDL の URL を使用します。それ以外の場合は、以下を実行できます。

    • ENDPOINT URI パラメーターを用いた URL の指定。

    • 変数名の指定 (ENDPOINT VAR パラメーター)。このデータソースに基づいて作成されたすべてのビューに、このパラメーター (var_name) の値を含むフィールドがあります。これは、エンドポイントを定期的に変更したり、実行時に別のソースから取得したりする場合に役立ちます。

  • CHECKCERTIFICATES (オプション): この句を追加するのは、Administration Tool のデータソースの構成ダイアログで [Check certificates] チェックボックスをチェックするのと同じことです。このオプションを有効にする必要がある場合については、管理ガイドの「 SOAP Web サービスソースのインポート 」を参照してください。

  • プール構成 (オプション): MAXCONNECTIONS パラメーターと CONNECTIONPOOLTIMEOUT パラメーターによって、このデータソースが使用するコネクションプールの値が構成されます。詳細については、管理ガイドの「 SOAP Web サービスソース 」を参照してください。

  • AUTHENTICATION: サポートされている認証方法は以下のとおりです。

    • HTTP Basic または HTTP Digest

    • HTTP NTLM: Microsoft の NT LAN Manager (NTLM) 認証プロトコル を使用して、Microsoft Windows サーバーにアクセスします。Virtual DataPort は NTLM v1 と NTLM v2 をサポートしています。

    • HTTP SPNEGO (Kerberos): Kerberos チケットを使用して、Web サービスに送信する HTTP リクエストに署名します。詳細については、「Kerberos 認証による SOAP Web サービスへの接続」を参照してください。

    • WSS Basic および WSS Digest: WSS (Web Services Security (WS-Security)) は、Web サービスを使用するアプリケーションにセキュリティ機能を実装する場合の標準です。現在、Denodo は、認証プロファイル「ユーザー名トークン」(Web Services Security Username Token Profile 1.1.) をサポートしています。

<credentials_with_vars> の構文を使用してデータソースを作成する場合、このデータソースに基づいて作成された基本ビューには 2 つの追加フィールドがあり (NTLM 認証を使用している場合は 3 つ)、その値はWeb サービスにアクセスするための資格情報として使用されます。これらのフィールドの名前は、 VAR パラメーターの値です。

たとえば、以下のデータソースから作成されたビューには 2 つの追加フィールドとして login_varpassword_var が存在し、その値は資格情報として使用されます。

CREATE DATASOURCE WS 

AUTHENTICATION HTTP BASIC (
  USER 'anonymous' VAR login_var
  PASSWORD 'anonymous' VAR password_var )

WITH PASS-THROUGH SESSION CREDENTIALS 修飾子を使用してデータソースを作成し、あるユーザーがこのデータソースを使用するビューにクエリを実行する場合、Virtual DataPort はこのユーザーの資格情報を使用して Web サービスに接続します。この修飾子では、 USERNAME パラメーターと PASSWORD パラメーターの値は、Administration Tool がデータベースに接続し、Web サービスの操作を表示するためにのみ使用されます。データベースのテーブルやビューにクエリを実行するためには使用されません。

WITH PASS-THROUGH SESSION CREDENTIALS を使用するデータソースを作成し、Virtual DataPort サーバーへの接続に使用した資格情報とは別の資格情報でそのデータソースのビューにクエリを実行する場合は、 USERNAMEPASSWORD の各パラメーターを CONTEXT に追加します。この 2 つのパラメーターは、 WITH PASS-THROUGH SESSION CREDENTIALS オプションを使用して作成したデータソースの場合のみ考慮されます。

たとえば、WITH PASS-THROUGH SESSION CREDENTIALS オプションを使用して view1 を作成し、以下を実行するとします。

SELECT *
FROM view1
CONTEXT(
    USERNAME = 'admin'
  , PASSWORD = 'd4GvpKA5BiwoGUFrnH92DNq5TTNKWw58I86PVH2tQIs/q1RH9CkCoJj57NnQUlmvgvvVnBvlaH8NFSDM0x5fWCJiAvyia70oxiUWbToKkHl3ztgH1hZLcQiqkpXT/oYd' ENCRYPTED
  , DOMAIN = 'ACME_DOMAIN')

Virtual DataPort サーバーは、ユーザーが Virtual DataPort サーバーへの接続に使用した資格情報を無効にし、ユーザー名 admin 、パスワード password 、ドメイン acme_domain を使用して Web サービスに接続します。

トークン ENCRYPTED を追加して、必ず暗号化したパスワードを入力する必要があります。パスワードを暗号化するには、 ENCRYPT_PASSWORD コマンドを使用します。以下に例を示します。

ENCRYPT_PASSWORD 'my_secret_password';

警告

パススルー資格情報が有効なデータソースを使用するビューに対してキャッシュを有効にする場合は注意が必要です。詳細については、「データソースをパススルー資格情報を使用して構成する場合の検討事項」を参照してください。

  • PROXY (オプション): HTTP リクエストがプロキシ経由で送信される場合、3 つのオプションがあります。

    • DEFAULT: Virtual DataPort サーバーは、サーバーのデフォルトの HTTP プロキシ構成を使用します。これらのデフォルト値の構成方法については、管理ガイドの「 HTTP プロキシのデフォルト構成 」を参照してください。

    • ON: Virtual DataPort サーバーは、 HOST パラメーターと PORT パラメーターで示されたプロキシサーバーに接続します。プロキシが認証を要求した場合は、プロキシの資格情報も入力する必要があります。

    • AUTOMATIC: プロキシの構成パラメーターが格納されている proxy.pac ファイルの URL を入力します。

  • TRANSFER_RATE_FACTOR: Denodo サーバーとデータソース間のネットワーク接続速度の相対的な測定値。従来の 100 Mbps LAN を介してデータソースにアクセス可能な場合は、デフォルト値 (オンプレミスの JDBC データベースの場合は 1) を使用します。より高速なネットワークの場合はより大きな値を、WAN 経由でアクセス可能なデータソースの場合はより小さな値を使用します。

    コストオプティマイザーは、実行計画のコストを評価するときにこの値を使用します。通常はデフォルト値が適正に設定されているため、コストオプティマイザーに精通していないかぎり、このパラメーターは指定しないでください。