SOAP

SOAP (以前は Simple Object Access Protocol と呼ばれていました) は、非集中型の分散環境での情報交換を目的とする単純なプロトコルです。SOAP メッセージは、送信者から受信者に情報を伝送するための手段です。SOAP メッセージは、要求/応答パターンを実行するために組み合わせて使用することができます。

SOAP は、トランスポートに依存しませんが、最も一般的な方法としては、既存のインターネット・インフラストラクチャーを使用して実行できるように、HTTP を介して伝送されます。SOAP は、メッセージ・ルーティングのためのメッセージ・パスを定義することよって、ディスカバーされた Web サービスをバインディングしたり、使用したりできるようにします。SOAP は Web サービスの UDDI の照会に使用されます。

Java™ API for XML Web Services (JAX-WS) 標準は、SOAP 1.1 と SOAP 1.2 の両方をサポートする機能を導入しています。WebSphere® Application Server V7.0 以降または WebSphere Application Server Liberty Profile がインストールされている場合、ワークベンチでは SOAP 1.1 および SOAP 1.2 がサポートされます。

SOAP 1.1

SOAP 1.1 は、プロトコルに依存しないトランスポート・プロトコルであり、各種のプロトコルと組み合わせて使用することができます。WebSphere Application Server で開発および実装される Web サービスでは、SOAP は HTTP、HTTP 拡張フレームワーク、および Java Message Service (JMS) と組み合わせて使用されます。また、SOAP は、オペレーティング・システムにも依存せず、どのようなプログラム言語にもコンポーネント・テクノロジーにも縛られません。クライアントが XML メッセージを発行できる限り、どのようなテクノロジーを使用してそのクライアントを実装するかは問題になりません。同様に、サービスで SOAP メッセージを処理できる限り、任意の言語を使用してそのサービスを実装することができます。また、サーバー・サイドとクライアント・サイドの両方を任意の適切なプラットフォームに配置することができます。

SOAP は、各メッセージの以下の 3 つの部分を定義する XML ベースのプロトコルです。

SOAP は以下の 2 つの異なるコミュニケーション・スタイルをサポートします。

分散コンピューティング環境では、アプリケーションで定義されるデータ値と特定のプロトコル・フォーマットとの間で行われる変換の方法をエンコード・スタイルによって定義します。この変換プロセスを、シリアライゼーションおよびデシリアライゼーションといいます。SOAP 1.1 仕様では、SOAP エンコード・スタイルを次のように定義しています。

WSDL では、リテラル XML エンコード・スタイルを次のように定義しています。

SOAP 1.2

SOAP 1.2 仕様も World Wide Web Consortium (W3C) 勧告であり、このワークベンチに含まれているツールは SOAP 1.2 に示されている規格に準拠しています。SOAP 1.2 仕様は、3 つのパートと、いくつかの表明およびテストのコレクションから構成されています。

SOAP 1.2 は、SOAP 処理モデルについてより具体的な定義を示しています。そのため、Web Services-Interoperability (WS-I) プロファイルがない場合にインターオペラビリティーの問題を招く可能性がある、あいまいな表現の多くが解消されています。SOAP 1.2 を採用することで、異なるベンダー間での SOAP 1.2 の実装に伴うインターオペラビリティーの問題が発生する可能性が少なくなります。

SOAP 1.2 仕様におけるより重要な変更点として、以下のものがあります。
  • ベンダーが SOAP 1.2 で規定されているバインディング・フレームワークに準拠していれば、HTTP プロトコル以外のトランスポート・プロトコルを正式的に定義できるようになりました。HTTP は、ユビキタスですが、トランスポートの面では TCP/IP や MQ などに比べると信頼性は高くありません。
  • SOAP 1.2 は XML Information Set (XML Infoset) に基づいています。この情報セットは、XSD スキーマを使用して XML 文書を記述する手段を提供しますが、必ずしも XML 1.0 シリアライゼーションを使用して文書をシリアライズするわけではありません。SOAP 1.1 は XML 1.0 シリアライゼーションに基づいています。この情報セットによって、バイナリー・プロトコル・フォーマットなどのような他のシリアライゼーション・フォーマットを簡単に使用できるようになります。バイナリー・プロトコル・フォーマットを使用すると、詳細なタグ情報の一部が不要になることなどにより、メッセージを非常にコンパクトにすることができます。

SOAP に関する追加情報

SOAP 1.1 と 1.2 の違いの詳細な説明については、SOAP のバージョンによる違い (Differences in SOAP version) を参照してください。

トピックのタイプを示すアイコン 概念のトピック
インフォメーション・センターのご利用条件 | フィードバック

タイム・スタンプ・アイコン 最終更新: May 29, 2014 10:20

ファイル名: csoap.html