ダイクス氏は、「問題の多くは受け渡しするデータの形式が原因」とする。片方のプラットフォームでしかサポートされないデータタイプを渡しても機能しないのだ。
「問題を回避するには、データを厳格に定義すること。サービスを構築する前にこれをやるのがベストプラクティスだ」とダイクス氏。
「Contract(WDSL)Firstの設計開発」(Webサービスの定義を先に)がしばしば語られるが、彼は先ずデータの定義であるXSDから始める「XSD(ファイル)Firstの設計開発」を勧める。XSDの定義から始め、XSDからデータクラスを生成し、それを活用するWebサービスインタフェースを定義、実装していく手順を踏んで、WSDLファイルを自動生成する。こうすれば、XSDとWSDLは必ず一致し、データの形式が原因となる問題は回避できるという。
「これだけで95%の問題は解決できるはず」とダイクス氏。
しかし、WS-I Basic Profile準拠でうまくJavaと.NETの連携が図れたとしても、セキュリティに不安は残る。同プロファイルにはセキュリティの仕様が含まれていないからだ。
もちろん、SSLによる整合性の維持と暗号化も有効だが、今や多くの企業が取り組み始めたSOA(サービス指向アーキテクチャー)のアプローチには時代遅れだ。HTTPに依存したり、一部を暗号化できないなど柔軟性に欠けるだけでなく、何よりもポイントツーポイント以外の仲介、転送、永続化による接続がサポートされていないからだ。
こうしたWebサービスにおけるセキュリティ標準としてWS-Securityがあり、Microsoftも.NET Framework 1.1のアドオンであるWeb Service Enhancement(WSE)2.0 SP3によって対応を済ませている。
WS-IでもWS-Securityを活用した際の相互運用性を実現すべく、この夏にWS-I Basic Security Profileのドラフトを公開している。最終的に仕様が固まれば、Webサービスによる連携は第2世代に進む。
ダイクス氏が第3世代とするAdvanced Web Servicesでは、Webサービスによるセキュアな連携がさらに実現しやすくなるという。
ちょうど昨日、米国のサンフランシスコでは、WSEツールの最新版である3.0がVisual Studio 2005と同時に発表されたばかり。開発者が最新の業界プロトコルを使ってセキュアなWebサービスを簡単に開発できるようにするのが狙いだ。さらに2006年には、Windows Vistaの一部として、Windows Communication Foundation(WCF:旧称Indigo)のリリースも同社では予定しており、メッセージの伝達を保証する「Reliable Messaging」、サービス同士が会話できる「DuplexConversations」、トランザクションコンテキストを渡す「AtomicTransactions」、メッセージサイズを最適化する「MTOM」に完全対応する。
さらにWS-Iによる高度なプロファイルの策定が求められてくるが、Microsoftとしては、「顧客のために相互運用性にコミットしている」とダイクス氏は話す。
Copyright © ITmedia, Inc. All Rights Reserved.