(Bill Sheldon)

 Microsoftは最近,「Web Services Enhancements(WSE)2.0」を公開した。これは,Visual Studio .NET 2003が備えるXML Webサービスの機能を拡張するアドオンである。WSE 2.0は,XML WebサービスとSimple Objects Access Protocol(SOAP)の標準に対する拡張を含んでいる。

従来版と互換性がないWSE 2.0
 WSE 2.0には,その前のバージョンのWSEとは互換性がないインターフェースが実装されている。だがこれは驚くことではない。なぜなら,MicrosoftがWSEの最初のバージョンを提供し始めたときに,同社は将来の互換性について保証はないと説明していたからだ。

 ダウンロードの注意に書かれているように,WSE 2.0は.NET Framework 1.1とVisual Studio .NET 2003でしか利用できない。前のバージョンと同様に,WSE 2.0はMicrosoftによるサポートは受けられるものの,将来の新しいバージョンとの互換性は保証されていない。言い換えると,Visual Studio 2005やWSEの将来のバージョンに対してWSE 2.0は,互換性が完全に取られないかもしれない。

 この互換性の問題はMicrosoftに技術が無いためではなく,むしろWSEがターゲットとしている標準に起因するものだ。WSEは,最新の今登場しつつあるWebサービス関連の標準を対象にしている。そのためWSEには,World Wide Web Consortium(W3C)によって策定されたインターフェースが,そのインターフェースに必要な標準の本体部分がドラフトの段階になる前に実装されることがある。面白いことに,すべての標準は,だれかが実際に実装作業を始めるまではドラフトと見なされる。だれかがドラフト段階の標準を実装したときに,最終的な実装の詳細が決められるのである。

 このプロセスは非効率だと思われるかもしれないが,実装不可能な標準を作らないようにするために決められたものだ。ベンダーたちにドラフトの実装を強制することで,その標準が実装可能なことを保証する。大抵は,実装作業を進めているうちに予期しない制限か見つかり,ドラフトを修正することがある。

Webサービス標準化に積極的なMicrosoftの事情
標準化の影響でソフトウエアの修正も

 なぜ,Microsoftのような会社はドラフトの実装を買って出るのだろう。それにはいくつかの理由がある。そのうちの1つは,実装を通してしか知ることができない情報が得られるかもしれないということだ。ベンダーたちは将来の技術を早く知りたいと思っているはずだ。→多分最も大きな理由は,ドラフト段階で標準仕様を実装している企業だけが,その標準仕様の最終版を決定する会合に参加できるということだ。

 実装時に発見した制限に対応するために各ベンダーが異なる修正を加えていたとしても,標準を最終決定する会合では,すべてのベンダーは1つの定義に合意しなければならない。その場合,標準の最終版に準拠させるため,ドラフトを基に作ったソフトウエアを一部改造する必要が出てくるかもしれない。

 これはWSEとWSE 2.0で実際にあったことだ。WSEは,例えばWeb Services Security(WS-Security)といった,いくつかのWebサービス標準のドラフト版をベースに実装されていた。Webサービスの標準が確定したときにMicrosoftはそのソフトウエアを改造しなければならず,それでWSE 2.0がリリースされたのである。

 この改造はどのような意味を持つのだろうか。もしWSEを利用して実装していて,現時点で自分のサービスをWSE 2.0にアップデートしたいと思うなら,WSE 2.0の新しいインターフェースを使って外部に公開する必要がある。

 新しいインターフェースで公開することは,実際に意味があることだし,Microsoftはできるだけ簡単に新しいインターフェース向けに改造できるようにした。WSEはWSE 2.0と互換性はないが,共存できる。だから,まだWSE 2.0へアップグレードする準備ができていない場合は,WSE 1.0のインターフェースを使い続けられる。

 ただし,もししばらくの間2つのバージョンのWSEを使わなければならないのなら,WSEをインストールしてある開発用マシンにWSE 2.0をインストールするのは避けることをお勧めする。WSEとWSE 2.0を同じ開発用マシンにインストールすると矛盾を起こす場合があり,結局正しい標準を手作業で指定しなければいけない羽目になるからだ。

WSE 2.0をインストールする方法
 WSE 2.0は,Webサーバー上に実行用コンポーネントをインストールするためのインストレーション・パッケージと,Visual Studio .NET 2003のアドオンをインストールするための開発用パッケージから成る。開発用パッケージをインストールすると,Visual Studio .NET 2003にSettingsツールにアクセスするためのメニューが作られる。具体的には,Solution Explorerの中のプロジェクト・ファイルを右クリックし,その一番下にある「WSE Settings 2.0」メニューを選択すると,WSE 2.0アプリケーションの設定を管理するためのSettingsツールが起動する。

 Settingsツールのほか,WSE 2.0にはX.509 Certificates Managementツールも含まれる。このツールは,WindowsのStartメニューに作られるWeb Service Enhancements 2.0メニューで起動できる。X.509 Certificates Managementツールは,マシンにインストールされたセキュリティ証明書の細部を表示する。WSE 2.0の拡張を利用するには,X.509と証明書の管理方法についてよく知っておく必要がある。

 セキュリティはWSE 2.0が提供する機能の中でも重要な部分である。対応する標準の拡張にはWS-Addressing,WS-Attachments,WS-Policy,WS-SecureConversation,WS-Security,WS-SecurityPolicy, WS-Trustが含まれる。こうした標準の半分以上は間接的または直接的にセキュリティにかかわるものだ。これは,XML Webサービスが堅牢さを必要としている領域の1つが,セキュリティの領域だということを意味している。WSE 2.0はセキュリティを強化するための新しい機能を提供する。

 既にWSE1.0をよく知っているユーザーなら,WSE 2.0の全機能を使いこなすのは簡単だ。同様に,WSE 2.0について勉強すれば,Indigoの基礎が理解できるだろう。

 Indigoとは,共通のレイヤーとしてXML Webサービスを使うMicrosoftの総合的なコミュニケーション戦略のコード・ネームである。MicrosoftでIndigoプロジェクトに従事しているアーキテクトのDon Box氏によれば,Indigoは共通のホスト間での通信手段を自動的に見つけて最適化できるようになるはずだという。この目標は非常に見事なもので,大部分はWSE 2.0を通じて現在利用できる基本的なプロトコルを拡張して作られる。

 なお,WSE 2.0に関する詳細はMicrosoftのWebサイトを参照のこと(該当サイト)。