SOAP(Simple Object Access Protocol)は、異なるオペレーティングシステム間での情報交換を可能にするためのプロトコルです。
主にWebサービスの実装に使用され、XMLベースのメッセージをHTTP、HTTPS、SMTPなどの標準的なネットワークプロトコルを介して送受信します。
SOAPは以下のような特徴を持っています:
仕様
- 拡張性: SOAPは拡張可能なXMLベースのメッセージフォーマットを使用しているため、様々なプロトコルやエンコーディングスタイルに適応することが可能です。
- 中立性: SOAPメッセージはHTTP, SMTP, TCP, UDPなど複数のトランスポートプロトコルを介して送信することができます。
- 独立性: SOAPは任意のプログラミングモデルに使用でき、プラットフォームや言語に依存しません。
構成要素
- エンベロープ: SOAPメッセージの最外部を形成し、メッセージがSOAPであることを示します。
- ヘッダー: オプションであり、メッセージの処理に関する情報(トランザクション、認証、セキュリティなど)を提供します。
- ボディ: 実際のメッセージデータを含みます。RPC呼び出しやレスポンスなどが含まれます。
- フォルト: エラーハンドリング用に使われ、SOAPメッセージ処理中に発生したエラーに関する情報を含みます。
通信パターン
- リクエスト/レスポンス: 最も一般的なパターンで、クライアントはサーバーにリクエストを送り、応答を待ちます。
- ワンウェイ: クライアントからサーバーへの単方向通信です。
SOAPはセキュリティ、トランザクション管理、エラーハンドリングなど、エンタープライズレベルの通信に必要な多くの機能をサポートしているため、銀行や医療システムなどセキュリティが非常に重要なアプリケーションでよく使われています。しかしながら、その複雑さと冗長性から、新しいWebサービスではよりシンプルで柔軟なREST(Representational State Transfer)アーキテクチャが好まれる傾向にあります。