倉光君郎
ビギナーのためのWebサービスを支えるXMLベースの新プロトコル
SOAP入門
ガイド
書誌
author | 倉光君郎 |
publisher | CQ出版社 |
year | 『OPEN DESIGN 2001.3』p.84-87 |
目次
1 | 要約 |
履歴
editor | 唯野 |
2001.1.16 | 読了 |
2001.1.29 | 公開 |
2002.4.29 | 修正 |
要約
SOAP (Simple Object Access Protocol) は、CORBA や COM といった分散オブジェクトへのアクセスを XML によって統一的に表現しようという新しいプロトコル。インターネットビジネスの広がりに伴う異種システム間通信において、ファイアウォール越しにではなく一般的な Web サーバやメールサーバのポート越しに分散オブジェクトへアクセスし、そのためのデータ(テキストデータ)のシリアライズ・フォーマットとして XML を使おうというもの。
SOAP はマイクロソフトが提唱したプロトコルだが、マイクロソフトは SOAP の仕様を早い段階から W3C に提案しており、オープン性がある。そして、XML というテキストベースであることによって、IIOP や DCOM といった技術抜きでの記述(可搬性)を実現している。また、メソッドで使用されるデータ構造の定義は XML スキーマによって参照することができる。XML スキーマには実際のプログラミング言語に対するマッピング上の切り分けという問題もあるが、オブジェクト指向的な記述という点での共通点も存在している。
とはいえ、現在の SOAP には(XML のパースなどによる)パフォーマンスや具体的なセキュリティ対策といった面における不備も存在している。(ちなみに現在での最新の仕様は 1.1。)そのため現状での SOAP はインターネットアクセスにおけるソケットを意識させない、より上位のプロトコルのひとつとして捉えることができる。SOAP の本格的な普及には関連ツールの準備などが必要といえる。
SOAP メッセージのサンプル
これは http://www.w3.org/TR/SOAP/ にあるサンプルのコピー。雰囲気からも分かるようにメッセージはエンベロープ(必須)とヘッダ(省略可)、ボディ(必須)より構成される。
リクエスト
POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
レスポンス
HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
SOAP を用いた Web サービスに関しては 「Web サービスの本質に迫る」 をどうぞ。