SOAP (プロトコル)
SOAP processing model はSOAPが採用する分散型メッセージ処理モデルである。
分散コンピューティングを指向するSOAPでは「ネットワーク上に存在するノードがメッセージを送り合いながら処理をおこない最終結果を得る」という処理モデルを取っている。これが SOAP processing model である。
SOAP Node はメッセージ処理を担うノードである。
processing model における出発ノードを initial SOAP sender、中間ノードを SOAP intermediary、終着ノードを ultimate SOAP receiver という。各ノードが担う役割を SOAP roles という。仕様では next / none / ultimateReceiver の3つの role name を定める。終着ノードはメッセージのbodyを処理する責務を負う。中間ノードはそのroleに基づき header block の処理を担う。
拡張可能で分散的なフレームワークであり、HTTP以外にも様々なコンピュータネットワークの通信プロトコルで利用することができると主張され、SMTPへのバインディングも示されているが、実際上TCP/IP上のHTTP(S)以外の使用は現実的ではない。主要な実装としてApache Axisがある。多くの実装の間で相互運用性に問題があるとしてWS-Iというコンソーシアムが作られたが、現在はOASISの一部となっている。
いくつかのSOAPメッセージを相互作用させることによってリモートプロシージャコールが実現できる、Webサービスに有効な手段の一つである、などと主張されている。
メッセージの表現にXMLを使用する。メッセージはヘッダとボディから成る。ヘッダはオプショナルであり、ルーティングやセキュリティ、そして トランザクションなどのための情報といったメタ情報を格納する。ボディは、主要な情報すなわちペイロードである。
相互運用性のためにはXML Schemaなどで、なんらかのスキーマを定義することが望ましいであろう。また、WSDLという記述言語がある。
「WS-*」と総称される関連プロトコルが多量にある。