SOAP (プロトコル)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
TCP/IP群
アプリケーション層

BGP / DHCP / DNS / FTP / HTTP / IMAP / IRC / LDAP / MGCP / NNTP / NTP / POP / RIP / RPC / RTP / SIP / SMTP / SNMP / SSH / Telnet / TFTP / TLS/SSL / XMPP

カテゴリ
トランスポート層

TCP / UDP / DCCP / SCTP / RSVP / ECN

カテゴリ
ネットワーク層

IP (IPv4, IPv6) / ICMP / ICMPv6 / IGMP / IPsec

カテゴリ
リンク層

ARP/InARP / NDP / OSPF / トンネリング (L2TP) / PPP / MAC (イーサネット, IEEE 802.11, DSL, ISDN, FDDI)

カテゴリ

SOAP(ソープ)は、ソフトウェア同士がメッセージ(オブジェクト)を交換する(リモートプロシージャコール - 遠隔手続呼び出し)ためのプロトコル。ここでいうオブジェクトとはオブジェクト指向のそれである。元は simple object access protocol の意味だったが、現在は「何かの頭字語ではない」とされている[1]

概要[編集]

SOAPは拡張可能で分散的なフレームワークであり、HTTPSMTPなど様々なコンピュータネットワーク通信プロトコルで利用することができる。

いくつかのSOAPメッセージを相互作用させることによってリモートプロシージャコールが実現できる。SOAPはWebサービスに有効な手段の一つである。

SOAPXMLに基づいており、XMLの、ヘッダとボディを組み合わせるデザインパターンで設計されている。「ヘッダ」は、オプショナルであり、ルーティングセキュリティ、そして トランザクションなどのための情報といったメタ情報を格納できる。「ボディ」部分は、主要な情報、別の言い方をすればペイロードと呼ばれるものである。SOAPのペイロードはXML Schemaで規定することができる。

SOAPメッセージの例[編集]

一例として、あるSOAPクライアントが、架空のショッピングサイトのウェブサービスから商品データを整形してSOAPメッセージとして要求する(SOAPリクエスト)際、SOAPメッセージはおおよそ以下のようになる。

 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Body>
     <getProductDetails xmlns="http://warehouse.example.com/ws">
       <productId>827635</productId>
     </getProductDetails>
   </SOAP-ENV:Body>
 </SOAP-ENV:Envelope>

これに対し、ショッピングサイトのウェブサービス側が、要求に基づいて商品データを返信する場合はこのようなSOAPメッセージとなる。

 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Body>
     <getProductDetailsResponse xmlns="http://warehouse.example.com/ws">
       <getProductDetailsResult>
         <productName>Toptimate 3-Piece Set</productName>
         <productId>827635</productId>
         <description>3-Piece luggage set.  Black Polyester.</description>
         <price>100.50</price>
         <inStock>true</inStock>
       </getProductDetailsResult>
     </getProductDetailsResponse>
   </SOAP-ENV:Body>
 </SOAP-ENV:Envelope>

関連項目[編集]

SOAP.svg

外部リンク[編集]

脚注[編集]

  1. ^ http://www.w3.org/TR/soap12-part1/ - Introduction のノートに「In previous versions of this specification the SOAP name was an acronym. This is no longer the case.」とある。