ASP.NET を使用して作成する XML Web サービスのデザイン ガイドライン
このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.
Web サービスは、プログラムからインターネット経由でアクセスできるサービスを提供するための強力な技術です。効果的な Web サービスの作成に役立つ推奨事項を次に示します。
Web サービスは、Web サービスをホストするサーバーとクライアント間の同期通信および非同期通信の両方をサポートしています。同期通信では、クライアントはサービスに対する要求をホスト サーバーに送信し、その応答を待機します。これにより、クライアントは応答を待機している間、その他の操作を実行できなくなります。一方、非同期通信では、クライアントは応答の待機中に他のタスクの処理を続行します。クライアントは、サービス要求の結果が使用可能になると、その結果に応答します。
Web サービス記述言語ツール (Wsdl.exe) を使用してプロキシ クラスを作成すると、そのプロキシ クラスには標準的な同期バーションのメソッドと非同期バージョンのメソッドが生成されます。非同期バージョンは、Begin および End の 2 つのメソッドです。Begin メソッドを使用して Web サービスを開始し、End メソッドを使用してその結果を取得します。
非同期通信を使用すると、システムの使用効率が向上すると共に、Web サービスの結果を待っている間にクライアントで発生する遅延を回避できます。
コード例については、「方法 : Web サービス クライアントから非同期呼び出しを行う」を参照してください。非同期通信の詳細については、「XML Web サービスとの非同期通信」を参照してください。
インターネット経由で数多くのサービスを要求すると、クライアント アプリケーションのパフォーマンスに影響します。Web サービスのデザイン時に、関連する情報をまとめるメソッドを作成することで、サービスの要求を効果的に処理できます。たとえば、書籍情報を取得する Web サービスをデザインするとします。書籍のタイトル、作者、および出版元を取得するメソッドを個別に作成するのではなく、1 回のサービス要求ですべての情報を返すメソッドを作成します。情報のブロックを小さくして複数回に分けて転送するよりも、大きな情報ブロックを 1 回で転送した方が効率的です。
コード例については、「方法 : 関連する情報を 1 つの Web サービス メソッドにグループ化する」を参照してください。Web サービスのデザイン時には、標準のオブジェクト指向プログラミング手法を使用してください。カプセル化を使用して実装の詳細を隠ぺいします。より複雑な Web サービスの場合は、継承およびポリモーフィズムを使用することで、コードを再利用してデザインを簡潔化できます。
コード例については、「方法 : Web サービスで継承を使用する」を参照してください。出力キャッシュを使用して Web サービスのパフォーマンスを向上させます。出力キャッシュを有効にすると、指定した期間中、サービス要求の結果が出力キャッシュに格納されます。したがって、同様の Web サービス要求が行われた場合、その結果を再計算する代わりに、出力キャッシュから取得できます。これにより、Web サービス サーバーで必要な処理が減少して、Web サービスの反応時間が短縮されます。キャッシュはクライアントとサーバーの両方で実行できます。Duration プロパティを使用して、Web サービスの出力をキャッシュしておく時間を指定できます。
クライアントで出力キャッシュを有効にするディレクティブは次のとおりです。
<%@ OutputCache Duration="60" %> For a code example, see How to: Enable Output Caching on a Web Service Client.You can also use the CacheDuration property of the WebMethod attribute class to enable caching on the server. For a code example, see How to: Enable Server-Side Output Caching for a Web Service.
Web サービスのデザイン時には、スキーマの書式指定の構造に従ってください。
Web サービスは、主要なトランスポート プロトコルおよびシリアル化プロトコルとして SOAP を使用します。SOAP メッセージは、省略可能なヘッダー セクションと、メッセージの本文で構成されます。ヘッダー セクションには、Web サーバー上のインフラストラクチャによって処理できる情報が含まれています。SOAP は、ヘッダーの定義は行いません。本文セクションには、Web サービスのパラメーターや戻り値など、アプリケーションによって処理される情報が含まれています。
SOAP ヘッダーの使用方法の詳細については、「SOAP ヘッダーの使用」を参照してください。
Web サービスについて、そのサービスが実行する操作やデータ構造が記述された静的 HTML ファイルなどのドキュメントを用意します。このドキュメントには、Web サービスの使用法の例も記述します。サービスの説明またはサービス ヘルプ ページだけをユーザーに提供するドキュメントとすることは避けてください。
参照
処理手順
方法 : Web サービス クライアントから非同期呼び出しを行う
方法 : 関連する情報を 1 つの Web サービス メソッドにグループ化する
方法 : Web サービスで継承を使用する
方法 : Web サービス クライアントで出力キャッシュを有効にする
方法 : Web サービスのサーバー側の出力キャッシュを有効にする