表1●Webサービスの基盤技術に対応した主な製品
図1●Webサービスを使ったアプリケーション間連携の例
企業のイントラネットにある出張申請システム(Webアプリケーション)があるとする。従来のWebアプリケーションでは,出張する場合,社内の出張申請システムに入力する作業と,実際に航空券の予約を行う作業を別々に行わなくてはならない。しかし,航空券の予約を行うWebサービスがあれば,その作業が1つで済むようになる
 “Webサービス”対応をうたった製品がここ2,3カ月で急激に増えている。Webサービスに対応した開発ツールや,実行環境となるWebアプリケーション・サーバーが早くも登場してきた(表1[拡大表示])。

 Webサービスとは,XML(Extensible Markup Language)やSOAP(Simple Object Access Protocol)などインターネット標準技術を利用したアプリケーション間連携の手法,またはその手法に基づいて作成したプログラムである。インターネットを介して,Webアプリケーションを,別のWebアプリケーションから呼び出し,部品のように自由に利用できるという利点がある。既存のアプリケーション間連携技術であるCORBA(Common Object Request Broker Architecture)やDCOM(Distributed COM)よりも柔軟な連携を可能にする。

 これまで,WebアプリケーションをWebサービスと呼ぶこともあったが,既存のWebアプリケーションとは利用形態が大きく異なる。例えば,図1[拡大表示]の例で考えると,従来のWebアプリケーションでは,出張する場合,社内の出張申請システムに入力する作業と,実際に航空券の予約を行う作業を別々に行わなくてはならない。しかし航空券の予約を行うWebサービスがあれば,その作業が1つで済む。

 別の見方をすると,これまでWebアプリケーションとそれを利用するWebブラウザの関係は“サーバー”と“人”だったのに対して,WebサービスとWebアプリケーションの関係は,“サーバー”と“サーバー”になっている。つまり,サーバー間で連携し,様々な業務の自動化を実現できることが,今注目を集めている理由なのだ。現在,出張手配用Webサービスの試験版が一般に公開されている。

Webサービスを実現する3つの標準技術

 最も早くWebサービスへの対応を発表したのは,米Microsoft。昨年のMicrosoft .NET発表当初は,単なる構想に過ぎなかったが,Visual Studio .NETのベータ版を提供開始したことで,少しずつ具体像が見えてきた。

 Microsoft陣営だけでなく,米IBMや米Sun MicrosystemsなどのJava陣営もこのWebサービス対応へは積極的だ。Microsoftの.NET製品はまだベータ版であるが,Java陣営はWebサービスに対応する開発ツールや,実行環境を整えてきている。

図2●Webサービスの仕組み
特定の企業間取引ではなく,必要なときにWebサービスを検索する場合,まず最初にUDDIディレクトリ・サーバーに自分が利用したサービスがあるかどうかを検索する。検索結果を基に利用したいサービスがあれば,WebサービスのURLを元に呼び出す
 Webサービス対応製品が急速に増えてきた理由の1つとして,SOAPやUDDI(Universal Description Discovery and Integration),WSDL(Web Services Discription Language)といった,Webサービスを実現する様々な技術の標準化が進んできたことが挙げられる(図2[拡大表示])。

 SOAPは,Webアプリケーション間連携を実現するプロトコル。WebアプリケーションからWebサービスの機能を呼び出すのに使う。やり取りするデータのフォーマットは,XMLで記述されているため,SolarisやLinuxのWebサービスをWindowsプラットフォームから利用することが可能になる。MicrosoftやIBMなどが中心になって仕様の策定を進めている。

 インターネット上に様々なWebサービスが公開されれば,それを利用する企業はそれを見付けなくてはならない。必要なサービスをインターネットから検索し,それを呼び出せるようにするのが,UDDIだ。常に決まった特定の企業間だけでなく,必要なサービスを提供する取引相手を見付けられるようにするために,考案された。

 Webサービスの内容や利用方法など,Webサービスに関する情報の管理は,UDDIディレクトリ・サーバーと呼ばれるサーバーが様々なWebサービスの情報を管理する。現在IBMなどが運営しているが,他の事業者が独自に運営しても構わない。

 最後のWSDLは,Webサービスがどのような機能を提供するのか,その機能を利用するためにどのような情報を渡す必要があるかといったインターフェース仕様をXMLで記述したものだ。簡単に言えば,Webサービスが提供する機能の定義情報のようなもの。これをUDDIディレクトリ・サーバーに登録することで,利用者がWebサービスを発見できるようになる。

具体化してきたが課題も多い

 MicrosoftとIBMが中心になって仕様の策定を急いだことで,SOAP,UDDI,WSDLの3つの技術の標準化が進んできた。さらに,開発ツールやWebアプリケーション・サーバーがWebサービスに対応することは,Webサービスの普及を推し進める力になるだろう。しかし,一般の企業ユーザーがWebサービスの恩恵を受けられるようになるためには,まだ多くの課題をクリアしなければならない。

 例えば,ビジネス利用で大きな問題となるのが「現在のSOAPの仕様では,トランザクションの規定がない」(日本BEAシステムズの伊藤 敦プロダクト マーケティング マネージャ)ことだ。トランザクションとは,関連する複数の処理を1つの処理単位としてまとめたもので,一連の作業を全体として1つの処理として管理する。Webサービスを利用したアプリケーションでは,複数のWebサービスをまたがったトランザクション管理が必要になるため,問題がより複雑になる。

 インターネットに公開されるWebサービスの品質をだれがどうやって保証するかも大きな問題だ。提供する側も利用する側も安心できる環境を作ることが急務だろう。技術面の問題よりもむしろこういった環境の整備のほうが重要かもしれない。

(小野 亮=akono@nikkeibp.co.jp)