SOAP 【Simple Object Access Protocol】

概要

SOAP(Simple Object Access Protocol)とは、ネットワーク上でWebサービス間やサーバクライアントメッセージを交換しあって連携するためのプロトコル(通信規約)の一つ。メッセージの記述にXMLを、データ伝送に主にHTTPを用い、Webサービスの提供や利用に適している。

システム間で処理の依頼や応答、データの受け渡しをうための仕様で、「XML-RPC」から発展した技術である。特定のシステムに固有の技術を用いず、Web標準を応用して構成されており、WindowsLinuxなど様々な環境が混在していても相互運用性を確保することができる。

SOAPメッセージ/SOAPエンベロープ

SOAPで送受信されるXML形式のデータを「SOAPメッセージ」(SOAP message)という。SOAPメッセージであることを示すため一番外側を「エンベロープ」(envelope:封筒)と呼ばれるタグで覆った構造になっているため、「SOAPエンベロープ」とも呼ばれる。

エンベロープの内側には宛先などの制御情報を記述する「SOAPヘッダ」(SOAP header)、送受信したい内容本体が記述された「SOAPボディ」(SOAP body)が並んでいる。これをHTTPなどのプロトコルで送り合うことで、異なる種類のシステム間で処理要求や応答などを伝達することができる。

SOAP自身はXMLベースの規格でプロトコルには依存せず、適切なヘッダを付加することにより様々なプロトコルによる送受信が可能になっている。最も一般的なHTTP経由での場合は、通常のHTTPヘッダに加えて「SOAPAction」というヘッダを付加し、送り先のURLHTTPヘッダに含められるようになっている。

SOAPヘッダ/SOAPボディ

SOAPメッセージ内で制御情報などを記述する冒頭部分を「SOAPヘッダ」(SOAP header)という。伝達内容の本体であるSOAPボディに記述した内容の宛先や認証情報、改竄防止のためのハッシュ値セッションID、その他関連する属性情報が記述される。不要な場合は省略できる。

SOAPによって相手方のシステムへ渡される伝達内容そのものを記述した部分を「SOAPボディ」(SOAP body)という。具体的なデータや処理の依頼(リクエスト)や、それに対する応答内容(レスポンス)などが格納される。データ形式や内容はアプリケーションによって異なり、SOAP規格自体では関知しない。

関連仕様

SOAPで実装されたWebサービスの呼び出し方、引き渡すパラメータの種類やデータ型などのインターフェース情報は「WSDL」(Web Services Description Language)呼ばれるXMLベースの言語で記述され、サービス利用者に公開される。

様々なWebサービスWSDL文書を集め、どこでどのようなWebサービスが利用できるのかといった情報を収集して利用者検索・発見できるようにしたデータベースもあり、「UDDI」(Universal Description, Discovery and Integration)と呼ばれる。

SOAPを基盤に、「WS-Addressing」や「WS-Security」「WS-Reliability」「WS-Routing」など、名称が「WS-」で始まる様々なプロトコルメッセージ規格が機能や用途に応じて策定されており、これらを含めたSOAPベースの技術全体を指してSOAPという場合もある。

歴史

SOAPの仕様は1999年に米マイクロソフトMicrosoft)社などが発表したもので、2000年5月にW3Cが最初の標準規格を勧告した。2000年台前半には企業システムWebサービス化と共に同社製品などの対応も進んだ。

しかし、WS-*プロトコル群などを含む巨大で複雑な仕様が次第に敬遠されるようになり、「REST」と呼ばれるシンプルな設計原則に則った軽量なWebサービスAPI仕様「RESTful API」の方が好まれるようになった。現在では同社のWinRMWS-Managementに対応している程度で、ほとんどのWeb APIRESTful APIとして提供されている。

(2024.2.10更新)

他の辞典による解説 (外部サイト)

この記事を参照している文書など (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる