XML Web サービス ワイヤ形式

DCOM などのバイナリ プロトコルは、独自の通信プロトコルを利用するメソッド要求層で構成されています。このようなプロトコルは、汎用的に使用できる XML Web サービスの作成には役立ちません。このようなプロトコルを XML Web サービスのシナリオで使用できないというわけではありません。ただし、これらのプロトコルには、基になるシステムに固有のアーキテクチャに依存しているため、サービスのクライアントの範囲が制限されるという欠点があります。

代わりに、HTTP と SOAP の組み合わせなど、1 つ以上のオープン プロトコルを処理するように XML Web サービスを構築できます。さまざまなプロトコルのサポートに必要なインフラストラクチャは一様ではありません。

XML Web サービスは、リモート プロシージャ コール (RPC: Remote Procedure Call) によるアクセスを実現するだけではありません。発注書や請求書などの構造化情報を交換するように構築したり、内外のビジネス プロセスの自動化と結合に使用できます。

HTTP-GET と HTTP-POST

HTTP-GET と HTTP-POST は、ハイパーテキスト転送プロトコル (HTTP: Hypertext Transfer Protocol) 動詞を使用し、関連する要求セマンティクスと共にパラメータを名前と値のペアとしてエンコードして渡す、標準のプロトコルです。どちらも、一連の HTTP 要求ヘッダーで構成されます。ヘッダーは主に、クライアントがサーバーに要求しているデータを定義します。要求が正常に処理されると、サーバーは要求に応答して、一連の HTTP 応答ヘッダーと要求されたデータを返します。

HTTP-GET は、MIME 型 application/x-www-form-urlencoded で URL エンコードされたテキスト形式でパラメータを渡します。このテキストは、要求を処理するサーバーの URL の後に追加されます。URL エンコーディングは文字エンコーディング形式の 1 つであり、渡されるパラメータが仕様 (空白を %20 としてエンコードするなど) に準拠したテキストで構成されることを保証します。追加されたパラメータは、クエリ文字列とも呼ばれます。

HTTP-POST パラメータも、HTTP-GET と同様に URL エンコードされます。ただし、URL の一部として渡されるのではなく、名前と値のペアが実際の HTTP 要求メッセージ内で渡されます。

SOAP

SOAP は、Web 上で構造化情報と型情報を交換するための単純で軽量な XML ベースのプロトコルです。SOAP の全体的なデザイン目標は、できるだけ簡単にして、最小限の機能を提供することです。このプロトコルは、アプリケーションやトランスポートのセマンティクスを含まないメッセージング フレームワークを定義します。このため、SOAP は拡張性が高いモジュール型のプロトコルとなっています。

SOAP は標準のトランスポート プロトコル上で送信されるため、インターネットという既存のオープン アーキテクチャを使用して、最も基本的なインターネット標準をサポートする任意のシステムで簡単に利用できます。SOAP 準拠の XML Web サービスのサポートに必要なインフラストラクチャは、インターネットの既存のインフラストラクチャをわずかに変更しただけの構成ですが、SOAP で作成されたサービスに汎用的にアクセスできるため、単純ながらも強力です。

SOAP プロトコル仕様は、4 つの主要部分で構成されます。1 番目の部分は、データをカプセル化するための拡張性を備えた必須のエンベロープを定義します。SOAP エンベロープは SOAP メッセージを定義するもので、SOAP メッセージ プロセッサ間で交換される基本単位です。仕様の必須部分は、この部分だけです。

2 番目の部分は、アプリケーション定義のデータ型と有向グラフを表すための省略可能なデータ エンコード規則と、非構文データ モデルをシリアル化するための統一モデルを定義します。

3 番目の部分は、RPC スタイル (要求/応答) のメッセージ交換パターンを定義します。各 SOAP メッセージは一方向転送です。SOAP の基盤は RPC ですが、要求/応答の機構であることに限定されません。XML Web サービスでは、多くの場合、SOAP メッセージを組み合わせてメッセージ交換パターンを実装しますが、SOAP ではそのようなパターンが必須ではないため、仕様のこの部分も省略できます。

4 番目の部分は、SOAP と HTTP 間のバインディングを定義します。ただし、この部分も省略できます。SOAP は、SMTP、FTP、フロッピー ディスクなど、SOAP エンベロープを転送できる任意のプロトコルまたは機構と組み合わせて使用できます。

SOAP 仕様については、W3C の Web サイト (http://www.w3.org/TR/soap) を参照してください。

関連項目

概念

XML Web サービス インフラストラクチャ

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.