http://www.utj.co.jp/xml/dev/soap/soap1_1.html)をご覧ください。この解説では、SOAP開発の経緯やメリットなどを解説します。" />

ホーム > X-Plus > XML Square >  スタンダーズ

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

スタンダーズコーナー:W3C規格解説 「SOAP 1.2」

2003年07月01日作成 

W3C規格解説
SOAP 1.2
   

(株)日本ユニテック
青木 秀起

SOAPとは、インターネット上にあるWeb サービスを利用する方法を定めたもので、2003年6月24日に勧告になりました。SOAPの概要については、弊社サイト(http://www.utj.co.jp/xml/dev/soap/soap1_1.html)をご覧ください。この解説では、SOAP開発の経緯やメリットなどを解説します。

SOAP 1.2仕様一覧

公開されているSOAP 1.2仕様は以下のとおりです。

勧告
●SOAP Version 1.2 Part 0: Primer - http://www.w3.org/TR/soap12-part0/
 概説的な仕様解説、利用シナリオ
●SOAP Version 1.2 Part 1: Messaging Framework - http://www.w3.org/TR/soap12-part1/
 メッセージフレームワーク、メッセージの処理モデル
●SOAP Version 1.2 Part 2: Adjuncts - http://www.w3.org/TR/soap12-part2/
 付加情報
●SOAP Version 1.2 Specification Assertions and Test Collection - http://www.w3.org/TR/soap12-testcollection/
 テスト用のデータ集

ワーキングドラフト
●SOAP 1.2 Attachment Feature - http://www.w3.org/TR/soap12-af/
 ファイル添付機能
●SOAP Version 1.2 Usage Scenarios - http://www.w3.org/TR/xmlp-scenarios/
 利用シナリオ

技術ノート
●SOAP Version 1.2 Message Normalization - http://www.w3.org/TR/soap12-n11n/
意味的に等価なSOAPメッセージを同一にする変換アルゴリズムの定義
●SOAP Version 1.2 Email Binding - http://www.w3.org/TR/soap12-email
eメール向けプロトコル・バインディング・フレームワーク

SOAP開発の経緯

SOAPの開発は以下のような経緯をたどってきました。

1999年9月 DevelopMentor社、Microsoft社、Userland Software社、SOAPバージョン0.9を公開
1999年11月 3社はSOAPバージョン1.0をIETFへ提出
2000年5月 SOAP 1.1をW3Cに技術ノートとして提出
2001年12月 W3C、SOAP 1.2をワーキングドラフトとして公開
2003年6月 W3C、SOAP 1.2を勧告として承認


SOAP 1.1が公開され、SOAPの実装が進むと、異なるツールで開発したシステムをSOAPで相互接続できないという事態が生じました。SOAP 1.1の仕様にあいまいな点があったため、仕様の解釈にゆらぎが生じたためです。そこで、SOAPの仕様からあいまいさを排除するため、W3CはSOAP 1.2の開発を始め、勧告として承認されるに至ったのです。

SOAP 1.2で変更された主な点は以下のとおりです。

<HTTPプロトコルバインディングヘッダ関連>
●SOAPActionヘッダフィールドを削除
●Content-Typeヘッダフィールドを" text/xml"から" application/soap+xml"に変更
●HTTP拡張フレームワークを削除

<SOAPエンベロープ関連>
●接頭辞:env
●名前空間URL:http://www.w3.org/2002/06/soap-envelope
●Body要素の後にどんな要素も許可しない

<エンコーディングスタイル関連>
●env:encodingStyle属性は、ヘッダブロックおよびその子孫要素、Body要素の子孫要素、Detail要素の子孫要素でのみ可能

<SOAPヘッダ関連>
●env:NotUnderstood見出し要素を追加
●mustUnderstand属性値は"1"または"0"、あるいは"true"または"false"
●env:actor属性をenv:role属性に変更(属性値に"none"と"ultimateReceiver"を追加)
●env:relay属性を追加

<SOAPエンコーディング規則関連>
●接頭辞:enc
●名前空間URL:http://www.w3.org/2002/06/soap-encoding
●フォルトコードDataEncodingUnknownを追加
●href属性をenc:ref属性に変更
●enc:nodeType属性を追加
●itemType属性でデータ型を、arraySize属性でデータ数を指定
●エラー用フォルトサブコードenc:MissingID、enc:UntypedValueを追加

<RPC表現規則関連>
●接頭辞:rpc
●名前空間URL:http://www.w3.org/2002/06/soap-rpc
●rpc:result要素アクセサを追加
●フォルトコードを追加(rpc:ProcedureNotPresent、rpc:BadArguments)

<その他>
●フォルトコードで、"クライアント"と"サーバ"を"送信者"と"受信者"に変更
●faultcodeをenv:Codeに、faultstringをenvReasonに変更
●env:Reason要素は、xml:lang属性を持ち、複数のenv:Text子要素を持てる
●env:Node要素env:Roleと要素を追加
●env:Details要素の有無はエラーの発生場所と関係がない
●相対的URL参照の基底URIを判別するのにXML Baseを利用する

SOAPのメリット

SOAPのメリットとして、以下の点を挙げることができます。

①使用する通信プロトコルは、HTTPやSMTP、FTPである
SOAPは、ほとんど全てのプラットフォームで利用可能で、ファイアーウォールも容易に通過することができます。

②メッセージ形式は、XMLデータである
XMLは、要素名や属性名を手がかりにした自動処理が可能で、メッセージ仕様が変更されてもシステムの変更を少なくすることができます。

③メッセージの構造は封筒構造
SOAPメッセージは、SOAPヘッダとSOAPボディとに分かれています。SOAPボディには送信したいメッセージ自体を入れ、SOAPヘッダには、認証などのセキュリティ情報、トランザクション情報、セッション情報など、SOAPボディでは直接扱うことのできない情報を入れることができます。このヘッダ機能を使って、SOAPメッセージを処理するアプリケーションは機能を拡張することができるのです。

まとめ

SOAPは、Webサービス連携に欠かせない基本技術で、実装も進んでいます。現時点ではSOAP 1.1をサポートしているツールが多いですが、SOAP 1.2に移行してゆくことでしょう。




関連サービス

標準化仕様の動向調査
最新動向を伝えるDXメールニュース (無料)



この記事と関連の高い記事

関連キーワード:SOAP


関連キーワード:XML関連規格




ページトップへ戻る