はじめに
この記事はSOAPってなんぞや?というのをわかりやすく理解するため、深く掘り下げた内容ではありません。使われ方やRESTとの違いなどを説明しています。
SOAPとは、Simple Object Access Protocolの略
コンピュータ間のメッセージをやり取りする通信プロトコルの仕様のことのようですね。
似たような仲間にはRESTなどがある(こちらはよく聞きますね)。
ではSOAPの特徴について次で説明していきます。
SOAPの特徴
通信内容
通信内容の記述はXMLを使うため、プログラミング言語やプラットフォームに依存しないようになっている。
通信手段
通信手段はHTTPに限らずSMTP、FTPなど任意の通信プロトコルを使用することができる。
既に普及している既存のプロトコルから通信手段を選択することができるため、ファイヤウォールなどを安全に通過させることができる。
RESTとの違い
そもそもの思想が違うようなのですが、簡単に書くとこんな感じ。
RESTは通信手段(運び方)が決まっていて(HTTP)、シンプルに記述できる。
もはやWeb=RESTというイメージの定着。
SOAPはもっといろいろできる便利屋さん。
通信手段はいろいろできる。
(他サイトのでの例えがとてもわかりやすかったので表現を真似させてもらうと、バイクで運んでも、飛行機で運んでもいい)
SOAPの構成
SOAPのメッセージの構成は以下の3つに分かれます
- SOAPエンベロープ(envelope:封筒)
- SOAPヘッダ(SOAP header)
- SOAPボディ(SOAP body)
SOAPエンベロープ
SOAPメッセージを定義していることを示すために必ず必要。
SOAPヘッダとSOAPボディを内包している。
SOAPヘッダ
宛先などの情報やルールを定義する項目。
SOAPヘッダはオプションで任意の項目。必要な場合に定義します。
SOAPボディ
送受信する内容本体を定義する項目。
最後に
なんとなくSOAPとは?という部分をまとめました。
冗長な定義が必要な面もあるが、古く廃れた技術なんかではないっていうことですね。