管理ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容

Oracle SALT アプリケーションのコンフィグレーション

この節では、以下のトピックを取り上げます。

 


Tuxedo Web サービスのコンフィグレーション

Oracle SALT の Tuxedo サービス メタデータ リポジトリの使用

Oracle SALT では、Tuxedo サービス メタデータ リポジトリを利用して、Tuxedo の従来のサービスと SALT プロキシ サービスの両方のサービス契約情報を定義します。Tuxedo サービス一覧で指定したすべてのサービスに関するサービス規約情報を、ローカル Tuxedo ドメインによって提供される Tuxedo サービス メタデータ リポジトリ サービスにアクセスして取得します。通常は、以下に示すように、SALT から TMMETADATA システムを呼び出します。

以下のトピックでは、SALT 特有の Tuxedo サービス メタデータ リポジトリ キーワードとパラメータの使用について説明します。

Oracle SALT 用のサービスレベル キーワードの定義

表 2-1 では、SALT で使用および解釈される Tuxedo サービス メタデータ リポジトリのサービスレベル キーワードを示します。

注意 : 指定されていないメタデータ リポジトリのサービスレベル キーワードは、Oracle SALT とは関係性がなく、SALT コンポーネントが Tuxedo サービス メタデータ リポジトリをロードする時に無視されます。

表 2-1 Oracle SALT における Tuxedo サービス メタデータ リポジトリのサービスレベル キーワードの使用
サービスレベル キーワード
Oracle SALT での使用方法
service
サービスのユニークなキー値であり、SALT WSDF ファイルで参照される。
ネイティブな Tuxedo サービスの場合は、この値を Tuxedo で公開されているサービス名と同じ値にしても、Tuxedo で公開されている実際のサービス名とは異なるエリアス名と同じ値にしても構わない。
SALT プロキシ サービスの場合、通常はこの値を Web サービスのオペレーション ローカル名にする。
servicemode
サービス モード (たとえば、ネイティブ Tuxedo サービスや SALT プロキシ サービス) を決定する。
有効な値は以下のとおり。
  • tuxedo はネイティブ Tuxedo サービスを表す。
  • webservice は、SALT プロキシ サービス (たとえば、wsdl:operation を使用して変換されたサービス定義) を表す。
ネイティブ Tuxedo サービスを定義するには「webservice」を使用しない。この値は常に外部 Web サービスから変換されたサービスを定義するために使用される。
tuxservice
Tuxedo で公開されている実際のサービス名。値を指定しない場合は、service キーワードの値と同じと見なされる。
ネイティブな Tuxedo サービスの場合は、このキーワードを使用して定義された Tuxedo サービスを Oracle SALT から呼び出す。
SALT プロキシ サービスの場合は、GWWS サーバがこのキーワード値を使用してサービス名を公開する。
servicetype
指定した Tuxedo サービスに対するサービス メッセージ交換パターンを決定する。
該当する種類の Tuxedo サービスと Web サービス MEP (メッセージ交換パターン) とのマッピング ルールを、以下の値により指定する。
  • service : 要求/応答型 MEP に対応
  • oneway : 一方向の要求型 MEP に対応
  • queue : 要求/応答型 MEP に対応
inbuf
サービスの入力バッファ (要求バッファ) の型を指定する。
ネイティブな Tuxedo サービスの場合は、どの型の Tuxedo タイプ バッファにしてもよい。Tuxedo でバッファ型として予約されている値は以下のとおり。
STRING、CARRAY、XML、MBSTRING、VIEW、VIEW32、FML、FML32、X_C_TYPE、X_COMMON、X_OCTET、NULL (入力バッファは空)

注意 : 値の大文字、小文字は区別される。inbuf でこれら以外のバッファ型を指定した場合、そのバッファはカスタム バッファ型として扱われる。

SALT プロキシ サービスの場合は、この値を常に FML32 にする。
outbuf
サービスの出力バッファ (TPSUCCESS との応答バッファ) の型を指定する。
ネイティブな Tuxedo サービスの場合は、どの型の Tuxedo タイプ バッファにしてもよい。Tuxedo でバッファ型として予約されている値は以下のとおり。
STRING、CARRAY、XML、MBSTRING、VIEW、VIEW32、FML、FML32、X_C_TYPE、X_COMMON、X_OCTET、NULL (入力バッファは空)

注意 : 値の大文字、小文字は区別される。outbuf でこれら以外のバッファ型を指定した場合、そのバッファはカスタム バッファ型として扱われる。

SALT プロキシ サービスの場合は、この値を常に FML32 にする。
errbuf
サービスのエラー バッファ (TPFAIL との応答バッファ) の型を指定する。
ネイティブな Tuxedo サービスの場合は、どの型の Tuxedo タイプ バッファにしてもよい。Tuxedo でバッファ型として予約されている値は以下のとおり。
STRING、CARRAY、XML、MBSTRING、VIEW、VIEW32、FML、FML32、X_C_TYPE、X_COMMON、X_OCTET、NULL (入力バッファは空)

注意 : 値の大文字、小文字は区別される。errbuf でこれら以外のバッファ型を指定した場合、そのバッファはカスタム バッファ型として扱われる。

SALT プロキシ サービスの場合は、この値を常に FML32 にする。
inview
サービスにおいて以下の入力バッファ型に対して使用されるビューの名前を指定する。
VIEW、VIEW32、X_C_TYPE、または X_COMMON
Oracle SALT では、デフォルトの inview 設定をそのまま使うことはできず、ビューの名前を指定する必要がある。
このキーワードはネイティブな Tuxedo サービス専用。
outview
サービスにおいて以下の出力バッファ型に対して使用されるビューの名前を指定する。
VIEW、VIEW32、X_C_TYPE、または X_COMMON
Oracle SALT では、デフォルトの outview 設定をそのまま使うことはできず、ビューの名前を指定する必要がある。
このキーワードはネイティブな Tuxedo サービス専用。
errview
サービスにおいて以下のエラー バッファ型に対して使用されるビューの名前を指定する。
VIEW、VIEW32、X_C_TYPE、または X_COMMON
Oracle SALT では、デフォルトの errview 設定をそのまま使うことはできず、ビューの名前を指定する必要がある。
このキーワードはネイティブな Tuxedo サービス専用。
inbufschema
サービス入力バッファに関連付ける外部 XML Schema 要素を指定する。この値を指定すると、外部スキーマが生成済みの WSDL に組み込まれ、サービス入力バッファのデフォルトのデータ型マッピング ルールが置き換えられる。
このキーワードはネイティブな Tuxedo サービス専用。
outbufschema
サービス出力バッファに関連付ける外部 XML Schema 要素を指定する。この値を指定すると、外部スキーマが生成済みの WSDL に組み込まれ、サービス出力バッファのデフォルトのデータ型マッピング ルールが置き換えられる。
このキーワードはネイティブな Tuxedo サービス専用。
errbufschema
サービス エラー バッファに関連付ける外部 XML Schema 要素を指定する。この値を指定すると、外部スキーマが生成済みの WSDL に組み込まれ、サービス エラー バッファのデフォルトのデータ型マッピング ルールが置き換えられる。
このキーワードはネイティブな Tuxedo サービス専用。

Oracle SALT 用のサービス パラメータの定義

Tuxedo サービス メタデータ リポジトリでは、パラメータは Tuxedo サービスの型付きバッファ内にカプセル化されたサブ要素として解釈されます。パラメータごとに、データ型、バッファ内の出現回数、サイズ制限、その他 Tuxedo に特有の制限を設定できます。以下に注意してください。

表 2-2 では、SALT で使用および解訳される Tuxedo サービス メタデータ リポジトリのパラメータレベル キーワードを示します。

注意 : 指定されていないメタデータ リポジトリのパラメータレベル キーワードは、Oracle SALT とは関係性がなく、SALT コンポーネントが Tuxedo サービス メタデータ リポジトリをロードする時に無視されます。

表 2-2 Oracle SALT における Tuxedo サービス メタデータ リポジトリのパラメータレベル キーワードの使用
パラメータレベル キーワード
Oracle SALT での使用方法
param
パラメータ名を指定する。
  • VIEW、VIEW32、X_C_TYPE または X_COMMON
  • ビュー構造のメンバー名を param キーワードで指定する。

  • FML、FML32
  • FML/FML32 フィールド名を param キーワードで指定する。

  • STRING、CARRAY、XML、MBSTRING または X_OCTET
  • このパラメータの定義は Oracle SALT により無視される。

type
パラメータのデータ型を指定する。

注意 : Oracle SALT では、dec_t および ptr データ型はサポートされていない。

subtype
パラメータ型が VIEW32 の場合、ビュー構造の名前を指定する。その他すべての型のパラメータについては、この値は無視される。

注意 : パラメータ型が VIEW32 の場合は、この値は必ず指定する必要がある。

このキーワードはネイティブな Tuxedo サービス専用。
access
一般的な定義をこのパラメータに適用する。Tuxedo TPFAIL シナリオをサポートするには、access 属性の値が拡張されている。
元の値 : in、out、inout、noaccess
新しい値 : err、inerr、outerr、inouterr
count
一般的な定義をこのパラメータに適用する。Oracle SALT では、count パラメータには requiredcount の値と同じか、またはそれより大きい値を指定する必要がある。
requiredcount
一般的な定義をこのパラメータに適用する。デフォルト値は 1 である。Oracle SALT では、count パラメータには requiredcount の値と同じか、またはそれより大きい値を指定する必要がある。
size
このキーワードは省略可能で、パラメータの最大バイト長を制限する場合に使用する。以下のパラメータ型に対してのみ有効。
STRING、CARRAY、XML、MBSTRING
設定しない場合、このパラメータは最大バイト長の制限を受けない。
値の範囲は [0、2147483647] である。
paramschema
パラメータに対応する XML Schema 要素名を指定する。SALT WSDL コンバータによって生成される。
このキーワードはネイティブな SALT プロキシ サービス専用。ネイティブな Tuxedo サービスには指定しないこと。
primetype
パラメータに対応する XML プリミティブ データ型を指定する。SALT であらかじめ定義された XML から Tuxedo データ型へのマッピング ルールに従って、SALT WSDL コンバータによって生成される。
このキーワードはネイティブな SALT プロキシ サービス専用。ネイティブな Tuxedo サービスには指定しないこと。

ネイティブ Tuxedo サービスのコンフィグレーション

この節では、ネイティブ Tuxedo サービスを Web サービスとしてエクスポーズするために必要なコンフィグレーションと省略可能なコンフィグレーション タスクについて説明します。

ネイティブ WSDF の作成

1 つまたは複数の HTTP/S エンドポイントを介して一連の Tuxedo サービスを Web サービスとしてエクスポーズするには、ネイティブ WSDF を定義する必要があります。

各ネイティブ WSDF はユニークな WSDF 名で定義する必要があります。WSDF では、Web サービス アプリケーションの詳細 (SOAP プロトコルの詳細、Web サービスのオペレーションとしてエクスポーズする Tuxedo サービスの一覧など) に対して 1 つまたは複数の <WSBinding> 要素を定義できます。

WSBinding オブジェクトの定義

個々の WSBinding オブジェクトは <WSBinding> 要素を使用して定義します。個々の WSBinding オブジェクトは、WSDF 内でユニークな WSBinding ID を使用して定義する必要があります。WSBinding id は GWWS によって使用される SALTDEPLOY ファイルの参照に必要な識別子です。

個々の WSBinding オブジェクトは、<SOAP> サブ要素を使用して SOAP プロトコルの詳細に関連付けることができます。WSBinding オブジェクトには、デフォルトでは SOAP 1.1 および document/literal スタイルの SOAP メッセージが適用されます。

コード リスト 2-1 では、<SOAP> サブ要素を使用して SOAP プロトコルの詳細を再定義する方法を示します。

コード リスト 2-1 WSBinding に対して SOAP プロトコルの詳細の定義
<Definition ...>
  <WSBinding id="simpapp_binding">
    <Servicegroup id="simpapp">
      <Service name="toupper" />
      <Service name="tolower" />
    </Servicegroup>
    <SOAP version=”1.2” style=”rpc” use=”encoded”>
      <AccessingPoints>
        ...
      </AccessingPoints>
    </SOAP>
  </WSBinding>
</Definition>

<SOAP> 要素内で、一連のアクセス エンドポイントを指定できます。対応する GWWS サーバは、これらのアクセス エンドポイントの URL 値を使用してリスン HTTP/S プロトコル ポートを作成します。着信 WSBinding オブジェクトに対して各 GWWS サーバで HTTP および HTTPS エンドポイントを最大で 1 つ指定することをお勧めします。

個々の WSBinding オブジェクトは、<Servicegroup> サブ要素を使用して Tuxedo サービスのグループに定義する必要があります。<Servicegroup> の下の各 <Service> 要素は、Web サービスのクライアントからアクセスできる Tuxedo サービスを表します。

サービス オブジェクトの定義

個々のサービス オブジェクトは、<Service> 要素を使用して定義します。各サービスは、エクスポーズされた Tuxedo サービスを示すように「name」属性で指定する必要があります。通常、Tuxedo サービス メタデータ リポジトリから Tuxedo サービス規約情報を取得するには「name」値がキー値として使用されます。

コード リスト 2-2 では、WSBinding のサービス グループを定義する方法を示します。

コード リスト 2-2 WSBinding 用のサービス グループの定義
<Definition ...>
  <WSBinding id="simpapp_binding">
    <Servicegroup id="simpapp">
      <Service name="toupper" />
      <Service name="tolower" />
    </Servicegroup>
    ...
  </WSBinding>
</Definition>
メッセージ変換ハンドラのコンフィグレーション

SOAP XML ペイロードおよび Tuxedo 型付きバッファの変換ルーチンをカスタマイズするために独自のプラグイン機能を作成できます。詳細については、『Web サービスのプログラミング』の「Oracle SALT プラグインの使用」および「プラグイン ライブラリのコンフィグレーション」を参照してください。

プラグインを作成しコンフィグレーションすると、そのサービスのユーザ定義データマッピング ルールを指定するには、<service> 要素を使用してそのプラグインを参照できます。<Msghandler> 要素は、メッセージ レベル (<Input><Output>、または <Fault>) で定義することができます。この要素を使用して、メッセージを変換するために「P_CUSTOM_TYPE」カテゴリ プラグインのどの実装を使用する必要があるかについて指定します。<Msghandler> 要素の内容はプラグインの名前です。

コード リスト 2-3 では、入力を変換するために「MBCONV」カスタム タイプ プラグインを使用するサービスと、出力を変換するために「XMLCONV」カスタム タイプ プラグインを使用するサービスを示します。

コード リスト 2-3 サービスに対するメッセージ変換ハンドラのコンフィグレーション
<Definition ...>
  <WSBinding id="simpapp_binding">
    <Servicegroup id="simpapp">
      <Service name="toupper" >
        <Input>
          <Msghandler>
MBCONV</Msghandler>
        </Input>
        <Output>
          <Msghandler>
XMLCONV</Msghandler>
        </Output>
     </Service>
    </Servicegroup>
    ...
  </WSBinding>
</Definition>

WS-Policy ファイルの使用

高度な Web サービスの機能は、WS-Policy ファイル (例えば、信頼性のあるメッセージングおよび Web サービスのメッセージレベル セキュリティ) をコンフィグレーションして有効できます。これらの機能を使用するには、WS-Policy ファイルの作成が必要になる場合があります。Web Service Policy Framework 仕様により、Web サービスのポリシーを記述および通信するための汎用的なモデルと構文が提供されています。

WS-Policy ファイルを使用する場合、<Policy> 要素を定義してこれらの異なる WS-Policy ファイルを WSDF に組み込む必要があります。ポリシー ファイル パスの指定には location 属性を使用します。絶対ファイル パスでも相対ファイル パスでも指定できます。省略可能な use 属性をメッセージ レベルのアサーション ポリシー ファイルで使用すると、適用するメッセージ (リクエスト (入力) メッセージ、応答 (出力) メッセージ、またはエラー メッセージ、あるいはこれら 3 つの組み合わせ) を指定できます。

WSDF には、WS-Policy ファイルを参照する 2 つのサブ要素があります。

Oracle SALT には、使用されることの多い用途に合わせてあらかじめパッケージ化された WS-Policy ファイルが含まれています。これらの WS-Policy ファイルは $TUXDIR/udataobj/salt/policy ディレクトリにあります。これらのファイルを参照するには、location="salt:<policy_file_name>" を使用します。

コード リスト 2-4 では、WS-Policy ファイルをネイティブ WSDF ファイルに使用する例を表します。

コード リスト 2-4 WSDF ファイル内で WS-Policy ファイルの定義例
<Definition ...>
  <WSBinding id="simpapp_binding">
    <Servicegroup id="simpapp">
      <Policy location=”./endpoint_policy.xml” />
      <Policy location=”/usr/resc/all_input_msg_policy.xml” use=”input” />
      <Service name="toupper">
        <Policy location=”service_policy.xml” />
        <Policy location=”/usr/resc/input_message_policy.xml”
                use=”input” />
      </Service>
      <Service name="tolower" />
    </Servicegroup>
    ....
  </WSBinding>
</Definition>

詳細については、「WSDF ファイルで信頼性のあるメッセージング ポリシー ファイルの指定」および「WS-SecurityPolicy ファイルの使用」を参照してください。

ネイティブ WSDF から WSDL ファイルの生成

Tuxedo のネイティブ WSDF が作成さたら、SALT WSDL の生成ユーティリティ tmwsdlgen を使用して、対応する WSDL ファイルを生成できます。次に、「app1.wsdf」という WSDF から「app1.wsdl」という WSDL ファイルを生成したサンプル コマンドを示します。

tmwsdlgen -c app1.wsdf -o app1.wsdl

注意 : tmwsdlgen を実行する前に、TUXCONFIG 環境変数を正しく設定し、TMMETADATA を使用して関連する Tuxedo アプリケーションを起動する必要があります。

または、「-o」オプションを使用して出力 WSDL ファイル名を指定できます。指定しない場合、tmwsdlgen は、デフォルト値として「tuxedo.wsdl」という名前の WSDL ファイルを作成します。

ネイティブ WSDF ファイルに、CARRAY バッファを使用する Tuxedo サービスが含まれている場合、CARRAY バッファ マッピングに対して別のスタイルの WSDL ファイルを生成するために tmwsdlgen オプションを指定できます。デフォルトでは、CARRAY バッファが SOAP メッセージで xsd:base64Binary XML データ型としてマップされています。詳細については、『Web サービスのプログラミング』の「データ型のマッピングとメッセージ変換」および『リファレンス ガイド』の「tmwsdlgen」を参照してください。

外部 Web サービスのコンフィグレーション

Tuxedo から外部 Web サービスを呼出すには、以下のコンフィグレーション タスクを実行します。

Tuxedo 定義への WSDL ファイルの変換

Oracle SALT には、外部 WSDL ファイルを Tuxedo 定義に変換するための WSDL 変換ユーティリティが付属しています。WSDL ファイルは Extensible Stylesheet Language Transformations (XSLT) テクノロジを使用して変換されます。SALT のインストール パッケージには、デフォルトの XSLT ツールキットとして使用する Apache Xalan Java 2.7.0 がバンドルされています。

Oracle SALT WSDL コンバータは 2 つの部分で構成されています。

次のサンプル コマンドでは、外部 WSDL ファイルを変換して Tuxedo 定義ファイルを生成しています。

wsdlcvt -i http://api.google.com/GoogleSearch.wsdl -o GSearch

表 2-3 では、Oracle SALT WSDL コンバータによって生成された Tuxedo 定義ファイルを示します。

表 2-3 Oracle SALT WSDL コンバータによって生成された Tuxedo 定義ファイル
生成されたファイル
説明
Tuxedo サービス メタデータのリポジトリ入力ファイル
Oracle SALT WSDL コンバータでは、各 wsdl:operation が Tuxedo サービス メタデータ構文に準拠した SALT プロキシ サービスに変換される。SALT プロキシ サービスは、GWWS サーバによって公開され、Tuxedo アプリケーションからの ATMI 呼び出しを受け付けるために使用する。
FML32 フィールド テーブル定義ファイル
Oracle SALT では、各 wsdl:message が Tuxedo FML32 タイプ バッファにマップされる。Oracle SALT WSDL コンバータでは、各メッセージの XML Schema が分解され、各基本 XML スニペットに FML32 フィールドとしてマップされる。生成された FML32 フィールドは定義テーブル ファイルで定義され、デフォルトではそのフィールド名が XML 要素のローカル名と同じになる。
Tuxedo アプリケーションから SALT プロキシ サービスにアクセスする場合は、生成された FML32 フィールドを参照してリクエスト メッセージと応答メッセージを処理する必要がある。FML32 環境変数を適切に設定して、Tuxedo アプリケーションと GWWS サーバの両方がフィールド名とフィールド ID 値をマップできるようにする必要がある。

注意 : 生成されたフィールド名が他のフィールド名と競合しているなど、何らかの理由でフィールド名を再定義したい場合は、Tuxedo Service メタデータ定義入力ファイルと FML32 フィールド テーブル定義ファイルの両方を変更する必要がある。詳細については、「生成された SALT プロキシ サービス定義での名前の競合を解決する」を参照。

ネイティブでない WSDF ファイル
Oracle SALT WSDL コンバータで WSDL ファイルを WSDF ファイルに変換し、これを発信方向の SALT デプロイメント ファイルで GWWS サーバにデプロイできる。この方法で生成される WSDF ファイルを、ネイティブでない WSDF ファイルと呼ぶ。

注意 : ネイティブでない WSDF ファイルを着信方向にデプロイしないこと。

XML Schema ファイル
WSDL の埋め込み XML Schema とインポート XML Schema (<xsd:import> で参照する XML Schema コンテンツ) は、ローカルに .xsd ファイルとして保存される。これらは GWWS サーバで使用するファイルで、同じディレクトリに保存する必要がある。

注意 : GWWS サーバにこれらの .xsd ファイルをロードできるよう、新たに追加された XML Schema 環境変数 (XSDDIR および XSDFILES) を適切に設定する必要がある。

WSDL から Tuxedo サービス メタデータ キーワードへのマッピング

表 2-4 では、WSDL 要素から Tuxedo サービス メタデータ定義キーワードへのマッピング ルールを示します。

表 2-4 WSDL 要素から Tuxedo サービス メタデータ定義へのマッピング
WSDL 要素
Tuxedo サービス メタデータ定義キーワード
注意
/wsdl:definitions
 /wsdl:portType
  /wsdl:operation
   @name
service
SALT プロキシ サービス名。
キーワード値はオペレーションのローカル名と同じ値になる。
tuxservice
SALT プロキシ サービスの Tuxedo システムでの公開名。
wsdl オペレーションのローカル名は 15 文字未満である場合、キーワード値はオペレーションのローカル名と同じ値になる。それ以外の場合、キーワード値はオペレーションのローカル名の先頭 15 文字となる。
/wsdl:definitions
 /wsdl:portType
  /wsdl:operation
   /wsdl:input
inbuf=FML32
WSDL オペレーション メッセージは、常に Tuxedo FML32 バッファ型としてマップされる。
バッファ型は変更しないこと。

注意 : wsdl メッセージと FML32 バッファのマッピングの詳細については、『Web サービスのプログラミング』の「外部 Web サービス用 XML-to-Tuxedo データ型のマッピング」を参照。

/wsdl:definitions
 /wsdl:portType
  /wsdl:operation
   /wsdl:output
outbuf=FML32
/wsdl:definitions
 /wsdl:portType
  /wsdl:operation
   /wsdl:fault
errbuf=FML32

WSDL から WSDF へのマッピング

表 2-5 では、WSDL 要素から WSDF 要素へのマッピング ルールを示します。

表 2-5 WSDL 要素から WSDF 要素へのマッピング
WSDL 要素
WSDF 要素
注意
/wsdl:definitions
 @targetNamespace
/Definition
 @wsdlNamespace
各 wsdl:definition を WSDF Definition にマップする。
/wsdl:definitions
 /wsdl:binding
/Definition
 /WSBinding
各 wsdl:binding オブジェクトを WSDF WSBinding 要素にマップする。
/wsdl:definitions
 /wsdl:binding
  @type
/Definition
 /WSBinding
  /Servicegroup
各 wsdl:binding で参照する wsdl:portType オブジェクトを、対応する WSBinding 要素の Servicegroup 要素にマップする。
/wsdl:definitions
 /wsdl:binding
  /soap:binding
/Definition
 /WSBinding
  /SOAP
   @version
プレフィックスが「soap」のネームスペースが URI「http://schemas.xmlsoap.org/wsdl/soap/」を参照する場合の SOAP バージョン値は「1.1」。
プレフィックスが「soap」のネームスペースが URI「http://schemas.xmlsoap.org/wsdl/soap12/」を参照する場合の SOAP バージョン値は「1.2」。
/wsdl:definitions
 /wsdl:binding
  /soap:binding
   @style
/Definition
 /WSBinding
  /SOAP
   @style
WSDF WSBinding SOAP メッセージのスタイル設定は、対応する WSDL SOAP バインディング メッセージのスタイル設定と同じになる (「rpc」または「document」)。
/wsdl:definitions
 /wsdl:binding
  /wsdl:operation
/Definition
 /WSBinding
  /Servicegroup
   /Service
各 wsdl:operation オブジェクトを対応する WSBinding 要素の Service 要素にマップする。
/wsdl:definitions
 /wsdl:port
  /soap:address
/Definition
 /WSBinding
  /SOAP
   /AccessingPoints
    /Endpoint
wsdl:binding オブジェクト用に定義された各 soap:address エンドポイントを、対応する WSBinding 要素の Endpoint 要素にマップする

変換後のタスク

発信 Web サービス アプリケーションをコンフィグレーションするには、以下の変換後のタスクを実行する必要があります。

生成された SALT プロキシ サービス定義での名前の競合を解決する

WSDL ファイルを変換すると、コンテキスト情報の切り捨てまたは消失のせいで、予期せぬ名前の競合が発生する場合があります。生成されたサービス メタデータ定義と FML32 フィールド テーブル ファイルを使用する前に、以下のような名前の衝突を解決する必要があります。

生成された SALT プロキシ サービス メタデータ定義をロードする

名前の競合が解決したら、tmloadrepos ユーティリティを使用して、SALT プロキシ サービス メタデータ定義を Tuxedo サービス メタデータ リポジトリにロードします。詳細については、「Oracle Tuxedo サービス メタデータ リポジトリ」の「tmloadrepos」を参照してください。

GWWS ランタイムの環境変数を設定する

発信 Web サービス用に GWWS サーバを起動する前に、以下の環境変数を設定する必要があります。

SALT デプロイメント ファイルの作成

SALT デプロイメント ファイル (SALTDEPLOY) では、SALT Web サービスのアプリケーションを定義します。SALTDEPLOY ファイルはバイナリ SALTCONFIG ファイルの Web サービス アプリケーションに対する重要な入力です。

SALTDEPLOY ファイルを作成するには、次の手順に従います。

  1. WSDF ファイルのインポート
  2. GWWS サーバのコンフィグレーション
  3. システム レベル リソースのコンフィグレーション

詳細については、『リファレンス ガイド』の「SALT デプロイメント ファイルのリファレンス」を参照してください。

WSDF ファイルのインポート

必要な WSDF ファイルをすべて SALT デプロイメント ファイルにインポートする必要があります。各インポートした WSDF ファイルはユニークな WSDF 名前が設定されている必要があります。この名前はデプロイメントに関連付けるために GWWS サーバによって使用されます。インポートした各 WSDF ファイルは、SALTDEPLOY ファイルに指定した場所を介してローカルでアクセス可能である必要があります。

コード リスト 2-5 では、SALTDEPLOY ファイルに WSDF ファイルをインポートする方法について説明します。

コード リスト 2-5 SALTDEPLOY ファイルに WSDF ファイルのインポート
<Deployment ..>
  <WSDF>
    <Import location="/home/user/simpapp_wsdf.xml" />
    <Import location="/home/user/rmapp_wsdf.xml" />
    <Import location="/home/user/google_search.wsdf" />
  </WSDF>
  ...
</Deployment>

GWWS サーバのコンフィグレーション

GWWS サーバは、インポートした WSDF ファイルに定義した着信 WSBinding オブジェクトおよび発信 WSBinding オブジェクトのグループと共にデプロイできます。各 WSBinding オブジェクトは、「ref=<wsdf_name>:<WSBinding id>」属性を使用して参照します。着信 WSBinding オブジェクトについては、GWWS サーバでは、WSBinding オブジェクトのエンドポイント リストから 1 つのアクセス エンドポイントを着信エンドポイントとして指定する必要があります。着信 WSBinding オブジェクトについては、各 GWWS サーバでは、WSBinding オブジェクトのエンドポイント リストから 0 またはそれ以上のアクセス エンドポイントを発信エンドポイントとして指定できます。

コード リスト 2-6 では、着信および発信エンドポイントで GWWS サーバをコンフィグレーションする方法について説明します。

コード リスト 2-6 SALTDEPLOY ファイルに定義した GWWS サーバ
<Deployment ..>
  ...
  <WSGateway>
    <GWInstance id="GWWS1">
      <Inbound>
        <Binding ref="app1:app1_binding">
          <Endpoint use="simpapp_GWWS1_HTTPPort" />
          <Endpoint use="simpapp_GWWS1_HTTPSPort" />
        </Binding>
      </Inbound>
      <Outbound>
        <Binding ref="app2:app2_binding">
          <Endpoint use=" simpapp_GWWS1_HTTPPort" />
          <Endpoint use=" simpapp_GWWS1_HTTPSPort" />
        </Binding>
        <Binding ref="app3:app3_binding" />
      </Outbound>
    </GWInstance>
  </WSGateway>
  ...
</ Deployment>
GWWS サーバ レベル プロパティのコンフィグレーション

GWWS サーバは、機能をオン/オフにするプロパティまたはサーバのパフォーマンスをチューニングする引数を設定するプロパティでコンフィグレーションできます。

プロパティは <GWInstance> の子要素 <Properties> にコンフィグレーションされます。各個別のプロパティは、「name」属性および「value」属性を含む <Property> 要素を使用して指定します。異なる「name」属性は、値を含む異なるプロパティ要素を表します。表 2-6 では、GWWS サーバ レベル プロパティを示します。

表 2-6 GWWS サーバ レベル プロパティ
プロパティ名
説明
値の範囲
デフォルト
enableMultiEncoding
SOAP メッセージで複数のエンコーディングをサポートするかどうかを指定する。
“true”|“false”
“false”
max_backlog
ソケット バックログの制御値を指定する。
[1, 255]
20
max_content_length
着信 HTTP メッセージのコンテンツの最大長を指定する。
[0, 1G] (バイト)
(サフィックスとして「M」または「G」を設定できる (例 : 1.5M、0.2G))
0
(制限なしを意味する)
thread_pool_size
GWWS サーバのスレッド プール サイズを指定する。
[1, 1024]
16
timeout
ネットワーク タイムアウトを秒単位で指定する。
[1, 65535]
(単位 : 秒)
300
wsrm_acktime
信頼性のあるメッセージングの確認応答メッセージの応答ポリシーを指定する。GWWS サーバでは、ネットワークから SOAP リクエストを受信した直後か、Tuxedo サービスから応答メッセージが返された後に確認応答メッセージを送信できる。
“NETRECV” | “RPLYRECV”
"NETRECV"

注意 : GWWS での複数のエンコーディング サポートについては、「複数のエンコーディング サポートのコンフィグレーション」を参照してください。
注意 : パフォーマンス チューニング プロパティの詳細については、「GWWS サーバのチューニング」を参照してください。

コード リスト 2-7 では、GWWS プロパティのコンフィグレーション例を示します。

コード リスト 2-7 GWWS サーバ プロパティのコンフィグレーション
<Deployment ..>
  ...
  <WSGateway>
    <GWInstance id="GWWS1">
      .......
      <Properties>
        <Property name="
thread_pool_size" value="20"/>
        <Property name="
enableMultiEncoding" value="true"/>
        <Property name="
timeout" value="600"/>
      </Properties>
    </GWInstance>
  </WSGateway>
  ...
</ Deployment>
複数のエンコーディング サポートのコンフィグレーション

SALT では、SOAP メッセージ用の複数のエンコーディング、および SOAP メッセージと Tuxedo バッファの間のエンコーディング マッピングがサポートされています。文字エンコーディングとしては以下がサポートされます。

注意 : ASCII、BIG5、CP1250、CP1251、CP1252、CP1253、CP1254、CP1255、CP1256、CP1257、CP1258、CP850、CP862、CP866、CP874、EUC-CN、EUC-JP、EUC-KR、GB18030、GB2312、GBK、ISO-2022-JP、ISO-8859-1、ISO-8859-13、ISO-8859-15、ISO-8859-2、ISO-8859-3、ISO-8859-4、ISO-8859-5、ISO-8859-6、ISO-8859-7、ISO-8859-8、ISO-8859-9、JOHAB、KOI8-R、SHIFT_JIS、TIS-620、UTF-16、UTF-16BE、UTF-16LE、UTF-32、UTF-32BE、UTF-32LE、UTF-7、UTF-8

GWWS での複数のエンコーディング サポートを有効にするには、GWWS サーバ レベル プロパティ「enableMultiEncoding」を "true" に設定します。

注意 : GWWS では、UTF-8 以外の外部メッセージが UTF-8 に変換されます。ただし、エンコーディングの変換はサーバのパフォーマンスに影響します。デフォルトでは、エンコーディングの変換はオフで、UTF-8 エンコードのないメッセージが拒否されます。
コード リスト 2-8 GWWS サーバの複数エンコーディング プロパティのコンフィグレーション
<Deployment ..>
  ...
  <WSGateway>
    <GWInstance id="GWWS1">
      .......
      <Properties>
        <Property name="enableMultiEncoding" value="true"/>
      </Properties>
    </GWInstance>
  </WSGateway>
  ...
</ Deployment>

表 2-7 では、GWWS サーバ レベルの複数エンコーディング プロパティを有効にした場合に適用される、SOAP メッセージと Tuxedo バッファの間のエンコーディング マッピング ルールの詳細について説明します。

表 2-7 SALT メッセージ エンコーディング マッピング ルール
マップ元
マップ先
エンコーディング マッピング ルール
SOAP/XML
Tuxedo タイプ バッファ
string/mbstring/xml バッファまたはフィールドの文字のエンコーディングを SOAP xml エンコーディングと同じにする。
STRING タイプ バッファ
SOAP/XML
対象の SOAP メッセージを UTF-8 エンコーディングに設定し、元の STRING バッファには UTF-8 エンコーディングの文字のみが含まれるものと見なす。

注意 : Tuxedo での開発においては、STRING の文字を必ず UTF-8 エンコーディングにする必要がある。

MBSTRING/XML タイプ バッファ
SOAP/XML
SOAP xml エンコーディングを MBSTRING/XML エンコーディングと同じにする。
複数の FLD_MBSTRING フィールドが同じエンコーディングに設定されている FML/32、VIEW/32 タイプ バッファ
SOAP/XML
SOAP xml エンコーディングを FLD_MBSTRING エンコーディングに設定する。元のタイプ バッファ フィールドの文字は、SOAP メッセージ内では変更されない。
注意 : Tuxedo での開発においては、同じバッファ内の FLD_STRING の文字を必ず同じエンコーディングにする必要がある。
複数の FLD_MBSTRING フィールドが異なるエンコーディングに設定されている FML/32、VIEW/32 タイプ バッファ
SOAP/XML
SOAP xml エンコーディングを UTF-8 に設定する。エンコーディングが異なる元のタイプ バッファ FLD_MBSTRING フィールドの文字は、SOAP メッセージ内で UTF-8 に変換される。

注意 : Tuxedo での開発においては、同じバッファ内の FLD_STRING の文字を必ず UTF-8 エンコーディングにする必要がある。

システム レベル リソースのコンフィグレーション

Oracle SALT では、GWWS サーバによって共有される一連のグローバル リソースを SALTDEPLOY ファイルに指定します。以下のシステムレベル リソースを SALTDEPLOY ファイルにコンフィグレーションできます。

証明書のコンフィグレーション

証明書の情報は、SSL リスン エンドポイントを作成するまたは認証およびメッセージ署名用 X.509 証明書を使用するように GWWS サーバでコンフィグレーションする必要があります。同じデプロイメント ファイルに指定したすべての GWWS サーバは同じ証明書の設定 (秘密キー ファイル、信頼されている証明書ディレクトリなどを含む) を共有します。

秘密キー ファイルは <Certificate>/<PrivateKey> サブ要素を使用して設定します。秘密キー ファイルはローカルで保存され、PEM ファイル形式である必要があります。

<Certificate>/<VerifyClient> サーブ要素は true に設定すると、SSL クライアントを確認できます。デフォルトでは、GWWS サーバは SSL クライアントを確認しません。

SSL クライアントを確認する場合や X.509 証明書の認証機能が有効になっている場合、一連の信頼済み証明書はローカルで保存し、GWWS サーバで指定する必要があります。GWWS サーバの信頼済み証明書を定義するには 2 つの方法があります。

  1. すべての証明書を 1 つの PEM 形式のファイルに指定し、<<Certificate>/<TrustedCert> サブ要素を使用してファイルのパスを定義する方法
  2. 別々の PEM 形式の証明書ファイルを 1 つのディレクトリに保存し <<Certificate>/<CertPath> サブ要素を使用してディレクトリ パスを定義する方法

コード リスト 2-9 では、GWWS サーバの証明書をコンフィグレーションする SALTDEPLOY ファイルのセグメントを示します。

コード リスト 2-9 SALTDEPLOY ファイルの証明書のコンフィグレーション
<Deployment ..>
  ...
  <System>
    <Certificates>
      <PrivateKey>/home/user/gwws_cert.pem</PrivateKey>
      <VerifyClient>true</VerifyClient>
      <CertPath>/home/user/trusted_cert</CertPath>
    </Certificates>
  </System>
</Deployment
プラグイン ライブラリのコンフィグレーション

プラグインは、GWWS サーバの起動中に呼び出される関数のセットです。Oracle SALT には、プラグインを定義して実装するための共通インタフェースとして、プラグイン フレームワークが用意されています。プラグインを実装するには、実際の関数が含まれているダイナミック ライブラリを使用します。実装ライブラリは GWWS サーバの起動中に動的にロードされます。関数は、プラグイン インタフェースの実装として登録されます。

GWWS サーバがライブラリをロードできるように、ライブラリは <Plugin>/<Interface> 要素を使用して SALTDEPLOY ファイルに指定する必要があります。

コード リスト 2-10 では、GWWS サーバによってロードする複数のカスタマイズしたプラグイン ライブラリをコンフィグレーションする SALTDEPLOY ファイルのセグメントを示します。

コード リスト 2-10 SALTDEPLOY ファイルにプラグイン ライブラリのコンフィグレーション
<Deployment ..>
  ...
  <System>
    <Plugin>
      <Interface lib=”plugin_1.so” />
      <Interface lib=”plugin_2.so” />
    </Plugin>
  </System>
</Deployment
注意 : プラグイン ライブラリは SALT 2.0 のプラグイン インタフェースを使用して開発すると、インタフェースの「id」および「name」属性を指定する必要はありません。これらの値はプラグイン インタフェースから取得できます。
注意 : 詳細については、『Web サービスのプログラミング』の「Oracle SALT プラグインの使用」を参照してください。

高度な Web サービス メッセージング機能のコンフィグレーション

現在の Oracle SALT は以下の高度な Web サービス メッセージング機能をサポートしています。

Web サービス アドレス

Oracle SALT では、着信サービスおよび発信サービスの両方に Web サービス アドレスがサポートされます。GWWS サーバによって使用される Web サービス アドレス (WS-Addressing) のメッセージは、『Web サービス アドレス仕様』の Web Service Addressing に準拠している必要があります (W3C Member Submission 2004 年 8 月 10 日)。

着信サービスは特有な Web service addressing のコンフィグレーションが必要ではありません。GWWS サーバは WS-Addressing リクエスト メッセージおよび非 WS-Addressing リクエスト メッセージによって受け付けて回答します。

発信サービスについては、以下の節で説明しているように Web service addressing のコンフィグレーションが必要です。

発信サービスの Addressing エンドポイントのコンフィグレーション

発信サービスについては、Web service addressing はバインディング レベルでコンフィグレーションします。SALTDEPLOY ファイルでは、各 GWWS サーバは WS-Addressing を有効にするために任意の参照した発信 WSBinding オブジェクトに対して <WSAddressing> 要素を使用して WS-Addressing エンドポイントを指定できます。

WS-Addressing エンドポイントを設定した後、GWWS サーバは起動時にリスン エンドポイントを作成します。発信 WSBinding に指定したすべてのサービスは WS-Addressing メッセージで呼出します。

コード リスト 2-11 では、参照した発信 Web サービス バインディングに対して WS-Addressing を有効にする SALTDEPLOY ファイルのセグメントを表します。

コード リスト 2-11 発信 Web サービス バインディングに対して定義した WS-Addressing エンドポイント
<Deployment ..>
  ...
  <WSGateway>
    <GWInstance id="GWWS1">
      ...
      <Outbound>
        <Binding ref="app1:app1_binding">
          <WSAddressing>
            <Endpoint address=”https://myhost:8801/app1_async_point”>
          </WSAddressing>
          <Endpoint use=" simpapp_GWWS1_HTTPPort" />
          <Endpoint use=" simpapp_GWWS1_HTTPSPort" />
        </Binding>
        <Binding ref="app2:app2_binding">
          <WSAddressing>
            <Endpoint address=”https://myhost:8802/app2_async_point”>
          </WSAddressing>
          <Endpoint use=" simpapp_GWWS1_HTTPPort" />
          <Endpoint use=" simpapp_GWWS1_HTTPSPort" />
        </Binding>
      </Outbound>
    ...
    </GWInstance>
  </WSGateway>
  ...
</ Deployment>
注意 : GWWS サーバの各発信 Web サービス バインディングを特定の WS-Addressing エンドポイント アドレスに関連付けることができます。これらのエンドポイントは、同じホスト名とポート番号で設定できますが、エンドポイント アドレスのコンテキスト パースの部分を異なっている必要があります。
注意 : 外部 Web サービス バインディングは、WS-Addressing メッセージをサポートされない場合、実行時に Addressing エンドポイントのコンフィグレーションに障害が発生する可能性があります。
WS-Addressing の無効化

SALTDEPLOY ファイルで WS-Addressing のエンドポイントを作成した場合でも作成していない場合でも、WSDF で特定の発信サービスの Addressing 機能を明示的に無効にできます。特定の発信サービスの Addressing 機能を無効にするには、WSDF ファイル内の対応する <Service> 定義で「disableWSAddressing」プロパティを "true" に設定します。このプロパティは、着信サービスには影響しません。

コード リスト 2-12 では、Addressing 機能を有効にする WSDF ファイルのセグメントを表します。

コード リスト 2-12 サービスレベル WS-Addressing の有効化
<Definition ...>
  <WSBinding id="simpapp_binding">
    <Servicegroup id="simpapp">
      <Service name="toupper">
        <Property name="disableWSAddressing" value=”true” />
      </Service>
      <Service name="tolower" />
    </Servicegroup>
    ....
  </WSBinding>
</Definition>

Web サービスの信頼性のあるメッセージング

現在、Oracle SALT は着信サービスのみの信頼性のあるメッセージングをサポートしています。信頼性のあるメッセージングの機能を有効にするには、Web サービスの信頼性のあるメッセージングのポリシー ファイルを作成し、このポリシー ファイルを WSDF に含める必要があります。ポリシーファイルは WS-ReliableMessaging ポリシー アサーション仕様 (2005 年 2 月) に準拠している必要があります。

注意 : 信頼性のあるメッセージングポリシーの定義を含む WSDF は、着信方向のみに GWWS サーバで使用する必要があります。
信頼性のあるメッセージングのポリシー ファイルの作成

信頼性のあるメッセージングのポリシー ファイルは、WS-ReliableMessaging のアサーションを含む一般的な WS-Policy ファイルです。WS-ReliableMessaging のアサーションは、サポート対象の WS-ReliableMessage 仕様のバージョン、ソース エンドポイントの再伝送までの時間間隔、送信元エンドポイントの承認までの時間間隔などの機能を説明する XML セグメントです。

WS-ReliableMessaging ポリシー ファイルの形式の詳細については、『リファレンス ガイド』の「Oracle SALT WS-ReliableMessaging ポリシー アサーションのリファレンス」を参照してください。

コード リスト 2-13 では、信頼性のあるメッセージングのポリシー ファイルの例を表します。

コード リスト 2-13 信頼性のあるメッセージングのポリシー ファイルの例
<?xml version="1.0"?>
<wsp:Policy wsp:Name="ReliableSomeServicePolicy"
  xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
  xmlns:wsp=”http://schemas.xmlsoap.org/ws/2004/09/policy”
  xmlns:beapolicy="http://www.bea.com/wsrm/policy">
  <wsrm:RMAssertion>
    <wsrm:InactivityTimeout Milliseconds="600000" />
    <wsrm:AcknowledgementInterval Milliseconds="2000" />
    <wsrm:BaseRetransmissionInterval Milliseconds="500"/>
    <wsrm:ExponentialBackoff />
    <beapolicy:Expires Expires="P1D" />
    <beapolicy:QOS QOS=”ExactlyOnce InOrder" />
  </wsrm:RMAssertion>
</wsp:Policy>
WSDF ファイルで信頼性のあるメッセージング ポリシー ファイルの指定

ネイティブ WSDF ファイルでは、<Servicegroup> レベルにおいて WS-ReliableMessaging ポリシー ファイルを参照する必要があります。WSDF ファイルの以下に示すセグメントは、WS-ReliableMessaging ポリシー ファイルの参照方法について説明します。

コード リスト 2-14 エンドポイント レベルにおいて WS-ReliableMessaging の参照
<Definition ...>
  <WSBinding ...>
    <Servicegroup ...>
      <Policy location=”RMPolicy.xml” />
      <Service .../>
      <Service .../>
      ...
    </Servicegroup ...>
  </WSBinding>
</Definition>
注意 : Oracle SALT において、信頼性のあるメッセージングではプロセス障害/システム障害の状況がサポートされていません。つまり、SALT ではメッセージが永続ストレージ領域には保存されません。Oracle SALT は SOAP クライアントと「直接モード」でやりとりします。通常、システム障害から回復するには、クライアントとサーバの間でビジネス ロジックの同期化を行う必要があります。

セキュリティ機能のコンフィグレーション

Oracle SALT では、転送レベルと SOAP メッセージレベルの両方のレベルでセキュリティがサポートされます。以下のトピックでは、各レベルにおいてセキュリティ機能を設定する方法について説明します。

転送レベル セキュリティのコンフィグレーション

Oracle SALT では、SSL リンクレベル セキュリティを使用してポイントツーポイント セキュリティが提供され、着信サービスおよび発信サービスの両方のサービス認証に対して HTTP 基本認証メカニズムがサポートされます。

SSL リンクレベル セキュリティの設定

SSL を使用して着信エンドポイントでリンクレベル セキュリティを設定するには、エンドポイントアドレスの前にプレフィックスとして「https://」を指定できます。この着信エンドポイントを使用する GWWS サーバは、SSL リスン ポートを作成して Web サービス クライアントを SSL 接続で保護します。SSL 機能では、証明書の設定を指定する必要があります。証明書の設定の詳細については、「証明書のコンフィグレーション」を参照してください。

発信エンドポイントへの SSL 接続は、GWWS サーバによって自動的に作成され、プレフィックス「https://」の URL でパブリッシュされます。

着信 HTTP 基本認証のコンフィグレーション

Oracle SALT では、Web サービスのクライアントを認証するかどうかは Tuxedo セキュリティ フレームワークによって決まります。Oracle SALT 側に着信 HTTP 基本認証を有効にする特定のコンフィグレーションはありません。Tuxedo システムには、ユーザの信任状が必要の場合、Web サービス クライアント プログラムの代わりに HTTP 基本認証を使用してユーザの信任状を実現できます。

GWWS ゲートウェイでは、以下に示す 2 つの認証パターンに関する Tuxedo ドメイン セキュリティ コンフィグレーションがサポートされています。

GWWS サーバは、クライアント SOAP リクエストの HTTP ヘッダから以下の文字列を取得し、Tuxedo での認証用に渡します。

Authorization: Basic <ユーザ名:パスワードの base64Binary>

HTTP ヘッダから取得される文字列の例を以下に示します。

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

この例では、クライアントから渡された Tuxedo ユーザ名は「Aladdin」、パスワードは「open sesame」であり、このペア値が Tuxedo の認証に使われます。

発信 HTTP 基本認証のコンフィグレーション

Oracle SALT は、発信 HTTP 基本認証のユーザ資格を作成する認証プラグインの開発を支援します。発信 HTTP 基本認証はエンドポイント レベルにおいて設定します。発信エンドポイントにおいて、HTTP メッセージでユーザ プロファイルが必要の場合、WSDF ファイル内で HTTP エンドポイント用 HTTP レルムを指定する必要があります。GWWS サーバは、ユーザ名とパスワードを作成するために認証プラグイン ライブラリを呼出し、HTTP 基本認証メカニズムを使用してリクエスト メッセージに送信します。

コード リスト 2-15 では、発信エンドポイントにおいて HTTP 基本認証の有効化について説明します。

コード リスト 2-15 発信エンドポイントにおいて HTTP 基本認証の有効化
<Definition ...>
  <WSBinding id="simpapp_binding">
    <SOAP>
      <AccessingPoints>
        <Endpoint id=”...” address=”...”>
          <Realm>SIMP_REALM</Realm>
        </Endpoint>
      </AccessingPoints>
    </SOAP>
    <Servicegroup id="simpapp">
    ....
    </Servicegroup>
    ....
  </WSBinding>
  ......
</Definition>

サービスの要求は「Realm」の設定で指定された発信エンドポイントに送信すると、Tuxedo client uid および gidGWWS サーバから認証のプラグイン機能に渡されます。このプラグイン機能は Tuxedo クライアントの情報によって HTTP 基本認証の username/password を確定します。HTTP 基本認証の username/password をマッピングするために Tuxedo クライアント uid / gid を取得するには、Tuxedo セキュリティ レベルも UBBCONFIG ファイルに設定する必要があります。詳細については、「発信 HTTP 基本認証の Tuxedo セキュリティ レベルのコンフィグレーション」を参照してください。

発信認証プラグインを開発する方法の詳細については、『Web サービスのプログラミング』の「発信認証プラグインのプログラミング」を参照してください。

メッセージ レベルの Web サービス セキュリティのコンフィグレーション

Oracle SALT では、メッセージレベル セキュリティに対して Web サービス セキュリティ 1.0 および 1.1 をサポートします。Oracle SALT では、以下を保証するためにメッセージレベル セキュリティを使用できます。

Web サービス セキュリティの主なユース ケース

Web サービス セキュリティの Oracle SALT の実装 : SOAP メッセージ セキュリティの仕様は以下のユース ケースをサポートします。

WS-SecurityPolicy ファイルの使用

Oracle SALT では、メッセージレベル セキュリティの使用例のために使用される複数の WS-Security ポリシー 1.0 および 1.2 のファイルが含まれています。

Oracle SALT が正常にインストールされると、WS-Policy ファイルが $TUXDIR/udataobj/salt/policy に配置されます。

以下の表では、Oracle SALT に付属するデフォルト WS-Security ポリシーファイルを示します。

表 2-8 Oracle SALT に付属する WS-Security ポリシーファイル
ファイル名
目的
wssp1.0-username-auth.xml
WS-Security Policy 1.0。サービスの認証用の容易なテキストユーザ名トークン
wssp1.0-x509v3-auth.xml
WS-Security Policy 1.0。サービスの認証用の X.509 V3 証明書トークン
wssp1.0-signbody.xml
WS-Security Policy 1.0。X.509 証明書トークンの検証用の SOAP:Body 上の署名
wssp1.2-Wss1.0-UsernameToken-plain-auth.xml
WS-Security Policy 1.2。サービスの認証用の容易なテキストユーザ名トークン
wssp1.2-Wss1.1-X509V3-auth.xml
WS-Security Policy 1.2。サービスの認証用の X.509 V3 証明書トークン
wssp1.2-signbody.xml
WS-Security Policy 1.2。X.509 証明書トークンの検証用の SOAP:Body 上の署名

上記の WS-Security Policy 1.2 UserToken ファイル以外のすべてのポリシー ファイルをネイティブ WSDF ファイルで <Servicegroup> または <Service> レベルで参照できます。WSSP 1.2 UserToken ファイルは <Servicegroup> レベルのみで参照できます。サンプル「wsseapp」では、WSSP 1.2 UserToken ファイルを <Service> レベルで使用するようにクリップする方法について説明します。

コード リスト 2-16 では、ポリシーを作成するときの組み合わせを示します (サービス「TOUPPER」では、クライアントがプレーン テキスト形式の UsernameToken とリクエスト形式の X509v3Token を送信する必要があり、X509 トークンで署名付きメッセージの SOAP:Body 部分も必要です)。

コード リスト 2-16 WS-Security ポリシの使用
<Definition ...>
  <WSBinding id="simpapp_binding">

    <Servicegroup id="simpapp">
      <Policy location="salt:wssp1.2-Wss1.1-X509V3-auth.xml"/>
      <Service name="TOUPPER" >
        <Policy location="D:/wsseapp/wssp1.2-UsernameToken-Plain.xml"/>
        <Policy location="salt:wssp1.2-signbody.xml" use="input"/>
      </Service>
    </Servicegroup>
    ....
  </WSBinding>
  ......
</Definition>

ポリシーは <Policy> 要素の「location」属性で指定されます。プレフィックスの「salt:」は、SALT に付属のデフォルト ポリシー ファイルがすでに使用されていることを示します。ユーザ定義ポリシー ファイルは、ファイル パスを直接指定して使用できます。

注意 : ポリシーは <Servicegroup> レベルで参照すると、このサービス グループのすべてのサービスに適用されます。

「signbody」ポリシーは、「use」属性を「input」に設定して使用する必要があります。これにより、ポリシーが入力メッセージに対してのみ適用されます。出力メッセージの SOAP:Body を署名していないので、これは必要です。

SALT コンフィグレーションのコンパイル

SALT コンフィグレーション ファイルのコンパイルとは、XML バージョン SALTDEPLOY ファイルから (SALTCONFIG) ファイルのバイナリ バージョンを生成することです。コンフィグレーション ファイルをコンパイルするには、wsloadcf コマンドを実行します。wsloadcf はデプロイメント ファイルを解析してバイナリ ファイルをロードします。

wsloadcf はデプロイメント ファイル、インポートされた WSDF ファイルおよびデプロイメント ファイルに参照した WS-Policy ファイルを読み込み、各ファイルの XML スキーマ形式によって構文をチェックします。また、必要に応じて、SALTCONFIG というバイナリ コンフィグレーション ファイルをロードします。SALTCONFIG および (必要に応じて) SALTOFFSET 環境変数は、SALTCONFIG ファイルを指し、(必要に応じて) 情報を格納する場所にオフセットします。

SALT コンフィグレーション ファイルは、あらかじめ定義した XML スキーマ ファイルに従って wsloadcf により検証されます。Oracle SALT で必要な XML スキーマ ファイルは $TUXDIR/udataobj/salt. ディレクトリに配置しています。

オプション「-n」を指定すると、wsloadcf はバイナリ バージョンの SALTCONFIG を生成せずに、検証の目的にのみ実行できます。

wsloadcf の詳細については、『リファレンス ガイド』の「wsloadcf」を参照してください。

Oracle SALT の UBBCONFIG ファイルのコンフィグレーション

SALT コンフィグレーションを設定しコンパイルした後、Tuxedo UBBCONFIG ファイルは Tuxedo アプリケーションに SALT コンポーネントが適用されるように更新する必要があります。表 2-9 では、Oracle SALT の UBBCONFIG ファイルのコンフィグレーション タスクを示します。

表 2-9 Oracle SALT の UBBCONFIG ファイルのコンフィグレーション
コンフィグレーション タスク
必須
省略可能
X
 
X
 
X
 
 
X
 
X
 
X

*SERVERS セクションで TMMETADATA サーバのコンフィグレーション

Oracle SALT は、UBBCONFIG ファイルに少なくとも 1 つの TMMETADATA サーバを指定する必要があります。Tuxedo サービス定義をアクセスするスループットを増加するために、複数の TMMETADATA サーバの指定も可能です。

コード リスト 2-17 では、Tuxedo アプリケーションに TMMETADATA サーバを定義する方法を表す UBBCONFIG ファイルのセグメントの一覧を示します。

コード リスト 2-17 UBBCONFIG ファイルの *SERVERS セクションで定義した TMMETADATA サーバ
......
*SERVERS
TMMETADATA SRVGRP=GROUP1 SRVID=1
           CLOPT="-A -- – f domain_repository_file -r"
TMMETADATA SRVGRP=GROUP1 SRVID=2
           CLOPT="-A -- – f domain_repository_file"
......
注意 : 全体の Tuxedo ドメインに対してサービス メタデータ リポジトリ ファイルを 1 つのみ維持することをお勧めします。これを確認するには、Tuxedo ドメインに実行されている複数の TMMETADATA サーバは同じリポジトリ ファイルを指す必要があります。

詳細については、Tuxedo 9.1 ドキュメントの「Tuxedo サービス メタデータ リポジトリの管理」を参照してください。

*SERVERS セクションで GWWS サーバのコンフィグレーション

SALTDEPLOY ファイルに定義された GWWS インスタンスを起動するには、UBBCONFIG ファイルの *SERVERS セクションで GWWS サーバを指定する必要があります。1 つまたは複数の GWWS サーバを並行して UBBCONFIG ファイルに定義できます。各 GWWS サーバは Tuxedo ドメイン内にオプション「-i」を使用してユニークなインスタンス ID で指定する必要があります。インスタンス ID は、XML バージョンの SALTDEPLOY ファイルおよび生成されたバイナリ バージョンの SALTCONFIG ファイルで指定する必要があります。

コード リスト 2-18 では、Tuxedo アプリケーションに GWWS を定義する方法を表す UBBCONFIG ファイルのセグメントの一覧を示します。

コード リスト 2-18 UBBCONFIG ファイルの *SERVERS セクションで指定した GWWS サーバ
......
*SERVERS
GWWS SRVGRP=GROUP1 SRVID=10
     CLOPT="-A -- – i GW1"
GWWS SRVGRP=GROUP1 SRVID=11
     CLOPT="-A -- – i GW2"
GWWS SRVGRP=GROUP2 SRVID=20
     CLOPT="-A -- -c saltconf_2.xml – i GW3"
......

詳細については、『リファレンス ガイド』の「GWWS」を参照してください。

注意 : UBBCONFIG ファイルでは、GWWS サーバが起動する前に TMMETADATA システム サーバが確実に起動するよう設定してください。GWWS サーバは TMMETADATA によって提供されるサービスを呼び出すため、TMMETADATA よりも後に起動する必要があります。
注意 : GWWS サーバから呼び出される前に TMMETADATA が確実に起動するようにするため、UBBCONFIG ファイルの *SERVERS 定義内で、TMMETADATA を先に、GWWS を後に記述するか、SEQUENCE パラメータを使用します。
注意 : SALT コンフィグレーション情報は、生成されたバイナリ バージョンの SALTCONFIG ファイルに対し、wsloadcf であらかじめコンパイルされます。GWWS サーバは起動時に SALTCONFIG ファイルを読込みます。環境変数 SALTCONFIG は、GWWS サーバを起動する前にバイナリ バージョンの SALTCONFIG ファイルに正しく設定する必要があります。
注意 : オプション「-c」は Oracle SALT の現在のバージョンでは非推奨になっています。SALT 1.1 リリースにおいて、GWWS サーバに対して SALT 1.1 ファイルを指定ためにオプション「-c」を使用します。SALT 2.0 では、GWWS サーバは、起動時に SALTCONFIG ファイルを読込みます。GWWS サーバは、このオプションを指定して起動すると、このオプションは非推奨になっていることを示す警告メッセージが表示されます。指定されたファイルは任意のファイルで、GWWS サーバによって読み込まれません。

UBBCONFIG ファイルでシステム制限事項の更新

SALT GWWS サーバで Tuxedo ドメインをコンフィグレーションする時、SALT アプリケーションの条件によって UBBCONFIG ファイルに指定された Tuxedo システム制限事項を設計し更新する必要があります。

ヒント : *RESOURCES セクションに十分な MAXSERVERS 番号を定義します。

Oracle SALT では、Tuxedo ドメインの TMMETADATA および GWWS 内で以下のシステム サーバを起動する必要があります。TMMETADATA および GWWS サーバ数は、MAXSERVERS 値に指定する必要があります。

ヒント : *RESOURCES セクションに十分な MAXSERVICES 番号を定義します。

GWWS サーバは、発信方向で作業する場合、外部 wsdl:operation が Tuxedo サービスでマップされ、GWWS サーバを介して公開されます。すべての GWWS サーバによって公開されたサービス数は MAXSERVICES 値に指定する必要があります。

ヒント : *RESOURCES セクションに十分な MAXACCESSERS 番号を定義します。

MAXACCESSERS 値は、このアプリケーションの特定のマシン上の Tuxedo 掲示板と同時に接続するデフォルトのクライアントおよびサーバの最大数を指定するために使用します。TMMETADATA および GWWS サーバ数、最大同時 Web サービス クライアントのリクエスト数は MAXACCESSERS 値に指定する必要があります。

ヒント : *MACHINES セクションに十分な MAXWSCLIENTS 番号を定義します。

GWWS サーバは着信方向で作業する場合、Web サービスの各クライアントは Tuxedo システムのワークステーション クライアントと見なされます。したがって、GWWS サーバをデプロイするノードの UBBCONFIG では、MAXWSCLIENTS に適切な値を設定する必要があります。番号を共有します。

GWWS サーバの証明書のパスワードのコンフィグレーション

Oracle SALT の証明書を設定する時にセキュリティのパスワードを設定する必要があります。GWWS サーバは、SSL リンクレベル暗号化や Web サービス セキュリティ X.509 トークンおよび署名機能を有効化にする時、証明書を設定する必要があります。証明書の秘密キー ファイルを作成しパスワードで暗号化する必要があります。

秘密キー ファイルを読込むおよびパスワードを使用して証明書を暗号化するには、GWWS サーバでは、証明書に関する機能を指定する必要があります。各 GWWS サーバに対してパスワードを設定するには、*SERVERS セクションにおける各 GWWS サーバエントリの下にキーワード SEC_PRINCIPAL_NAME および SEC_PRINCIPAL_PASSVAR を指定する必要があります。tmloadcf を使用して UBBCONFIG ファイルをコンパイルする時に、管理者がパスワードを入力する必要があります。このパスワードは秘密キー ファイルを正しく暗号化するために使用できます。

注意 : SALT デプロイメント ファイルに秘密キー ファイルを 1 つのみ指定できます。SALT デプロイメント ファイルに定義されているすべての GWWS サーバについては、秘密キー ファイルの暗号のため同じパスワードを提供する必要があります。

コード リスト 2-19 では、GWWS サーバに対してセキュリティのパスワードを指定する方法を示す UBBCONFIG ファイルのセグメントを示します。

コード リスト 2-19 GWWS サーバに対して UBBCONFIG ファイルに定義されたセキュリティのパスワード
......
*SERVERS
GWWS SRVGRP=GROUP1 SRVID=10
     SEC_PRINCIPAL_NAME="gwws_certkey"
     SEC_PRINCIPAL_VAR="gwws_certkey"
     CLOPT="-A -- – i GW1"
GWWS SRVGRP=GROUP1 SRVID=11
     SEC_PRINCIPAL_NAME="gwws_certkey"
     SEC_PRINCIPAL_PASSVAR="gwws_certkey"
     CLOPT="-A -- – i GW2"
......

詳細については、Tuxedo 9.1 ドキュメントの「UBBCONFIG(5)」を参照してください。

Web サービス クライアント用の Tuxedo 認証のコンフィグレーション

Oracle SALT の GWWS は Web サービス クライアントの有効性をチェックするために Tuxedo 認証フレームワークに依存します。Tuxedo の従来のアプリケーションが既に適用されている場合、Web サービス クライアントは次のいずれかの方法でユーザ資格を送信する必要があります。

逆に、Oracle SALT に対して Web サービス クライアントを認証したい場合、Tuxedo ドメインで Tuxedo 認証を設定する必要があります。

Tuxedo 認証の詳細については、Oracle Tuxedo 9.1 ドキュメントの「認証の管理」を参照してください。

発信 HTTP 基本認証の Tuxedo セキュリティ レベルのコンフィグレーション

発信 HTTP 基本認証 username /password をマッピングするために Tuxedo クライアント uid / gid を取得するには、UBBCONFIG ファイルに Tuxedo セキュリティ レベルを USER_AUTHACL または MANDATORY_ACL として設定する必要があります。

コード リスト 2-20 では、UBBCONFIG ファイルにはセキュリティ レベル ACL を指定する方法を表す UBBCONFIG ファイルのセグメントを示しています。

コード リスト 2-20 発信 HTTP 基本認証に対して UBBCONFIG ファイルに指定されたセキュリティ レベル ACL
*RESOURCES
IPCKEY ...
......
SECURITY ACL
......

Oracle SALT の Tuxedo MP モードでのコンフィグレーション

MP モードの Tuxedo ドメイン内の複数のマシンで実行している GWWS サーバを設定するには、各 Tuxedo マシンを異なる SALTDEPLOY ファイルおよび一連の別々のコンポーネントで指定する必要があります。

以下のグローバル リソースを別々のマシンに渡って広める必要があります。

2 つのマシンでは、同じ WSDF ファイルを関連付けられて、同一の機能がある、異なるマシンで実行している 2 つの GWWS サーバを指定できます。ただし、以下のアーチファクトの伝播を手動で行う必要があります。

Oracle SALT 1.1 からの移行

この節では、SALT 1.1 から SALT 2.0 リリースに更新するカスタマに対して次の 2 つの移動方法について説明します。

SALT 1.1 コンフィグレーション ファイルで GWWS サーバの実行

SALT 1.1 から SALT 2.0 リリースに更新した後、元の SALT 1.1 コンフィグレーション ファイルを使用して既存の SALT アプリケーションを実行することができます。SALT 2.0 では、これがサポートされています。

SALT コンフィグレーション コンパイラ ユーティリティ wsloadcf は、1 つの SALT 1.1 形式のコンフィグレーション ファイルからバイナリ バージョンの SALTCONFIG をロードすることをサポートします。

SALT 1.1 コンフィグレーション ファイルを使用して SALT 2.0 GWWS サーバを実行するには、次の手順に従います。

  1. wsloadcf を介して SALT 1.1 形式のコンフィグレーション ファイルのバイナリ バージョンの SALTCONFIG をロードします。
  2. GWWS サーバを起動する前に環境変数 SALTCONFIG を設定します。
  3. この SALT 1.1 コンフィグレーション ファイルに関する GWWS サーバを起動します。
注意 : Tuxedo ドメインでは、1 つまたは複数の SALT 1.1 コンフィグレーション ファイルを指定されている場合、複数のバイナリ バージョン SALTCONFIG ファイルを生成するにはステップ 1 から 3 までの処理に従い、対応する GWWS サーバを起動する必要があります。

SALT 1.1 コンフィグレーション ファイルを変換して SALT 2.0 コンフィグレーション スタイルの採用

wsloadcf は SALT 1.1 コンフィグレーション ファイルからバイナリ バージョンの SALTCONFIG をロードする時、この SALT 1.1 コンフィグレーション ファイルを 1 つの WSDF ファイルと 1 つの SALTDEPLOY ファイルに変換されます。

SALT 1.1 コンフィグレーションから変換されたファイルを取得した後、SALT 2.0 スタイルのコンフィグレーションで起動することをお勧めします。

注意 : 1 つの SALT 2.0 デプロイメントに複数の SALT 1.1 コンフィグレーション ファイルを組み込むには、他の WSDF ファイルをインポートするために SATLDEPLOY ファイルを手作業で編集する必要があります。

以下のサンプルでは、指定された SALT 1.1 コンフィグレーション ファイルから変換された SALTDEPLOY ファイルおよび WSDF ファイルを示します。

コード リスト 2-21 SALT 1.1 コンフィグレーション ファイル (simpapp.xml) の例
<Configuration xmlns=" http://www.bea.com/Tuxedo/Salt/200606">
  <Servicelist id="simpapp">
    <Service name="toupper" />
    <Service name="tolower" />
  </Servicelist>
  <Policy />
  <System />
  <WSGateway>
    <GWInstance id="GWWS1">
      <HTTP address="//127.0.0.1:7805" />
      <HTTPS address="127.0.0.1:7806" />
      <Property name="timeout" value="300" />
    </GWInstance>
  </WSGateway>
</Configuration>

変換した SALT 2.0 WSDF ファイルおよびデプロイメント ファイルは以下に示します。

コード リスト 2-22 SALT 1.1 コンフィグレーション ファイル (simpapp.xml.wsdf) の変換した WSDF ファイル
<Definition name="simpapp" wsdlNamespace="urn:simpapp.wsdl"
  xmlns=" http://www.bea.com/Tuxedo/WSDF/2007">
  <WSBinding id="simpapp_binding">
    <Servicegroup id="simpapp">
      <Service name="toupper" />
      <Service name="tolower" />
    </Servicegroup>
    <SOAP>
      <AccessingPoints>
        <Endpoint id="simpapp_GWWS1_HTTPPort"
                  address=http://127.0.0.1:7805/simpapp />
        <Endpoint id=" simpapp_GWWS1_HTTPSPort"
                  address=https://127.0.0.1:7806/simpapp />
      </AccessingPoints>
    </SOAP>
  </WSBinding>
</Definition>
コード リスト 2-23 SALT 1.1 コンフィグレーション ファイル (simpapp.xml.dep) の変換した SALTDEPLOY ファイル
<Deployment xmlns=" http://www.bea.com/Tuxedo/SALTDEPLOY/2007">
  <WSDF>
    <Import location="/home/myapp/simpapp.wsdf" />
  </ WSDF>
  <WSGateway>
    <GWInstance id="GWWS1">
      <Inbound>
        <Binding ref="simpapp:simpapp_binding">
          <Endpoint use=" simpapp_GWWS1_HTTPPort" />
          <Endpoint use=" simpapp_GWWS1_HTTPSPort" />
        </Binding>
      </Inbound>
      <Properties>
        <Property name="timeout" value="300" />
      </Properties>
    </GWInstance>
  </WSGateway>
</ Deployment>

 


Tuxedo SCA コンポーネントのコンフィグレーション

Tuxedo SCA コンポーネントのコンフィグレーションは以下のタスクで構成されます。

SCA ATMI クライアントのコンフィグレーション

SCA ATMI クライアントは、SCA パラダイムで記述し、buildscaclient ユーティリティで構築するネイティブ Tuxedo クライアントです。クライアントの実行ファイルは、root.composite ファイルが格納されるディレクトリのサブディレクトリに格納する必要があります。

注意 : APPDIR 環境変数に、root.composite ファイルのディレクトリを指定する必要があります。

コード リスト 2-24 に、クライアント アプリケーションのルート コンポジット ファイル $APPDIR/root.composite を示します。

コード リスト 2-24 クライアント アプリケーションのルート コンポジット ファイル
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="testApp">
<component name="testStringClientComp">
<implementation.composite name="ECHO"/>
</component>
</composite>

$APPDIR/ECHO ディレクトリには、ECHO アプリケーションが格納されます。ディレクトリ名「ECHO」は、<implementation.composite name="ECHO"/> で指定する名前と一致していなければなりません。コード リスト 2-25 に、クライアント アプリケーションのコンポジット ファイルを示します。

コード リスト 2-25 クライアント アプリケーションのコンポジット ファイル
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="ECHO">
  <reference name="ECHO">
    <interface.cpp header="ECHO.h"/>
      <binding.atmi requires="legacy">
        <tuxconfig>/tux/application/ECHOServer/tuxconfig</tuxconfig>
          <inputBufferType target="TestString">STRING</inputBufferType>
          <outputBufferType target="TestString">STRING</outputBufferType>
          <errorBufferType target="TestString">STRING</errorBufferType>
       <binding.atmi>
  </reference>
</composite>

このディレクトリには、このクライアント アプリケーションのクライアント ダイナミック リンク ライブラリも格納されます。たとえば、コード リスト 2-25 の場合であれば、$APPDIR/ECHO/ECHO.so 共有オブジェクトが ECHO ディレクトリに格納されます。ターゲット「TestStr」は、バッファ タイプのグループ化に使用します。

このディレクトリには、クライアントの実行ファイルも格納されます。クライアント アプリケーションの命名規約はありません。このクライアント ECHO アプリケーションの場合は、ECHO アプリケーション ディレクトリに「doEchoClient」が格納される可能性が非常に高いといえます。たとえば、$APPDIR/ECHO/doEchoClient となります。

注意 : SCA_COMPONENT を設定する必要があります。コード リスト 2-25 では SCA_COMPONENT=testStringClientComp となります。

SCA JATMI クライアントのコンフィグレーション

JATMI クライアント アプリケーションのコンフィグレーション コンポジット ファイルは、Java .jar ファイルの一部です。JATMI クライアントのコンポジット ファイルはパッケージの一部ではなく、.jar ファイルのベースに配置されます。クライアント アプリケーションを呼び出すと、SCA Java ランタイムによってコンポジット ファイルがロードされます。特別なセットアップは必要ありません。

注意 : クライアント アプリケーションの .jar ファイルは、必ず CLASSPATH に含める必要があります。また、以下の .jar ファイルも CLASSPATH に含める必要があります。

コード リスト 2-26 に、SCA JATMI クライアントのコンポジット ファイルのサンプルを示します。

コード リスト 2-26 SCA JATMI クライアントのコンポジット ファイルのサンプル
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:f="binding-atmi.xsd"
name="EchoComposite">
<reference name="ECHO" promote="EchoComponent/ECHO">
<interface.java class="com.abc.sca.java.Echo" />
<f:binding.atmi requires="legacy">
<f:serviceType>RequestResponse</f:serviceType>
<f:inputBufferType>FML</f:inputBufferType>
<f:outputBufferType>FML</f:outputBufferType>
<f:fieldTables>com.abc.sca.java.fml.FMLTABLE
</f:fieldTables>
<f:workStationParameters>
<f:networkAddress>//STRIATUM:15011
</f:networkAddress>
</f:workStationParameters>
</f:binding.atmi>
</reference>
<component name="EchoComponent">
<implementation.java
class="com.abc.sca.java.EchoComponentImpl />
</component>
</composite>

SCA ワークステーション クライアントのコンフィグレーション

SCA ワークステーション クライアントのコンフィグレーションは、SCA ネイティブ クライアントのコンフィグレーションに似ています。相違点の 1 つは、SCA ワークステーション クライアントの場合、コンポジット内で <workStationParameters> 要素とそのサブ要素を使用する必要があることです。SCA ランタイムは、クライアントが SCA ネイティブ クライアントと SCA ワークステーション クライアントのどちらとして構築されたかを自動的に検出し、それに応じて適切な参照バインディング ライブラリをロードします。

SCA Tuxedo ワークステーション クライアントのディレクトリ階層も、SCA ネイティブ クライアントに似ています。どちらの場合も、環境変数 $APPDIR を使用してクライアント アプリケーションの場所を指定します。

コード リスト 2-27 に、SCA Tuxedo ワークステーション クライアントのサンプル コンフィグレーションを示します。

コード リスト 2-27 $APPDIR/root.composite
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="testApp">
<component name="testStringClientComp">
<implementation.composite name="ECHO"/>
</component>
</composite>
コード リスト 2-28 $APPDIR/ECHO/ECHO.composite
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="ECHO">
  <reference name="ECHO">
    <interface.cpp header="ECHO.h"/>
      <binding.atmi requires="legacy">
        <inputBufferType target="TestString">STRING</inputBufferType>
        <outputBufferType target="TestString">STRING</outputBufferType>
        <errorBufferType target="TestString">STRING</errorBufferType>
      <workStationParameters>
        <networkAddress>//STRIATUM:4890</networkAddress>
        <encryptBits>128/128</encryptBits>
      </workStationParameters>
      <remoteAccess>WorkStation</remoteAccess>
      </binding.atmi>
  <reference>
</composite>

SCA Web サービス クライアントのコンフィグレーション

SCA Web サービス クライアントは、基本的には SCA ネイティブ クライアントと同じですが、<binding.atmi> 要素ではなく <binding.ws> 要素を使用する点が異なります。SCA ランタイムは、クライアントが使用しているバインディングを自動的に検出し、それに応じて適切な参照バインディングをロードします。

SCA Web サービス クライアントのディレクトリ階層も、SCA ネイティブ クライアントに似ています。どちらの場合も、環境変数 $APPDIR を使用してクライアント アプリケーションの場所を指定します。

コード リスト 2-29 に、SCA Web サービス クライアントのサンプル コンフィグレーションを示します。

コード リスト 2-29 $APPDIR/root.composite
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="testApp">
<component name="calcClient">
<implementation.composite name="calcClient"/>
</component>
</composite>
コード リスト 2-30 $APPDIR/calcClient/calcClient.composite
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"name="calcClient">
<reference name="Calculator">
<interface.cpp header="CalcService.h"/>
<binding.ws
endpoint="http://calc.sample#wsdl.endpoint
(Calculator/CalculatorSOAP11port)"/>
</reference>

</composite>

<interface.cpp> は、適切なプロキシ スタブを構築するために必要な要素です。また、<binding.ws> に指定したエンドポイントを配置するクライアント ディレクトリに WSDL ファイルを格納する必要があります。さらには、次の手順に従って Tuxedo Web サービス ゲートウェイ (GWWS) をコンフィグレーションする必要もあります。

  1. TMMETADATA および GWWS サーバが停止していることを確認します。
  2. 使用するサービスの WSDL で wsdlcvt を実行します。これにより、WSDF ファイル、Tuxedo メタデータ リポジトリのインタフェース定義ファイル、fml32 フィールド テーブル、および XML スキーマが生成されます。
  3. 必要に応じ、生成された WSDF ファイルを修正して、実行時に使用する実際のエンドポイント アドレスをオーバーライドします。詳細については、WSDF のドキュメントを参照してください。
  4. Tuxedo メタデータ リポジトリのインタフェース定義を、TMMETADATA サーバ リポジトリに読み込みます (例 : $ tmloadrepos -I calc.mif metadata.repos -y)。詳細については、tmloadrepos に関するドキュメントを参照してください。
  5. GWWS コンフィグレーション入力ファイル (たとえば gwws.dep というファイル) に WSDF への参照を追加します。コード リスト 2-31 では、追加する要素が強調表示されています。
  6. GWWS バイナリ コンフィグレーション ファイルを再ロードして、ここまでに加えた変更を有効にします (例 : $ wsloadcf -y gwws.dep)。
  7. GWWS と TMMETADATA を再起動します。
  8. コード リスト 2-31 GWWS コンフィグレーション ファイル
    <?xml version="1.0" encoding="UTF-8"?>
    <saltdep:Deployment xmlns:saltdep="http://www.bea.com/Tuxedo/SALTDEPLOY/2007" xmlns="http://www.bea.com/Tuxedo/SALTDEPLOY/2007" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <saltdep:WSDF>
    <saltdep:Import location="calc.wsdf"/>
    </saltdep:WSDF>
    <saltdep:WSGateway>
    <saltdep:GWInstance id="GWWS1">
    <saltdep:Outbound>
    <saltdep:Binding ref="calc:CalculatorSOAP11Binding">
    <saltdep:Endpoint use="CalculatorSOAP11port"/>
    </saltdep:Binding>
    </saltdep:Outbound>
    </saltdep:GWInstance>
    </saltdep:WSGateway>
    <saltdep:System/>
    </saltdep:Deployment>

SCA ATMI サーバのコンフィグレーション

SCA ATMI サーバの SCA ROOT は $APPDIR と同じです。SCA アプリケーションを記述するため、少なくとも 1 つのコンポジット ファイルが必要です。SCA ランタイムは、このコンポジット ファイルを検索し、その場所から Tuxedo 環境でホストする SCA サーバ アプリケーションのすべての composite および componentType ファイルをロードします。

コード リスト 2-32 に、ルート コンポジット ファイルのサンプルを示します。この root.composite には、Tuxedo アプリケーション ドメインでホストする 2 つの SCA アプリケーションが含まれています。2 つのアプリケーションの名前は Purchase と Finance です。これら 2 つの SCA アプリケーションのサブディレクトリは少なくとも 2 つあります。1 つは Purchase.component、もう 1 つは Finance.component です。

コード リスト 2-32 $APPDIR/root.composite
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="root">
<component name="Purchase.component">
<implementation.composite name="Purchase" />
</component>
<component name="Finance.component">
<implementation.composite name="Finance" />
</component>
</composite>

コード リスト 2-33 に、Purchase.component ディレクトリに格納される Purchase アプリケーションのコンポジット ファイル Purchase.composite を示します。同様に、Finance.component ディレクトリには、Finance アプリケーションのコンポジット ファイル Finance.composite が格納されます。

コード リスト 2-33 $APPDIR/Purchase.component/Purchase.composite
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
name="Purchase">
<service name="purchase">
<interface.cpp header="Purchase.h" />
<binding.atmi requires="legacy">
<map target="Order">ORDER</map>
<map target="TrackOrder">TRACKORDER</map>
</binding.atmi>
<reference>PurchaseServiceComponent</reference>
</service>
<component name="PurchaseServiceComponent">
<implementation.cpp library="Purchase" header="PurchaseImpl.h" />
</component>
</composite>

コード リスト 2-34 に、Purchase.composite$APPDIR/Purchase.component ディレクトリに格納される PurchaseImpl.componentType ファイルを示します。ここでは、アプリケーション実装として CPP を使用しています。このコンフィグレーション ファイルを使用する SCA サーバを buildscaserver ユーティリティを使用して構築すると、実行時に 2 つの SCA サービス (ORDER および TRACKORDER) が自動的に公開されます。サービスの実際の CPP 実装は、Order および TrackOrder という名前になります。

コード リスト 2-34 $APPDIR/Purchase.component/PurchaseImpl.componentType
<?xml version="1.0" encoding="UTF-8"?>
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<service name="purchase">
<interface.cpp header="Purchase.h"/>
</service>
</componentType>

Tuxedo 内でホストし buildscaserver で構築するこれら 2 つの SCA アプリケーションが、PurchaseSvr および FinanceSvr という名前だとすると、UBBCONFIG ファイルの *SERVERS セクションに以下の行を追加する必要があります。

PurchaseSvr SRVGRP=PURCHASEGRP SRVID=500

FinanceSvr SRVGRP=FINANCEGRP SRVID=600

*SERVICES セクションにサービスを追加する必要はありません。Tuxedo でホストする SCA サービスは動的に公開されます。

SCA Web サービス サーバのコンフィグレーション

サーバ サイドでコンポーネントの Web サービス バインディングをコンフィグレーションする方法は、SCA コンポーネントをホストするための ATMI バインディングをコンフィグレーションする方法に似ています。

コード リスト 2-35 に、root.composite という名前のルート コンポジット ファイルを示します。このファイルには、Tuxedo アプリケーション ドメインでホストする 1 つの SCA コンポーネントが含まれています。2 つのアプリケーションの名前は Purchase と Finance です。これら 2 つの SCA アプリケーションのサブディレクトリは少なくとも 2 つあります。1 つは Purchase.component、もう 1 つは Finance.component です。

コード リスト 2-36 に実際のコンポーネント サブディレクトリ、コード リスト 2-37componentType ファイルを示します。

コード リスト 2-35 $APPDIR/root.composite
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="root">
<component name="account">
<implementation.composite name="account" />
</component>
</composite>
コード リスト 2-36 $APPDIR/account/account.composite
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
name="account">
<service name="AccountService">
<interface.wsdl interface="http://www.bigbank.com/AccountService#wsdl.interface(AccountService)"/>
<binding.ws/>
<reference>AccountServiceComponent</reference>
</service>

<component name="AccountServiceComponent">
<implementation.cpp library="Account" header="AccountServiceImpl.h"/>
</component>
</composite>
コード リスト 2-37 $APPDIR/account/AccountServiceImpl.componentType
<?xml version="1.0" encoding="UTF-8"?>
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<service name="AccountService">
<interface.cpp header="AccountService.h"/>
	</service>
</componentType>

上に示した SCA コンポーネントは、-w オプション (Web サービス) を指定した buildscaserver で構築された Tuxedo サーバ (WSServer) によってホストされます。

ここで、Tuxedo UBBCONFIG ファイルの *SERVERS セクションに、WSServer SRVGRP=ACCTGRP SRVID=500 という行を追加する必要があります。

*SERVICES セクションにサービスを追加する必要はありません。Tuxedo でホストする SCA サービスは動的に公開されます。

さらに、Tuxedo Web サービス ゲートウェイ (GWWS) をコンフィグレーションする必要があります。次の手順に従ってください。

  1. TMMETADATA および GWWS サーバが停止していることを確認します。
  2. 使用するサービスの WSDL で wsdlcvt を実行します。これにより、WSDF ファイル、Tuxedo メタデータ リポジトリのインタフェース定義ファイル、fml32 フィールド テーブル、および XML スキーマが生成されます。
  3. 生成された WSDF ファイルを修正して、実行時にリクエストを受け付けるために使用する実際のエンドポイント アドレスを指定します。詳細については、WSDF のドキュメントを参照してください。
  4. Tuxedo メタデータ リポジトリのインタフェース定義を、TMMETADATA サーバ リポジトリに読み込みます (例 : $ tmloadrepos -I AccountService.mif metadata.repos -y)。詳細については、tmloadrepos に関するドキュメントを参照してください。
  5. GWWS コンフィグレーション入力ファイル (たとえば gwws.dep というファイル) に WSDF への参照を追加します。コード リスト 2-38 では、追加する要素が強調表示されています。
  6. GWWS バイナリ コンフィグレーション ファイルを再ロードして、ここまでに加えた変更を有効にします (例 : $ wsloadcf -y gwws.dep)。
  7. GWWS と TMMETADATA を再起動します。
  8. コード リスト 2-38 gwws.dep ファイル
    <?xml version="1.0" encoding="UTF-8"?>
    <saltdep:Deployment xmlns:saltdep="http://www.bea.com/Tuxedo/SALTDEPLOY/2007" xmlns="http://www.bea.com/Tuxedo/SALTDEPLOY/2007" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <saltdep:WSDF>
                    <saltdep:Import location="AccountService.wsdf"/>
            </saltdep:WSDF>
            <saltdep:WSGateway>
                    <saltdep:GWInstance id="GWWS1">
                            <saltdep:Inbound>
                                    <saltdep:Binding ref="AccountService:AccountServiceSOAP">
                                            <saltdep:Endpoint use="AccountServiceSOAP"/>
                                    </saltdep:Binding>
                            </saltdep:Inbound>
                    </saltdep:GWInstance>
            </saltdep:WSGateway>
            <saltdep:System/>
    </saltdep:Deployment>

SCA クライアントのセキュリティのコンフィグレーション

Tuxedo SCA コンポーネントでは、以下の 2 種類のセキュリティがサポートされます。

Tuxedo アプリケーション ドメイン セキュリティ

Tuxedo アプリケーション ドメイン セキュリティを設定するには、Tuxedo アプリケーション ドメインの TUXCONFIG ファイルの *RESOURCES セクションに SECURITY キーワードを追加します。アプリケーション セキュリティのレベルは、NONEAPP_PWUSER_PWACL、および MANDATORY_ACL の 5 つです。NONE 以外のすべてのセキュリティ レベルでは、Tuxedo アプリケーションへのアクセスを取得するため、最低でもユーザからのアプリケーション パスワードが必要になります。USER_PW レベル以上では、ユーザを認証してユーザ資格を確立するため、追加のユーザ パスワードが必要になります。つまり、2 つのパスワードをコンフィグレーションしなければならない場合があるということです。

SCA クライアントが Tuxedo アプリケーション サーバへのアクセスを取得するには、常にこのパスワード情報が必要になります。SCA クライアントがパスワード情報を取得する方法には以下の 2 つがあります。

SALT 管理者がパスワードの取得をコンフィグレーションするには、以下のタスクを実行する必要があります。

コード リスト 2-39 に、SCA ATMI クライアント アプリケーションのサンプルを示します。

コード リスト 2-39 $APPDIR/password.store $APPDIR/simple.app.composite
<?xml version="1.0" encoding="UTF-8"?>

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
name="simple.app">

<component name="simpapp.TuxClient">
<implementation.composite name="simpapp.client"/>
<reference name="TOUPPER">tuxToupper</reference>
</component>

</composite>
コード リスト 2-40 $APPDIR/simpapp.client/simpapp.client.composite
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" 
name="simpapp.client">

  <reference name="TOUPPER">
    <interface.cpp header="ToupperTuxService.h"/>
    <binding.atmi requires="legacy">
      <tuxconfig>d:\tests\tuxedo\sca\tests\TUXCONFIG</tuxconfig>
      <inputBufferType target="charToup">STRING</inputBufferType>
      <outputBufferType target="charToup">STRING</outputBufferType>
        <authentication
          <passwordIdentifier>aaa</passwordIdentifier>
        </authentication>
    </binding.atmi>
  </reference>
</composite>

上のコンポジットでは、Tuxedo アプリケーション ドメインのパスワード識別子「aaa」を定義しています。これにより、ATMI 参照バインディングが実行時に、識別子「aaa」で password.store ファイルからパスワードを取得できるようにしています。これにユーザ認証を加えて、Tuxedo アプリケーション ドメイン セキュリティを強化することもできます。その場合はセキュリティ レベルを SECURITY=USER_PW 以上に設定し、scapasswordtool -i crusoe -a コマンドを使用します。

次に、simpapp.client.composite ファイルを編集できるツール (テキスト エディタなど) を使用して、<binding.atmi/authentication> 要素に <userPasswordIdentifier>crusoe</userPasswordIdentifier> というエントリを追加します。

これで、パスワード「crusoe」を使用するすべてのユーザが Tuxedo アプリケーションにアクセスできるようになります。

Tuxedo リンクレベル セキュリティ

Tuxedo リンクレベル セキュリティは 2 種類あります。1 つはリンクレベルの暗号化 (LLE) を使用して簡単にコンフィグレーションできるもの、もう 1 つはより一般的なトランスポート層セキュリティ (TLS) です (セキュア ソケット レイヤ (SSL) とも呼びます)。ネイティブの ATMI 参照バインディングを使用する SCA ATMI クライアントの場合は、転送メソッドがネイティブ メッセージ キューであり Tuxedo BRIDGE であるため、SCA レベルでリンクレベル セキュリティをコンフィグレーションする必要はありません。

SCA JATMI クライアントの参照バインディングでは、リンクレベル セキュリティはサポートされません。リンクレベル セキュリティのコンフィグレーションが可能な唯一の SCA クライアントは、SCA ワークステーション ATMI クライアントです。

SCA ワークステーション ATMI クライアントのコンポジット ファイルには、<workStationParameters> 要素がコンフィグレーションされています。SCA ランタイムは、このタイプのクライアントに適した参照バインディングを自動的にロードします。

リンクレベルの暗号化をコンフィグレーションする

リンクレベルの暗号化をコンフィグレーションするには、コンポジット ファイルに <encryptBits> 要素を追加します。LLE では、以下の要素はコンフィグレーション「しない」ようにしてください。これは SSL 暗号化に固有の要素であるため、SSL を使用しているとみなされてしまいます。

<encryptBits> 要素には、このクライアントがネゴシエートを試みる暗号化の強度を指定します。<encryptBits> 要素の構文は、<minimum encryption strength>/<maximum encryption strength> です。56 ビット暗号化をコンフィグレーションするには、コンポジット ファイルに以下のエントリを追加する必要があります。

<networkAddress>//STRIATUM:8741</networkAddress>

<encryptBits>56/128</encryptBits>

注意 : encryptBits には、クライアント接続がネゴシエートを試みる暗号化の強度を指定します。フォーマットは <minencryptbits>/<maxencprytbits> (たとえば 128/128) です。指定できる値は、0 (暗号化なし)、40、56、128、または 256 です。無効な値を指定すると、コンフィグレーション例外が発生します。

これにより、SCA ワークステーション参照バインディングでは、WSH とのネゴシエートにおいて強度が 56 から 128 ビットの暗号化が必要と判断されます。UBBCONFIG ファイルの *SERVERS セクションに、次の行を追加する必要もあります。

WSL SRVGRP=GROUP1 SRVID=1001 CLOPT="-A -- -n //STRIATUM:8741 -a -z 56 -Z 256

転送レベル セキュリティをコンフィグレーションする

TLS/SSL によるリンクレベル セキュリティを有効にするには、<encryptBits> に加え、secPrincipalNamesecPrincipalLocation、および secPrincipalPassId をコンフィグレーションする必要があります。

これら 3 つのパラメータにより、SCA ワークステーション ATMI クライアントが TLS/SSL 接続を確立する必要がある場合のパラメータを指定します。

コード リスト 2-41 に、TLS/SSL をコンフィグレーションする際に、/binding.atmi/workStationParameters 内のクライアント コンポジット ファイルに追加する必要のある行を示します。

コード リスト 2-41 クライアント コンポジット ファイル
<networkAddress>//STRITUM:8742</networkAddress>
<secPrincipalName>crusoe</secPrincipalName>
<secPrincipalLocation>/tux/udataobj/security/keys/crusoe.pem</secPrincipalLocation>
<secPrincipalPassId>crusoe</secPrincipalPassId>

Tuxedo では、クライアントがポート 8742 で接続する場合に TLS/SSL を使用することを示すため、WSL に -S 8742 を追加する必要があります。

WSL  SRVGRP=GROUP1 SRVID=1001
CLOPT="-A -- -n //STRIATUM:8741 -S 8742 -z 56 -Z 128"

 


サービス規約検索のコンフィグレーション

サービスの検索を有効にすると、サービスを提供するサーバによってサービス規約情報が収集され、この情報が TMMETADATA(5) で実装された内部サービスに送信されます。通信のオーバーヘッドを軽減するため、同じサービス規約は 1 回しか送信されないようになっています。

サービス規約は、TMMETADATA サーバによって収集されたデータに基づいて生成されます。規約情報は、メタデータ リポジトリに格納するか、テキスト ファイルに出力しておいて tmloadrepos でメタデータ リポジトリにロードできます。Oracle SALT では、tmscd コマンドを使用してサービス規約の実行時収集を管理できます。詳細については、『リファレンス ガイド』の「tmscd」を参照してください。

生成されたサービス規約情報には、サービス名、リクエスト バッファ情報、応答バッファ情報、およびエラー バッファ情報 (エラーがある場合のみ) が含まれます。TMMETADATA サーバへの送信が失敗した場合、収集されたサービス規約情報は破棄されます。バッファ情報には、バッファ タイプ、サブタイプ、および FML/FML32 のフィールド情報 (name、type、subtype) が含まれます。

検索は、FML32 バッファ内のすべての埋め込みバッファでサポートされます。FML/FML32 フィールドが出現すると、検索によってメタデータ リポジトリ内の count/requiredcount のパターンが自動的に更新されます。フィールドの出現がパターンに影響することはありませんが、「requiredcount」で最小出現回数を指定できます。規約検索の期間全体での最大出現回数は「count」で指定します。

VIEW/VIEW32/X_C_TYPE/X_COMMON の場合は、ビュー名のみが検索されます。ORACLE SALT でメタデータ リポジトリを使用している場合は、ビュー名に基づいてビューの詳しい説明を生成できます。

注意 : autodiscovery (表 2-10 を参照) を指定したパターンは比較されます。
注意 : メタデータ リポジトリ内に同じ autodiscovery パターンがすでに存在する場合は、新しいほうのパターンが無視されます。

サポートされるのは、アプリケーション ATMI サービス (ローカル、または /TDOMAIN ゲートウェイ経由でインポートされたもの) のみです。サービス規約検索では、以下のサービスはサポートされません。

注意 : 応答のないサービスは、メタデータ リポジトリでは「oneway」サービスとしてマップされます。

tpforward のサポート

サービスが tpreturn() の代わりに tpforward() を発行すると、そのサービスの応答バッファ情報が転送先のサービスの応答バッファ情報と同じになります。次に例を示します。

サービス規約のテキスト ファイル出力

収集されたサービス規約検索情報が必要な場合は、メタデータ リポジトリに直接格納する代わりにファイルに書き出すことができます。その場合は、TMMETADATA(5) -o<filename> オプションを使用し、tmloadrepos を使って手動でファイルをメタデータ リポジトリにロードする必要があります。詳細については、『リファレンス ガイド』の「tmloadrepos」を参照してください。

ファイルをメタデータ リポジトリの代わりのストレージとして使用する場合、出力は tmloadrepos に準拠したフォーマットになります。このファイルは、サービス ヘッダ セクションと、パラメータごとのパラメータ セクションで構成されます。サービス ヘッダには、表 2-10 に示す項目が含まれます。「service」フィールドのフォーマットは <TuxedoServiceName>+'_'+<SequenceNo> です。サフィックス <SequenceNo> が付加されているのは、Tuxedo サービスのパターンが複数認識された場合に名前が衝突するのを避けるためです。

注意 : <SequenceNo> は、メタデータ リポジトリに格納済みの最後の <SequenceNo> の番号から始まります。

サービス パラメータには、表 2-11 に示す項目が含まれます。

表 2-10 サービス レベルの属性
キーワード (省略形)
サンプル値
説明
service(sv)
TOUPPER_1
<RealServiceName>_<SequenceNo>
tuxservice(tsv)
TOUPPER
サービス名
servicetype(st)
service|oneway
TPNOREPLY が設定されている場合は oneway
inbuf(bt)
STRING
FML、FML32、VIEW、VIEW32、STRING、CARRAY、XML、X_OCTET、X_COMMON、X_C_TYPE、MBSTRING またはカスタム バッファ タイプを定義したアプリケーションを表すその他の任意の文字列
outbuf(BT)
FML32
エラー応答の場合は「NULL」に設定される
errbuf(ebt)
STRING
エラー応答の場合のみ記述される
inview
 
ビュー名 (inbuf のタイプが VIEW または VIEW32 の場合のみ記述される)
outview
 
ビュー名 (outbuf のタイプが VIEW または VIEW32 の場合のみ記述される)
errview
 
ビュー名 (errbuf のタイプが VIEW または VIEW32 の場合のみ記述される)
autodiscovery
true
「true」に設定される

表 2-11 パラメータ レベルの属性
キーワード (省略形)
サンプル
説明
param(pn)
USER_INFO
 
paramdescription(pd)
service parameter
 
access(pa)
in
{in}{out}{err} の組み合わせ
type(pt)
fml32
byte、short、integer、float、double、string、carray、dec_t、xml、ptr、fml32、view32、mbstring
subtype(pst)
 
view または view32 タイプ パラメータのビュー名
count
100
収集期間内の FML/FML32 フィールドの最大出現回数
requiredcount
1
収集期間内の FML/FML32 フィールドの最小出現回数

サンプル

サンプル 1:

入力 : service=SVC, request=STRING, reply = TPSUCCESS + STRING

出力パターン : service=SVC_1,tuxservice=SVC,inbuf=STRING,outbuf=STRING

サンプル 2:

入力 : service=SVC, request=STRING, reply = TPFAIL+ STRING

出力パターン (抜粋): Service=SVC_1, tuxservice=SVC,inbuf=STRING,outbuf=NULL,errbuf=STRING

サンプル 3:

入力 :

service=SVC, request=STRING, reply = TPSUCCESS + STRING

service=SVC, request=STRING, reply = TPFAIL+ STRING

出力パターン :

service=SVC_1,tuxservice=SVC,inbuf=STRING,outbuf=STRING

Service=SVC_2, tuxservice=SVC,inbuf=STRING,outbuf=NULL,errbuf=STRING

サンプル 4:

入力 : service=FMLS,request=FML32(name,pwd),reply=TPSUCCESS+FML32(id)

出力パターン :

service=FMLS_1,tuxservice=FMLS,inbuf=FML32,outbuf=FML32

param: input(name, pwd), output(id)

サンプル 5:

入力 :

service=FMLS,request=FML32(name,pwd),reply=TPSUCCESS+FML32(id)

service=FMLS,request=FML32(name,pwd,token),reply=TPSUCCESS+FML32(id)

出力パターン :

service=FMLS_1,tuxservice=FMLS,inbuf=FML32,outbuf=FML32

param: input(name, pwd), output(id)

service=FMLS_2,tuxservice=FMLS,inbuf=FML32,outbuf=FML32

param: input(name, pwd,token), output(id)

 


関連項目


  ページの先頭       前  次