Webサービス相互運用性 (1)

WS-I:Webサービス互換性の実現に向けて

Webサービスの普及は目前だが、それには製品間での高い互換性が不可欠だ。本記事は、主要なベンダが集まり、Webサービスの相互運用性を図る組織「WS-I」の活動内容と目標を、その活動に携わる筆者自身によって解説してもらう。(編集局)

富士通株式会社 ソフトウェア事業本部 開発企画統括部 計画部
勝亦 章善
富士通株式会社 ソフトウェア事業本部 プロジェクトA-XML XML応用技術部
沼田 利典
2003/1/30

 

仕様だけでは不十分なWebサービスの互換性


仕様に準拠しているだけでは、互換性は保証されない。WS-Iでは、テストツールや仕様の厳密な解釈などで相互運用性を保証するための活動をしている

 企業間の取り引きは、従来の専用回線などを用いたEDIシステムから、最新のインターネット技術であるSOAP、XML、WSDL、UDDIなどを用いた、Webサービスを基本としたものへと移り変わろうとしている。当初、Webサービスはもっと早く普及するのではないかと思われていたが、さまざまな要因によって、本格的な普及はこれらかだ。その要因の1つが、各製品間の相互運用性(インターオペラビリティ)の保証が不十分なことである。

 Webサービスは、基本となる技術としてSOAPやWSDLなど共通なものを使用しているにもかかわらず、実際に異なった製品同士を接続しようとした場合、互換性などの問題が発生してつながらないことがある。これらの問題の多くは、仕様のサポート範囲と解釈の違いに起因している。各製品は、必ずしも仕様のすべてを実装している訳ではない。仕様の中には、選択可能な項目が存在し、各製品はそれを選んで実装している。その場合、選択しなかったものを実装していなくても、「仕様に準拠している」ということができるのである。さらに、仕様書の解釈の違いによっても微妙な違いが生じる。

 このような問題を解決するために、Webサービスの相互運用に必要な仕様を明確にして、その仕様を実装する際の解釈のあいまい性を排除する「相互運用性を持った実装を行うための仕様の解釈ガイドライン」としてのプロファイルが必要とされた。

 このような背景のもと、CORBA、SOAPなどの相互運用検証を行っている日本の分散オブジェクト推進協議会(DOPG:Distributed Object Promotion Group)などに影響を受けて、2002年2月に米国でWS-I(Web Services Interoperability Organization)が設立された(WS-IのWebサイト)。

 この記事の内容は、WS-Iサイトで公開されている以下の情報に基づいている。

 

WS-Iの目的と成果物

 WS-Iは、2002年2月6日にWebサービス間の相互運用性の実現を目指して、アクセンチュア、BEAシステムズ、富士通、ヒューレット・パッカード、IBM、インテル、マイクロソフト、オラクル、SAP AGの9社によって設立された。その目的は、プラットフォーム、アプリケーション、プログラミング言語などの種類にかかわらずWebサービスの相互運用性を実現することである。その目的のために、WS-Iでは以下の成果物を作成して、公開することを予定している。

  WS Basic Profile V1.0
  Sample Applicationソース
  Use caseとSample Scenario
  Test ToolsソースとMaterials

 またWS-Iは、WS-I仕様に準拠していることを表す「WS-Iロゴ」の制度を用意している。この制度は、WS-Iが公開予定のTest Toolsを用いてベンダ自身がテストを行い、それに正常にパスしたことをWS-Iに申請することで、その製品などに対してWS-Iロゴの使用が許可されるものである。

 2002年のWS-Iの総会(Board&Community)は、以下のように3回行われた。2003年は3月頃に最初の総会が開催される予定である。

  • 第1回総会:2002年4月17日
  • 第2回総会:2002年7月24日
  • 第3回総会:2002年11月5日
  • 第4回総会:2003年3月(予定)

 

組織と活動

 WS-Iは、全体の運営を行っているボード(Board)、各種仕様やプログラムを検討/開発するワーキンググループ(Working Group)、そのほかの活動を行うコミッティ(Committee)から構成されている。それ以外に、書記、会計などがいる。ここでは、各組織の内容について紹介する。

Board:設立時のメンバー9社から、2社を追加へ

 WS-Iは、設立メンバーである9社の代表者(Director)によって構成されるBoardによって運営されている。それ以外の参加メンバーはContributingメンバーである。しかし、10月末にWS-Iの規則(ByLaws)が改訂され、設立メンバー以外にContributingメンバーから2社を選出して、その2社が2年の任期でBoardに加わることになった。Contributingメンバーから2社を選出するための第1回目の選挙は2003年3月に行われる。これに関連して、11月初めにサン・マイクロシステムズがWS-Iに加盟して話題になった。2002年10月時点では、WS-Iに135メンバーが加入している。

Working Group:プロファイル、シナリオ、テストの3つで活動

 各ワーキンググループは、毎週/隔週の電話会議や月1回程度のミーティングを行うなど、かなり活発に活動している。しかし、これらの情報がほとんど公開されていないため、外部からはWS-Iの活動があまり見えていないのが実状である。

(1)Web Services Basic Profile WG
 このワーキンググループの主な目的は、相互運用可能なWebサービスを実現するためのBasic Profileを作成することである。Profileとは、Webサービスで使用する仕様の名前とバージョンを定め、その仕様を実装する際の解釈をより詳細に定義したものである。これにより、同じ仕様を実装した場合の解釈のずれを可能な限りなくすことが目的である。Basic ProfileのV1.0に盛り込まれる以下の仕様は、WS-I設立時から定められていた。

 昨年10月にBasic Profile 1.0ドラフト版が公開された。Basic Profileがどういうものかについては後述する。

(2)Scenarios and Sample Applications WG
 このワーキンググループは、Webサービスに関する実ビジネスの要件に基づいたUse caseとScenarioのまとめと、そのシナリオに沿ったサンプルアプリケーションの実装という2つの作業を行っている。そのため、Scenario Sub TeamとImplementation Sub Teamの2つのサブチームから構成されている。Use caseには、Supply Chain Management(SCM)が採用されている。

(3)Testing Tools and Materials
 このワーキンググループでは、テスト用ドキュメントとテストツールの両方を公開することを予定している。このテストツールは、

  • モニターツール(Sniffer)が、Webサービス間のメッセージ通信をモニターしてログファイルを出力
  • 解析ツール(Analyzer)が、ログファイルを入力してデータを解析してテスト結果を出す

という方式である。

 この場合、テストツールの検証のために、Sample Applicationが使用される。2002年の7月の総会ではTest Tools 0.1版のデモが行われた。

WS-Iが提供する相互運用性確認用テストツールの仕組み

(3)Committee
 WS-Iではワーキンググループ以外に、WS-I活動を支えるものとしてCommitteeが設けられている。

  • Liaison Committee:W3C、OASISなどの他団体との連携に関する活動を行う。
  • Technical Coordination Group:WG間の技術的な調整を行う。

 

WS-I Basic Profileの紹介

 Basic Profileは、Webサービスの相互運用性を保証することを目的として、Webサービスの仕様の実装範囲や解釈などをより厳密に行うための枠組みだ。WS-Iの活動の中で、Basic Profileの作成は中心的な位置を占めている。

 ここでは、Basic Profileがどのようなことを規定しているかを、(1)サブセット化、(2)仕様解釈の明確化、および(3)仕様の補足規定の3つの観点から紹介する。なお、Basic Profileはまだ検討中の仕様であり、ここで紹介する内容は確定したものではないことに注意されたい。

(1)サブセット化
 仕様の機能範囲を絞り、選択肢を少なくすることで、実装の違いによる相互運用性の問題を減らすことができる。

 例えばXML 1.0仕様では、XML文書に任意の文字エンコーディングを使用してよいことになっているが、XMLプロセッサにサポートが義務付けられているのはUTF-8とUTF-16の文字エンコードの処理だけである。つまり、ある実装がシフトJISでSOAPメッセージを送ったとしても、それを受ける別の実装のXMLプロセッサがシフトJIS をサポートしているという保証はなく、相互運用上の問題となることが考えられる。

 そこでBasic Profileでは、SOAPメッセージの文字エンコーディングとしてUTF-8もしくはUTF-16のいずれかのみを使用することとし、処理系に両者のサポートを義務付けることでこの問題に対処している。

(2)仕様解釈の明確化
 基となる仕様にあいまいな点がある場合、それをどう解釈するかベンダによって意見が分かれ、実装の非互換につながることがある。そういう場合、仕様の解釈を明確化することで、相互運用性の向上を図ることができる。

 例えばWSDL 1.1仕様では、types要素はmessage要素やportType要素よりも前に現れなければならないはずだが、WSDL 1.1仕様の3.1節にあるExample 3では最後に現れており、どちらが正しいのかあいまいになっている。そこでBasic Profileでは、types要素は前に現れるのが正しい(Example 3は間違っている)という解釈を採用している。

 なお、WSDLについてはW3CのWeb Services Description WGWSDL 1.2ドラフト仕様が検討されており、そこでの検討内容と食い違いが出ないように調整を行っている。上の例にあげた部分は、WSDL 1.2仕様では修正される予定である。

(3)仕様の補足規定
 元となる仕様には規定がないが、それを補足する有用な仕様がある場合、それを採用することで相互運用性を向上することがある。

 例えばUDDI 2.0ではWSDLに相当するサービス記述を行えるようになっているが、UDDIとWSDLとを同時に使う場合、それらを関係付ける方法はUDDI仕様本文には記述されていない。しかし、「Using WSDL in a UDDI Registry(PDF)」という名前でBest Practice文書(仕様として規定するのではなく、参考的な位置付けで解説した文書)が公開されており、Basic ProfileではUDDIとWSDLとの関連付けに、この文書で記述された方法を採用するよう規定している。

 WS-Iの最初の正式なBasic Profileは、2003年の3月ごろに公開される見込みである。この仕様が公開された場合、事実上のWebサービス相互運用性を保証する枠組みとなるため、市場に与える影響はかなり大きいと思われる。その意味で、今年はWebサービスに関して大きな動きのある年になるかもしれない。また、WS-Iも、最初の成果物の公開を区切りとして、次のステップに移ることになるだろう。

 さらに、次期のBasic Profileでは、セキュリティ、高信頼メッセージ、トランザクション、署名、暗号化などのさまざまな機能が拡張されるといわれており、今後もWS-Iの動向に注目する必要があるだろう。

編集注:@ITでは、3月に予定されているWS-IからBasic Profile仕様が公開された際には、その内容を解説する記事を検討中です。ご期待ください。


「Webサービス相互運用性」 バックナンバー

  1. WS-I:Webサービス互換性の実現に向けて
  2. Webサービスの互換性を検証するテストルーツ



XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間