Webの世界は,ブラウザやHTMLの規格があり,どういうデータを流したらどう見えるかが決まっている。したがって,人間がある程度理解できる範囲に情報を集約することができる。
それに対し,XMLはデータ構造を決めるための言語なので,決められたデータはどんな構造でもいい。このため,適当に決めたもの同士を合わせるのは難しく,何か決め事が必要である。そこで出てきたのが,Webサービスである。2000年くらいから,インターネットを使い,B2Bを行うための基本的な枠組みがいくつか考えられた。
UDDIは,Universal Description, Discovery and Integration の略である。人間のための検索サイトがあるように,B2Bの世界でも,検索が必要であると考えたのが,UDDIである。情報を溜める,取り出す,登録するなど,ある程度の規格を決めて,機械でもできるようにするためである。
B2Bの仕組みでは,アプリケーション同士が情報交換をするが,Webの世界では,それをサービスと呼んでいる。サービスにどう接続し,どうデータを渡したら,どんなデータが返ってくるかを,サービスごとに記述する必要がある。この世界には,ブラウザという単一規則は存在しないので,アプリケーションごとに決める必要がある。その代表的なものがSOAP,UDDI,WSDLである。UDDIは,機械のための検索エンジンのようなものである。
例えば,紙で納品書を作れば,それを封筒に入れて切手を貼って出すこともできるが,XMLデータを渡すと言っても,なかなかうまくいかない場合がある。
XMLでは,B2Bの納品書を実際のインフラで使おうとすると,そこには「○×会社御中」と書いてあるだけで,担当者の誰に渡すか分からない。そのために封筒を考える。それがSOAP(Simple Object Access Protocol)である。
SOAPは言わば封筒で,中に送りたい文書も入れられるし,ヘッダと呼ぶ宛名書きも後付けで定義できる。そのような便利な構造を使い,インターネット上でデータ交換を行う。SOAPという封筒のやりとりだけを決めて,実際の通信プロトコルは,封筒が最終的に渡ればいい。データは,HTTPでも電子メールでも,フロッピーディスクに入れて渡してもいい。
渡された封筒を開けると,何をすれば良いかが書いてある。戻りも,何をすべきかをまた別の封筒に入れて渡す。渡すメカニズムは,また別に考えるというやり方である。
WSDL(Web Service Description Language)は,どのようなXMLのデータを受け取り,何をするかを規定している。例えば,「注文書.xml」を受け取って,「注文請書.xml」を返すというようなことが書いてある。WSDL形式で,自分のサービスはこういうものだと書き,それを検索サイトであるUDDIに登録しておく。
これは,Webの世界と全く同じである。Webサービスは,人間のためにあるWebのインフラを最大限に使い,モデルも全く同じである。ただし,機械のための文章ではなく,XMLを利用したデータフォーマットを決めている。
もう一つは,相手のプログラム言語やプラットフォームを一切考えなくてもつながる仕組みで,そのために封筒を使う。封筒がA社からファイアーウォールを通って外に出て,B社のファイアーウォールを通過して中のアプリケーションまで到達する。届いた封筒を開けて中を見れば,やりたいことが書いてある。そういう仕組みの話である。
実際,インターネットの部分はHTTP,あるいは,HTTPSという暗号化のプロトコルがある。Webサーバ,ブラウザが作り上げてきたインフラをそのまま使う。企業の中に入れば,イントラネット,バックエンドシステムにつながっていく。そこからは,好きなネットワークでつなぎ,自由自在に行える。ただし,SOAPという封筒は,入り口で開けてもいいが,中身は最後まで伝える。そうすれば,エンドtoエンドでつながる。
SOAPは封筒なので,非常に単純な規約である。誰でもそれを実装できる。開発環境では,Javaの世界でApacheSOAPというものが,かなりメジャーである。The Apache Software Foundationという団体が推奨している。これはオープンソースなので,誰でもソースコードを手に入れることができる。他にも,C/C++/c,VisualBasic,インターネットではPerl,日本ではRubyなどがあり,今や50種類以上あるようだ。いろいろなものが出てきている。
もう1つ重要なのは,信用である。例えば,この会社は本当に発注したものを納品するのか,途中で逃げたりしないか。これは,Webサービスのメカニズムというより,社会的なインフラとして信用調査会社のサービスなどをWebサービス化して組み込む必要があるだろう。
まずは,コンポーネントのつながり易さから始め,今後は,業界の中でUDDIを立ち上げ,業界の中で決めた文書をやりとりする。機械化することにより,人為的なミスが省ける。さらに,リードタイムが短くなり,コストが安くなる。ひいては,最終的な品質も良くなるはずである。そういうことを考えていくと,機械化は重要であり,Webサービスを考えてみてもいいのではないか。
■出典:通信&メディア研究会 会報 VEHICLE 通巻155号(抜粋・文責編集)
2002/04/07 00:00:00