サービス・プロバイダー・ポリシーを使用するクライアント・ポリシーの wsadmin スクリプトを使用した構成

Web サービス・クライアントであるアプリケーションは、Web サービス・プロバイダーのポリシー構成を取得し、 この情報を使用してクライアントとサービス・プロバイダーの両方で受け入れられるポリシー構成を確立できます。

始める前に

すべての必要な成果物を含む Web サービス・クライアントを開発し、Web サービス・アプリケーションをアプリケーション・サーバー・インスタンスにデプロイしました。必要に応じて、ポリシー・セットを関連付け、関連するバインディングを管理しました。

サービス・プロバイダーは、ポリシーを Web サービス記述言語 (WSDL) で公開する必要があり、 そのポリシーに、実行時のポリシー構成を WS-PolicyAttachments 形式で組み込む必要があります。クライアントによってそのプロバイダー・ポリシーのサポートが可能である必要があります。

サポートされる WS-Policy アサーション仕様および WS-Policy ドメインのリストについては、WS-Policyのトピックを参照してください。

このタスクについて

標準 WS-PolicyAttachments 形式のサービス・プロバイダーのポリシーに基づいて、クライアントが実行時に自身を動的に構成するように管理することができます。 また、アプリケーション・レベルまたはサービス・レベル またはサービス参照レベル で プロバイダー・ポリシーを動的に適用するように、クライアントを管理することができます。
注: サービス参照レベルでクライアントの動的ポリシー制御を指定する場合、リソースのストリングには、新しい名前値ペアのリスト・フォーマットを使用する必要があります。 サービス参照レベルでクライアントの動的ポリシー制御を指定しない場合は、 どちらのフォーマットを使用してもかまいません。
表 1. アプリケーションの異なるレベルでポリシー制御を指定する方法. アプリケーションの各アプリケーション・レベルについて、この表は、ポリシー制御を指定するために必要な、関連するストリング・フォーマットのコマンドと名前値ペア・フォーマットのコマンドをリストし、それらの振る舞いを要約します。
レベル ストリング・フォーマット 名前値ペアのリスト・フォーマット (新規) 振る舞い
タイプ "WebService:/" "type=WebService:/" アプリケーション内のすべての成果物を示します
サービス "WebService:/myModule:{namespace}myService" "type=WebService:/,module=myModule,service={namespace}myService" Web サービス内のすべての成果物を示します
エンドポイント (このサービス配下) "WebService:/myModule:{namespace}myService/endpointA" "type=WebService:/,module=myModule,service={namespace}myService,endpoint=endpointA" (このサービス配下の) このエンドポイントのすべての操作を示します
操作 (このサービス配下) "WebService:/myModule:{namespace}myService/endpointA/operation1" "type=WebService:/,module=myModule,service={namespace}myService,endpoint=endpointA, operation=operation1" (このサービス配下の) 特定の単一操作を示します
サービス参照 [使用不可] "type=WebService:/,module=myModule,service={namespace}myService,serviceRef=myServiceRef" Web サービス参照内のすべての成果物を示します
エンドポイント (このサービス参照配下) [使用不可] "type=WebService:/,module=myModule,service={namespace}myService,serviceRef=myServiceRef, endpoint=endpointA" (このサービス参照配下の) このエンドポイントのすべての操作を示します
操作 (このサービス参照配下) [使用不可] "type=WebService:/,module=myModule,service={namespace}myService,serviceRef=myServiceRef, endpoint=endpointA,operation=operation1" (このサービス参照配下の) 特定の単一操作を示します

プロバイダー・ポリシーで複数パーツの WSDL が使用されている場合は、HTTP GET 要求を使用してプロバイダーのポリシーを取得できますが、WS-MetadataExchange プロトコルを使用することはできません。複数パーツの WSDL について詳しくは、WSDL に関するトピックを参照してください。

ポリシー論理積により、クライアント・ポリシーとプロバイダー・ポリシーを比較して互換性があるかどうかを判断し、クライアント・ポリシーとプロバイダー・ポリシーの要件および機能の両方に適合する、有効なポリシーとして認識される新しいポリシーを計算します。

このトピックでは、wsadmin コマンドを使用して、サービス・プロバイダー・ポリシーを使用するようにクライアント・ポリシーを構成する方法について説明します。 管理コンソールを使用して、サービス・プロバイダー・ポリシーを使用するようにクライアント・ポリシーを構成することもできます。

手順

  1. wsadmin スクリプト・クライアントがまだ実行されていない場合は、それを開始します。
  2. SetClientDynamicPolicyControl コマンドを使用します。 以下に例を示します。
    AdminTask.setClientDynamicPolicyControl('[-applicationName WebServiceClientApplication 
    -resource WebService:/ClientApplication.war:{http://example_path/}Service1 
    -acquireProviderPolicyMethod [httpGet ] 
    -httpGetProperties [httpGetTargetURI http://example_path]]') 
  3. 変更をマスター構成に保存します.
    構成変更を保存するには、次のコマンドを入力します。
    AdminConfig.save()

タスクの結果

Web アプリケーション・クライアント・サイドのポリシーは、選択したオプションに応じて、サービス・プロバイダーのポリシー、またはクライアント・ポリシー・セットとサービス・プロバイダーのポリシーのいずれかに基づいて、実行時に必要となった時点で計算されます。この計算されたポリシーは「有効なポリシー」として認識され、ランタイム構成としてキャッシュされます。 有効なポリシーは、動的ポリシー計算を実行したエンドポイントまたは操作への後続のアウトバウンド Web サービス要求に使用されます。クライアントのポリシー・セット構成は変更されません。

サービスに対してクライアントが保持している プロバイダー・ポリシーは、アプリケーションがロードされた後、Web サービスが 最初に呼び出される際に更新されます。それ以降は、このプロバイダー・ポリシーは、アプリケーションを再始動するか、またはアプリケーションが明示的に更新を呼び出した場合に、更新されます。 プロバイダー・ポリシーが更新されると、有効なポリシーが再計算されます。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_wsp_client_sppw
ファイル名:twbs_wsp_client_sppw.html