SOAP(Simple Object Access Protocol)とは、プログラム同士がネットワーク越しに処理を頼み合うときの、要求と応答の書き方をXMLで定めた取り決めのことです。「ソープ」と読み、企業のシステム同士をつなぐ標準的な方法として長く使われてきました。
現実世界に例えると、SOAPは決まった様式の申請書で依頼をやり取りする窓口のようなものです。書く欄と順番がきっちり決まっているので、読み違いが起こりにくい一方、ちょっとした頼み事にも正式な書類を用意する手間がかかります。
SOAP図解
RESTとの比較
| 項目 | SOAP | REST |
|---|---|---|
| データの形 | XMLのみ | JSONが主流 |
| 決まりごと | 厳密に定められている | 考え方に近く緩やか |
| 電文の大きさ | 大きくなりがち | 小さく軽い |
| 主な利用先 | 企業間、金融、行政 | Web、スマホアプリ |
封筒のような構造を持つ
電文の作りの話です。SOAPのメッセージは「エンベロープ」と呼ばれる外枠に包まれ、その中に付帯情報を入れるヘッダーと、本題を入れるボディが収められています。どの部分に何を書くかが決まっているため、受け取った側は中身をたどる順番に迷いません。
型がはっきりしている
選ばれてきた理由です。送る値が数値なのか文字なのか、どんな項目が必須なのかを、あらかじめ厳密に定義しておく形をとります。このため、送り手と受け手で解釈がずれる事故が起きにくく、金額や口座のように誤りが許されないやり取りに向いていました。
WSDLで使い方を伝える
SOAPと組になって使われる取り決めです。提供側は、どんな機能があり、何を渡せば何が返るかを、WSDLという形式の説明書として公開します。開発ツールはこれを読み込み、呼び出すためのプログラムを自動で作れるため、相手の仕様を手作業で写し取る必要がありませんでした。
運び方を選ばない
意外に知られていない性質です。SOAPは電文の書き方の取り決めであって、運ぶ手段はHTTPに限りません。メールや社内のメッセージ連携の仕組みに載せて送ることもできます。実際にはHTTPで使われることがほとんどですが、設計上は運び方と切り離されています。
安全面の拡張が充実している
企業で重宝された点です。メッセージの暗号化や署名、確実な到達の保証といった機能を、追加の規格として上乗せできる仕組みが整えられています。通信経路だけでなく電文そのものを守れるため、複数の組織を経由するやり取りでも安全を保ちやすくなっています。
重さが敬遠されるようになった
主流を譲った理由です。XMLの電文は文字数が多く、読み解く処理も重いため、スマートフォンやブラウザから頻繁に呼び出す用途には向きませんでした。より軽く扱いやすいRESTが広まるにつれ、新しく作られるWebのサービスではSOAPを選ぶ例が少なくなっています。
いまも使われ続ける場面
最後に現状です。金融機関どうしの連携、行政への電子申請、長く動いている基幹システムなど、厳密さが重視される分野では現役で使われています。新たに採用される機会は減ったものの、既存の相手とつなぐために、仕組みを理解しておく必要はまだ残っています。



コメント