WebサービスをEC(電子商取引)などの実システムに応用するための技術開発が相次いでいる。XML(拡張可能マークアップ言語)データを伝送するSOAP(簡易オブジェクト・アクセス・プロトコル)通信の信頼性を確保し,複数のWebサービスをまたぐようなトランザクション処理を実現するための技術である。こうした動きとは別に,Webサービス間のデータや処理の流れを定義するプロセス定義言語や,メッセージの内容を記述するメッセージ定義言語の策定も進む。

実森 仁志=hjitsumo@nikkeibp.co.jp

 複数のWebサービスを連携させてEC(電子商取引)システムなどを実現する――。そのための技術開発が盛んになってきた。ソフトウエア・ベンダー各社が新技術開発に乗り出したのである。米IBMは,Webサービス間のメッセージ交換で信頼性を確保する技術を開発。米サン・マイクロシステムズ,米コマース・ワン,独SAPは2001年9月にも,ebXML(電子ビジネスXML)標準向けのメッセージ定義言語「UBL(汎用ビジネス言語)」の策定に着手する。7月に開催された「Web Services Japan 2001」で明らかになった。

 Webサービスを呼び出す基本的な技術は標準が固まり,ある程度の相互接続性は確保できる見通し。ただし,Webサービス間でトランザクション処理を実現する技術などは標準化されていない。ベンダー各社が開発を急ぐ裏には,標準化の主導権を握りたいとの思惑がある。

Webサービスを電子商取引に

 Webサービスはプラグ&プレイで使用できるインターネット上のアプリケーション。必要な機能を備えたWebサービスを検索し,自分のシステムに組み込むための仕組みを用意している。この柔軟性ゆえに,サプライ・チェーン管理やマーケットプレイスなど,複数企業のシステム同士を結ぶ複雑なシステムでの利用が期待されている。

 開発が進む領域は,主に2つある。1つは,SOAP(簡易オブジェクト・アクセス・プロトコル)の信頼性を確保するための技術。もう1つは,Webサービス間のデータの流れや処理の流れを定義するための技術である(図1[拡大表示])。

図1 Webサービスを連携させるための技術が続々登場
ソフトウエア・ベンダー各社は,Webサービス間でトランザクション処理を実現するための技術を開発している。特に,SOAP通信に信頼性を付加する技術やプロセス定義言語仕様などの提案が相次ぐ。

 SOAPは,Webサービス間インタフェースとなるXML(拡張可能マークアップ言語)データを送受信するためのプロトコルだが,メッセージの紛失を防ぐ機能や,2重配送を防ぐ機能,配達順序を保証する機能などは備えていない。そのため,開発者がそれらの仕組みを自分で作り込む必要があった。

 SOAPメッセージを安全・確実に送り届けるための技術が固まれば,万一,通信障害や相手側Webサービスのダウンなどでメッセージを正常に交換できなくとも,送信元でメッセージの不到達を判断し,確実に再送できる。こうした仕組みは,耐障害性を向上し,ビジネス機会の損失を防ぐ意味で,Webサービスに不可欠となる。

 SOAPメッセージの送信に信頼性を与える技術は,複数のベンダーが開発中だ。IBMは,SOAPメッセージの送信で多用すると見られるHTTPの信頼性を保つため,HTTP/1.1のヘッダー部分を拡張する技術「HTTPR(リライアブルHTTP)」を開発した。HTTPRでSOAPメッセージを送ると,目的のアプリケーションに1度だけメッセージを配達したか,あるいは配達しなかったか――というどちらかの状態になり,その結果は送信元に通知される。送信元のアプリケーションは,通知内容に応じて,メッセージの再送やロールバックなどを実施できるようになる。

 これに対して,米マイクロソフトの「SOAP-RMP(SOAPリライアブル・メッセージング・プロトコル)」,米BEAシステムズや米ヒューレット・パッカードらの「BTP(ビジネス・トランザクション・プロトコル)」は,SOAPメッセージを拡張して信頼性を確保する。SOAPメッセージは,企業内でルーティングしたり,別の企業に転送したりすることもあり,伝送路上で信頼性を保つだけでは不十分だからだ。例えばSOAP-RMPは,SOAPメッセージのルーティングを制御するSOAPヘッダーの拡張仕様「SOAP-RP(SOAPルーティング・プロトコル)」と連携し,ルーティング経路を含めたエンド・ツー・エンドの信頼性を保つ。

Webサービス間の手続きを定義

 もう1つ開発が進んでいるのは,Webサービス間のデータの流れや処理の流れを定義する技術。複数Webサービスをまたぐトランザクションを実行する場合,あるWebサービスからの要求に応じて別のWebサービスを呼び出し,その結果で処理を分岐するケースが出てくる。この場合,社内と社外でデータや処理の流れを正しく連携する必要がある。また,要求を送信したWebサービス側は,処理結果を待つ間,システムをロックするのではなく,扱いを保留にして他の処理を進めなければならない。「保留処理の応答が1週間たっても得られなければ,処理自体をキャンセルする」など長期間にわたるトランザクション管理が必要になる。

 こうした複雑な処理手順を矛盾なく定義するには,システム間の手続きを上流から設計するツールが不可欠。これらのツールで内部的に使用する,プロセス定義言語も必要になる。マイクロソフト(XLANG:XMLビジネス・プロセス言語),IBM(WSFL:Webサービス・フロー言語),ヒューレット・パッカード(WSCL:Webサービス対話言語)が,それぞれ独自のプロセス定義言語を公開している。

 一方,米サン・マイクロシステムズ,米コマース・ワン,独SAPは,ebXML標準用のメッセージ定義言語「UBL」の策定に乗り出す。UBLは,コマース・ワンが開発したメッセージ定義言語「xCBL(XML共通ビジネス・ライブラリ)3.0」をもとに開発する予定である。ebXML標準は,UML(統合モデリング言語)を使い上流から設計する手法は規定するが,具体的なビジネス・プロセス仕様やメッセージ定義言語は規定しない。UBLは,ebXML標準を補完する技術となる。