次の方法で共有


XML Web サービスのワイヤ形式

DCOM などのバイナリ プロトコルは、独自の通信プロトコルの上層を成すメソッドの要求層を構成します。このようなプロトコルは、汎用的に使用できる XML Web サービスの作成には有効ではありません。このようなプロトコルを XML Web サービスのシナリオで使用してはいけないというわけではありませんが、これらのプロトコルはその基になるシステムに固有のアーキテクチャに依存しているため、これらのプロトコルを使用することによって、サービスのクライアントになる可能性がある対象が限定されてしまうというデメリットがあります。

別の方法として、HTTP と SOAP の組み合わせなど、1 つ以上のオープン プロトコルを使用するように XML Web サービスを構築できます。この場合、異なるプロトコルをサポートするためにさまざまなインフラストラクチャが必要になることが予想されます。

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

HTTP GET と HTTP POST

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

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

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

SOAP

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

SOAP は、標準のトランスポート プロトコルを使用することによってインターネットの既存のオープン アーキテクチャを利用できるため、最も基本的なインターネット標準をサポートできる任意のシステムなら簡単に受け入れることができます。SOAP 準拠の XML Web サービスをサポートするために必要なインフラストラクチャは、インターネットの既存のインフラストラクチャに比較的少ない機能を追加しただけの構成ですが、SOAP で構築されたサービスへの汎用的なアクセスも実現するため、非常に単純であるにもかかわらず強力なインフラストラクチャとして機能します。

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

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

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

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

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

参照

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