SOAPとは?
SOAPとは、異なるコンピュータ上で動作するプログラム同士が、ネットワークを通じてメッセージを伝え合い、連携して動作するための通信プロトコル(規約)の一つである。メッセージの記述にXMLを、データ伝送に主にHTTPを用い、Webサービスの提供や利用に適しているとされる。
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メッセージ / SOAPエンベロープ
SOAPで送受信されるXML形式のデータをSOAPメッセージ(SOAP message)という。SOAPメッセージであることを示すため、一番外側をエンベロープ(envelope:封筒)と呼ばれるタグで覆った構造になっている。そのため、SOAPエンベロープとも呼ばれる。
エンベロープの内側には宛先などの制御情報を記述する「SOAPヘッダ」(SOAP header)、送受信したい内容本体が記述された「SOAPボディ」(SOAP body)が並んでいる。これをHTTPなどのプロトコルで送り合うことで、異なる種類のシステム間で処理要求や応答などを伝達することができるようになる。
SOAP自身はXMLベースの規格でプロトコルには依存せず、適切なヘッダを付加することにより、様々なプロトコルによる送受信が可能となる。最も利用が多いと思われるHTTP経由での場合は、通常のHTTPヘッダに加えて「SOAPAction」というヘッダを付加し、送り先のURIをHTTPヘッダに含められるようになっている。