Web サービス・パフォーマンスのベスト・プラクティス

Web サービス・アプリケーションのパフォーマンスのベスト・プラクティスについて学びます。

Web サービスは、Web Services for Java™ platform, Enterprise Edition (Java EE) 仕様で提供される標準と、Java API for XML-Based Web Services (JAX-WS) および Java Architecture for XML Binding (JAXB) プログラミング・モデルとを基にして、開発およびデプロイ されます。 Web サービスは、Web サービスへのアクセスに使用されるメカニズムです。この仕様によりサポートされる Web サービスのパフォーマンスの考慮事項について説明します。

Web サービスを開発またはデプロイするときに、Web サービス記述言語 (WSDL) ファイルを含むいくつかの成果物が必要になります。WSDL は、Web サービス入出力 SOAP メッセージのフォーマットと 構文を説明するファイルです。Web サービスが、WebSphere® Application Server ランタイムで実装される場合、SOAP メッセージは Java EE 要求に基づいて変換されます。 次に、Java EE ベースの応答は、SOAP メッセージへ変換されて戻されます。

最も重要なパフォーマンス考慮事項は、XML ベースの SOAP メッセージと Java オブジェクトの間の変換です。WebSphere Application Server での Web サービスの実装はハイパフォーマンスですが、アプリケーション設計、デプロイメント、および調整は改良の余地があります。Web サービスの分析と調整について詳しくは、『Web サービス・アプリケーションのパフォーマンスのモニター』を参照してください。

WebSphere Application Server のバージョン 6 より前のバージョン用に開発された Web サービス・アプリケーションを使用している場合は、wsdeploy コマンドを実行すると、パフォーマンスを向上させることができます。wsdeploy コマンドによって Web サービス成果物クラスが再生成されるため、 シリアライゼーションおよびデシリアライゼーションのパフォーマンスが向上します。

wsdeploy コマンドは、 Java API for XML-based RPC (JAX-RPC) アプリケーションによってサポートされます。 アプリケーション・サーバーによって実装される Java API for XML-Based Web Services (JAX-WS) プログラミング・モデルは、 wsdeploy コマンドをサポートしていません。 Web サービス・アプリケーションに JAX-WS エンドポイントのみが含まれる場合、このコマンドは JAX-RPC エンドポイントの処理のみに使用されるため、wsdeploy コマンドを実行する必要はありません。

ハイパフォーマンス Web サービス・アプリケーションの基本考慮事項

以下 が、Web サービス・アプリケーションの設計時に考慮するべき基本考慮事項です。
  • 簡易な API をいくつも使用するのではなく、高機能 API を少数使用して 、Web サービス要求を削減します。
  • WSDL ファイル・インターフェースを設計して、SOAP メッセージのサイズと複合度を制限します。
  • WSDL ファイルを生成するときは、ドキュメント/リテラル・スタイルの 引数を使用します。
  • WebSphere Application Server のキャッシング機能を活用してください。
  • Web サービスのパフォーマンスをテストします。

WebSphere Application Server に対する JAX-WS Web サービスのパフォーマンスの最適化

Web サービスの使用シナリオに応じて、以下の JVM カスタム・プロパティーを使用して、JAX-WS Web サービスのパフォーマンスを最適化できます。これらの JVM カスタム・プロパティーの値を変更した後は、変更内容を有効にするために WebSphere Application Server を再始動する必要があります。

  • WebSphere Application Server 8.5.5.2 以降では、以下のカスタム・プロパティーを使用して、JAXB のパフォーマンスを最適化します。
    com.ibm.websphere.webservices.jaxwsOptimizeLevelOne
    JAX-WS のパフォーマンスの最適化をレベル 1 にする場合は、このカスタム・プロパティーを true に構成します。
    デフォルト値は false です。
    注: このカスタム・プロパティーを使用可能にすると、JAXB の一部の仕様以外の動作が変更される場合があります。ご使用のアプリケーションがそのような仕様以外の動作に依存しており、それがアプリケーションが正常に実行されない原因となると見なした場合は、このプロパティーを使用不可にします。
    注: SOAP メッセージ内の XML タグの順序が、以前のバージョンと異なる場合があります。
  • WebSphere Application Server 8.5.5.0 以降では、以下のカスタム・プロパティーを使用して、JAX-WS エンジン・グローバル・ハンドラーのパフォーマンスを最適化します。以下のカスタム・プロパティーを使用可能にする場合は、注意してください。そうしないと、対応する Web サービス機能が機能しなくなります。また、以下の JVM プロパティーは、ユーザー定義の JAX-WS ハンドラーには効果はありません。
    com.ibm.ws.websvcs.disableWSDMHandler
    WSDM (Web Services Distributed Management) 機能に対して Web サービス JAX-WS エンジン・ハンドラーを使用不可にするかどうかを制御する場合は、このプロパティーを使用します。デフォルト値は false です。
    com.ibm.ws.websvcs.disableWSSecurityHandler
    WS-Security 機能に対して Web サービス JAX-WS エンジン・ハンドラーを使用不可にするかどうかを制御する場合は、このプロパティーを使用します。デフォルト値は false です。
    com.ibm.ws.websvcs.disableWSTXHandler
    WS-Transaction 機能に対して Web サービス JAX-WS エンジン・ハンドラーを使用不可にするかどうかを制御する場合は、このプロパティーを使用します。デフォルト値は false です。
    com.ibm.ws.websvcs.disableWSRMHandler
    WS-RM 機能に対して Web サービス JAX-WS エンジン・ハンドラーを使用不可にするかどうかを制御する場合は、このプロパティーを使用します。デフォルト値は false です。
    com.ibm.ws.websvcs.disablePMIHandler
    Web サービス PMI データ収集機能に対して Web サービス JAX-WS エンジン・ハンドラーを使用不可にするかどうかを制御する場合は、このプロパティーを使用します。デフォルト値は false です。
    com.ibm.ws.websvcs.disablePMIRMHandler
    WS-RM 機能の Web サービス PMI データ収集に対して Web サービス JAX-WS エンジン・ハンドラーを使用不可にするかどうかを制御する場合は、このプロパティーを使用します。デフォルト値は false です。
    com.ibm.ws.websvcs.disableAddressingHandler
    WS-Addressing 機能に対して Web サービス JAX-WS エンジン・ハンドラーを使用不可にするかどうかを制御する場合は、このプロパティーを使用します。デフォルト値は false です。
    com.ibm.ws.websvcs.disableDefaultGlobalHandlers
    すべてのデフォルトの Web サービス JAX-WS エンジン・ハンドラーを使用不可にするかどうかを制御する場合は、このプロパティーを使用します。このプロパティーを true に構成すると、以下のカスタム・プロパティーの値がオーバーライドされ、それらの値が true に設定されます。
    • com.ibm.ws.websvcs.disableWSDMHandler
    • com.ibm.ws.websvcs.disableWSSecurityHandler
    • com.ibm.ws.websvcs.disableWSTXHandler
    • com.ibm.ws.websvcs.disableWSRMHandler
    • com.ibm.ws.websvcs.disablePMIHandler
    • com.ibm.ws.websvcs.disablePMIRMHandler
    • com.ibm.ws.websvcs.disableAddressingHandler
    このカスタム・プロパティーのデフォルト値は false です。

利用可能な追加の Web サービス・パフォーマンス・フィーチャー

  • 同じアプリケーション・サーバー・プロセスに配置された Web サービス・クライアント・アプリケーションと Web コンテナーとの間の通信パスを最適化するために Web サービスにはイン・プロセスでの最適化があります。この機能を使用可能にする方法については、『Web コンテナーの最適化された通信に対する Web サービス・クライアント』を参照してください。
  • 複数のトランスポート・プロトコルを介した Web サービスへのアクセスは、非 SOAP バインディング (RMI/IIOP および JMS など) をサポートする既存の Java API for XML-based remote procedure call (JAX-RPC) 機能を拡張します。これらの代替トランスポートは、Web サービスのパフォーマンスおよびサービス面の質を向上させます。詳しくは、『JAX-RPC を使用した RMI-IIOP』の情報を参照してください。
  • SOAP with Attachments API for Java (SAAJ) バージョン 1.2 には、JAX-RPC に 関連した Web サービス用のプログラミング・モデルがあります。SAAJ API には、XML API を使用して SOAP 要求を作成および処理する機能があります。 SAAJ では、ジャストインタイム (JIT) 構文解析およびその他の内部アルゴリズムがサポートされています。 SAAJ または Web サービスのプログラミングについて詳しくは、『SOAP with Attachments API for Java』の情報を参照してください。

    SAAJ 1.3 は、Java API for XML Web Services (JAX-WS) プログラミング・モデルを基に開発および実装された Web サービスをサポートしています。

  • Web サービス・ツールは、すべての JAX-RPC Bean 用に、さらにハイパフォーマンスのカスタム・デシリアライザーを生成します。 V5.x アプリケーションを V6 ランタイムへ再デプロイすることにより、 容量の大きいメッセージの処理時間を削減することができます。
  • シリアライゼーションおよびデシリアライゼーションのランタイムが拡張し、頻繁に使用されるシリアライザーおよびデシリアライザーをキャッシュすることができます。 これにより、容量の大きいメッセージの処理時間を削減できます。

IBM® では、Web サービスのアプリケーション設計と開発の考慮事項に関する文書およびベスト・プラクティスを提供し、これらの項目を詳しく説明しています。


トピックのタイプを示すアイコン 参照トピック



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