SOAP (プロトコル)
| 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は拡張可能で分散的なフレームワークであり、HTTPやSMTPなど様々なコンピュータネットワークの通信プロトコルで利用することができる。
いくつかのSOAPメッセージを相互作用させることによってリモートプロシージャコールが実現できる。SOAPはWebサービスに有効な手段の一つである。
SOAPはXMLに基づいており、XMLの、ヘッダとボディを組み合わせるデザインパターンで設計されている。「ヘッダ」は、オプショナルであり、ルーティングやセキュリティ、そして トランザクションなどのための情報といったメタ情報を格納できる。「ボディ」部分は、主要な情報、別の言い方をすればペイロードと呼ばれるものである。SOAPのペイロードはXML Schemaで規定することができる。
SOAPメッセージの例 [編集]
一例として、あるSOAPクライアントが、架空のショッピングサイトのWebサービスから商品データを整形して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>
これに対し、ショッピングサイトのWebサービス側が、要求に基づいて商品データを返信する場合はこのような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 Version 1.2 (W3C)
脚注 [編集]
- ^ http://www.w3.org/TR/soap12-part1/ のIntroductionのNoteに“In previous versions of this specification the SOAP name was an acronym. This is no longer the case.”とある。
|
|||||||||||||||||||||||||||||||