SOAP

読み:そーぷ / 英語表記:SOAP

ソフトウェア同士がネットワークを介して処理を呼び出し合うための、XMLに基づくメッセージのプロトコル。主にHTTPの上で使い、分散したアプリケーションを連携させる(Webサービス)。

イマシルちゃんの解説

違う会社が作ったプログラム同士でも、「この形の手紙で頼んでね」っていうルールを決めておけば、仕事を頼み合えるよね。

SOAPは、そのルールの1つなんだ。
XMLっていう、きっちりした書式で手紙(メッセージ)を書いて、HTTPで送るよ。
書式は少し重たいけど、決まりがしっかりしているから、大きな会社のシステム同士をつなぐのに使われてきたんだ!

より深い解説

定義

SOAPは、W3Cで標準化された、XMLで記述したメッセージを交換するためのプロトコルである。もとは Simple Object Access Protocol の略だったが、バージョン1.2からは略語ではなく固有の名前として扱われている。トランスポートには主にHTTPを使い、SMTPなどを使うこともできる。

メッセージの構成

要素内容
Envelope(封筒)メッセージ全体を包む
Header(ヘッダー)認証、トランザクションなどの付加情報(省略可)
Body(本体)呼び出す処理と引数、または結果
Faultエラーの情報

サービスが提供する処理や、メッセージの形式は、WSDL(Web Services Description Language)というXMLの文書で記述する。

RESTとの比較

SOAPREST
性格厳密に定められたプロトコル設計の考え方(アーキテクチャスタイル)
メッセージの形式XML(決まった構造)JSON、XMLなど自由
操作の表し方メッセージの中で、呼び出す処理を指定するURIで資源を指定し、HTTPのメソッド(GET、POST、PUT、DELETE)で操作を表す
機能セキュリティ(WS-Security)やトランザクションなどの拡張仕様が豊富シンプルで軽い
主な用途企業の基幹システム同士の連携Web API、スマートフォンアプリ

現在の多くのWeb APIは、より軽量なRESTの考え方で作られているが、金融機関や官公庁のシステムなどでは、SOAPも使われている。

ほかの技術との区別

技術内容
SOAPHTTPの上でXMLのメッセージをやり取りし、ネットワーク上に分散したアプリケーションを連携させる
WebDAVHTTPを拡張して、サーバ上のファイルの参照・作成・削除やバージョン管理を行う
CoAPIoT機器向けに、UDPの上でRESTの考え方を実現する軽量なプロトコル

実際の試験ではここに出る!

この用語が出てくる記事

↑