マネージ コードを使用した Web サービスのプログラミングの概要
Web サービスを使用すると、異種のシステム間で XML メッセージとして緩い結合のデータを交換できます。データやアプリケーション ロジックのリモート アクセス自体は新しい概念ではありませんが、緩い結合された形でのリモート アクセスは新しい概念です。DCOM、IIOP、Java/RMI など、以前の試みでは、クライアントとサーバーの間に緊密な統合が必要でした。Web サービスの基礎となる XML ベースのコントラクトではなく、オペレーティング システム固有と実装に固有の両方のバイナリ データ形式が使用されました。
DCOM、IIOP、および Java/RMI では特定のコンポーネント テクノロジまたはオブジェクト呼び出し規約が必要でしたが、Web サービスではそのようなテクノロジや規約は必要ありません。クライアントとサーバーの間での唯一の前提事項は、受信側が受け取ったメッセージを理解できるということだけです。言い換えれば、クライアントとサーバーはコントラクト (この場合は、WSDL と XML スキーマ定義 (XSD: XML Schema Definition) で記述されたコントラクト) に同意しています。次に、クライアントとサーバーは、HTTP などの指定されたトランスポートを通じて、コントラクトに従ったメッセージを生成してやり取りします。そのため、プログラムがどの言語で記述されているか、どのコンポーネント モデルを使用しているか、どのオペレーティング システムで実行されているかに関係なく、あらゆるプログラムから Web サービスにアクセスできます。さらに、XML などのテキスト形式の柔軟性により、メッセージ交換が緩い結合された形で時間の経過と共に発展することが可能になります。メッセージ交換に関与するすべてのシステムの同時更新ができない環境では、このような緩い結合が必須です。
このテクノロジは、既存のアプリケーションとの下位互換性のために残されているものです。新規の開発には使用しないでください。推奨する代替については、以下を参照してください。
Visual Studio での Windows Communication Foundation サービスと WCF データ サービス
Web サービスと .NET Framework
ASP.NET および .NET Framework に基づいたマネージ コードを使用して Web サービスを作成する場合、通信プロトコルやメッセージ トランスポートなどの詳細を処理するためにインフラストラクチャ コードを記述する必要はありません。さらに、ASP.NET ページ フレームワークを使用する Web サービスを作成する場合、Web サービスで認証、キャッシュ、状態管理などの多くの .NET Framework 機能を使用できます。
ASP.NET アプリケーション モデルでは、Web ページは .aspx という拡張子を使用します。Web サービスを通常の ASP.NET ページと区別するために、Web サービスには .asmx という拡張子が付けられます。
Web サービスを使用してデータの双方向交換を簡単にするには、開発者は次のことを実行する必要があります。
Web サービスの作成XML Web サービスを作成するときには、XML Web サービス クライアントに機能を公開するアプリケーションを作成します。
Web サービスへのアクセスWeb サービスにアクセスするときには、クライアント アプリケーションは Web サービス内に含まれる機能を探し、参照して使用します。一般に、XML Web サービスのクライアントはアプリケーションです。このアプリケーションは、Web サービスとの間でメッセージを送受信して処理できます。
同じ開発者が必ず Web サービスを作成した後にアクセスするとは限りません。一部の Web サービス (交通情報サービスなど) は、単一のエンティティ (運輸省など) によって作成される場合もあります。ただし、このサービスにはさまざまな Web サイト (運送会社の Web サイトなど) からアクセスできます。
Web サービスは、スタンドアロンのアプリケーションである場合と、より大規模な Web アプリケーションのサブコンポーネントである場合があります。たとえば、オンラインで書籍を販売する Web アプリケーションを作成するとします。この Web アプリケーションは、Web サービスを次のように使用します。
Web サービスの作成アプリケーションは、その注文処理ロジックを Web サービスとして公開します。提携先の Web サイトは、オンラインで書籍を販売する Web アプリケーションでこのサービスにアクセスします。
Web サービスへのアクセスアプリケーションは、オンライン書店向けに書評を書いて提供する別のオンライン企業が開発した Web サービスにアクセスします。オンライン書店にアクセスした顧客が特定の本の価格を見ると、同じページにその同じ本の書評が表示されます。
Web サービスは、他の Web サービス、Web アプリケーション、Windows アプリケーション、コンソール アプリケーションなど、さまざまな種類のアプリケーションからアクセスできます。ただし、クライアントは Web サービスにメッセージを送信できる必要があります。