Skip to content

MS_SOAP

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

SOAP

概要

  • ASP.NET Web Service や WCF(MS_WCF.md)などで使用される。

  • XML-RPC から発展した、

    • XML Web サービスのための、
    • XML ベースの RPC プロトコル
  • オワコンと言う説(WCF: MS_WCF.md)もある。

移行メモ(正誤): 「SOAP は Simple Object Access Protocol の略」と 説明されることが多いが、SOAP 1.2 で頭字語であることは廃止され、 現在は単に「SOAP」という固有名詞である (W3C SOAP 1.2 Part 0 に明記されている)。

詳細

構成

SOAP メッセージは XML で、次の構造を持つ。

要素 内容
Envelope メッセージ全体を包むルート要素(必須)
Header 認証・トランザクション・ルーティング等のメタ情報(省略可)
Body 実際のペイロード。エラー時は Fault を含む
  • トランスポートは HTTP が一般的だが、HTTP に限定されない (SMTP や MQ 上でも運べる)。この点が REST との大きな違いである。
  • インターフェイス定義には WSDL、サービス検索には UDDI が用意されていた (UDDI は事実上使われずに終わった)。

WS-* 仕様群

SOAP の周囲には、いわゆる WS-* と呼ばれる拡張仕様群が積み上げられた。

  • WS-Security(メッセージ レベルの署名・暗号化)
  • WS-Trust / WS-Federation
  • WS-ReliableMessaging、WS-AtomicTransaction、WS-Policy, etc.

補足: SOAP が敬遠された理由は「XML だから重い」だけではなく、 WS-* の組み合わせ爆発によって相互運用性の検証コストが跳ね上がった点が大きい。 WCFのタイムアウトで触れられている 「WS-* だけあって、色々あって難しい」も同じ話である。

一方で、メッセージ レベルのセキュリティ(エンドツーエンドで署名・暗号を 保持したまま複数ホップを経由する)は、 トランスポート レベルの SSL/TLS では代替できない SOAP の強みであった。

現在の位置付け

  • 新規開発で選択されることは、ほぼ無い。
  • 既存資産(金融・公共系の基幹連携、EDI、一部の業務パッケージ)では現役である。
  • .NET では ASP.NET Web Service と WCF(MS_WCF.md)が 実装手段だったが、いずれもレガシー扱いである。

補足(最新化): WCF は .NET Core 以降に移植されず、 クライアント側のみ System.ServiceModel.* パッケージとして提供されている。 サーバ側を .NET 8 以降で動かす必要がある場合、 コミュニティ プロジェクトの CoreWCF が事実上の移行先である。 新規に SOAP を選ぶ理由が無いなら、RESTgRPC への置き換えを検討すること。

参考


Tags: IT国際標準, プログラミング, 通信技術, .NET開発, ASP.NET

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally