第4回
Webサービス

2003/05/20

この連載の第3回でビジネス・プロセスの統合の話がありました。今回はそのような様々なアプリケーションを統合するための基礎となる「Webサービス」という技術の話をします。
相互運用性の確保
アプリケーションの統合を考える際の重要な課題の一つに相互運用性(interoperability)があります。なぜそれが問題となるかと言えば、一般に独立して開発されてきたアプリケーションは、様々な理由からそれぞれあまり互換性のないコンピュータ・システムやミドルウエアなどで構成されているからです。
この傾向は異なる企業同士のシステムを接続する際にはしばしば見受けられることですし、例え同一企業内でも珍しいことではありません。ビジネス上の必要性から他のシステムと接続しようとしても、大幅な設計変更や追加投資が必要となることが判明して、結局は諦めて手作業を介して何とか連携させるといったことも多く見受けられます。
企業あるいは企業連合が生き残りをかけてビジネス・プロセスの統合を決断したとしても、この相互運用性の問題が解けない限り、迅速にシステムの統合を行うことができません。このような問題は今に始まったことではありませんが、近年のビジネスの多様化やグローバル化の流れのために深刻化して来ることは間違いないでしょう。
では相互運用性の問題はどのようにして解けば良いのでしょうか? その答えは標準化にあります。クライアント・サーバ形式のシステム構築が一般化してきた90年代には既に問題意識が明確にあり、例えばCORBAに代表される相互運用のための標準化が真剣に進められました。これはオブジェクト指向に基づく中間的なプログラミング言語(IDL: Interface Definition language)を定義し、相互運用しようとしている各システムで使われているプログラミング言語をIDLに変換する機構を用意することで、異なるシステム間の連携を取ろうという試みでした。しかし現実にはそれほど広く受け入れられるまでには至りませんでした。
Webサービスの胎動
プログラミング言語技術に基づく相互運用確保の試みが苦戦しているときに、全くことなる角度から二つの技術が登場してきました。1つ目は90年代の後半に急速に広まってきたインターネット技術です。特に電子メールやWebの技術は瞬く間にビジネスだけでなく生活にも浸透して行きました。
これらの技術は基本的に人間同士あるいは人間とコンピュータの間のデータ通信を可能にするものですが、注目すべきは、そこで実現される相互運用性がかつてないほど高いレベルに達していることです。
それは例えば、読者の皆さんがホームページを閲覧したり、あるいは誰かと電子メールを送受する際に、相手先のコンピュータの種類や、オペレーティング・システム、あるいはプログラミング言語を全く意識せずにすむことからも分かります。
そして2つ目は90年代最後に登場してきたXML技術です。XMLはWebの重要な技術要素であるHTMLに似ていますが、HTMLが主としてWebブラウザ上でデータをどのように表現するかという目的で設計されたのに対して、XMLは文書の構造やアプリケーション同士が通信する際に交換されるデータの構造を定義するために設計されました。
インターネット技術との親和性を考慮し、さらに相互運用性を高めるべく拡張性や柔軟性、あるいは様々な文字符号に対応するための国際化機能が盛り込まれています。それらが評価されて、近年急速にその利用が広まってきています。
そして2000年にIBMとマイクロソフトが中心となってWebサービスが発表され、Webの通信インフラとXML技術の融合した姿が示されました。Webサービスという技術は革新ではなくWeb技術の正常進化だと言われています。いわばコロンブスの卵のように、言われてみれば当然の帰結なのです。重要だったのは新技術ではなく、2つの発想の転換でした。それは、
(1)Web技術をホームページの閲覧ではなくコンピュータ同士の通信インフラとみなす。
(2)プログラム言語というレベルでの相互運用性の確保ではなく、交換されるデータの構造を標準化することにより相互運用性を確保する。
Webサービスに関わる標準
このIBMとマイクロソフトによる発表以来、Webサービス技術は進化し続けています。主な技術仕様はW3CやOASISなどの標準化団体が公開しており、誰でもそれを入手して実装をすることができるようになっています。そのような標準(あるいは標準案)をまとめたのが下記の図です。
ここで、いくつかの基本的な標準について以下に簡単に解説します。
(1)「WSDL (Web Services Definition Language)」は、サービスのインタフェースを記述するための言語です。通常はこれをツールが読み込んで基本的な接続プログラムを自動生成します。
(2)「SOAP (Simple Object Access Protocol)」は、XMLデータを様々なネットワーク上で運ぶための基本構造であり、これを利用することで遠隔手続呼出し(RPC: Remote Procedure Call)を実現することができます。
(3)「WS-Security (Web Services Security)」、はSOAPを使った通信において暗号や電子署名などの基本的なセキュリティ機能を提供します。
(4)「BPEL (Business Process Execution Language)」は、WSDLで定義されたWebサービス同士を接続しワークフローを実現するための言語です。
今後の展開
「ハイプカーブ」という言葉をお聞きになった読者も多いかと思います。ハイプカーブとは、例えばインターネットの普及のように、「黎明期→爆発的な普及期→安定成長期」といった成長の過程を表す言葉です。実はWebサービスという技術も同様の傾向を示しています。Webサービスが登場してきた当初は、あたかもダイナミックなビジネスの統合がすぐにも実現できるというような過大な期待が寄せられていました。しかし、現実には技術が追いつかず失望感が広がり始めているのが現在の姿ではないでしょうか?
しかし悲観的になる必要はありません。技術は着実に進化しており、今年あたりからそろそろ地に足が着いてきたと言えるでしょう。実際、2002年から主なソフトウエア・ベンダーがWebサービス対応製品を発表あるいは発売し、今年はさらに高機能化が進むと思われます。
現在主流となっているのは、IBMの「WebSphere」に代表されるプラットフォームに依存しないJavaベースのJ2EEと、対照的にマイクロソフトのWindowsをベースとした「.NET」です。
これは良い兆候です。もしWebサービスにもハイプカーブが当てはまるとすれば、今後の発展についての過大な期待はなくなります。しかし逆に技術は技術として着実に使われていくことになるのです。
ところで、製品は次々と出てくるのですが、ここで忘れてはならないのがWebサービスの本来の目的である相互運用性の確保です。一般的には仕様を標準化しても実装において様々な解釈の違いが可能であり、そのままでは本当に相互運用性が確保できるかどうかは疑問があります。実際Webサービス対応製品の出始めの頃は解釈の違いにより接続できないという事態がありました。
この点に関して重要な役割を果たすと期待されているのが、「WS-I(Web Services Interoperability)」です。この団体の目的は各社のWebサービス関連製品が相互運用性を確保できるようにプロファイルと呼ばれるガイドを策定することです。
このようにWebサービスに関しては標準仕様、実装、そして相互運用ガイドと3拍子が揃っているので安心できるといえるでしょう。
Webサービスの適用分野として最近注目され始めたのがグリッドへの応用です。グリッド技術は地理的あるいは組織的に離れた数多くの様々なコンピュータを接続しあたかも巨大なひとつのコンピュータとしてみなすことができる技術です。実はグリッドにおいてコンピュータ同士を有機的に結合するための基盤技術としてWebサービスが有用であると考えられています。
ハイプ状態は過ぎた感のあるWebサービス技術ですが、このようにまた新たな適用分野が見つかることで着実に浸透していくことでしょう。
おわりに
今回は紙面の都合でWebサービス技術の詳細ではなく、その生い立ちを紹介することでWebサービス技術の持つ意義についての解説を試みました。詳細については「W3C」や「OASIS」のホームページを参照してください。
またIBMの「developerWorks」に多くの有用な記事がありますので参考にしてください。
(小坂 一也/日本IBM 東京基礎研究所 インターネット・テクノロジー担当部長)
=読者からのコメント=

■「Webサービスが登場してきた当初は、あたかもダイナミックなビジネスの統合がすぐにも実現できるというような過大な期待が寄せられていました。」って・・・過大な期待を宣伝していたのは他ならぬIBMとマイクロソフトなのではなかったですか?
あと、なぜCORBA(やDCOM)がイマイチ普及しなかったについて説明しないと、Webサービスの登場の意味が明確にならないと思います。
■Webサービスといってますが、見せ物という意味であればいいかと思いますが、それ以外になると使えない代物だと私は思っています。データの互換性だのなんだの言ってますが、使う側の方に立って考えない限りは使えない代物でしょう。
■私は http://www.rbbtoday.com/column/bbstage/20030515/ (原文: http://www.geocities.co.jp/SiliconValley-SanJose/5368/ )を広めたいと考えている者です...なかなかうまくいいきませんが。
> (1)Web技術をホームページの閲覧ではなくコンピュータ
同士の通信インフラとみなす。
> (2)プログラム言語というレベルでの相互運用性の確保ではなく、
交換されるデータの構造を標準化することにより相互運用性
を確保する。
「コロンブスの卵」。技術の提供側としてはそのような言い方になると思います。この部分は本当に、使う側に立った上でもっと活用されるべき技術だと思っています。
また、意見のひとつにあります、
>Webサービスといってますが、見せ物という意味であればいいかと
>思いますが、それ以外になると使えない代物だと私は思っています。
>データの互換性だのなんだの言ってますが、使う側の方に立って考
>えない限りは使えない代物でしょう。
ユーザー側として「使う側に立って」。これもその通りでしょう。これは私が http://www.geocities.co.jp/SiliconValley-SanJose/5368/ の中で
>“Webサービス”といわれるものも、企業を中心とした“業界”の
>情報共有を模索することがせいいっぱいで、“個人”を中心に置
>いた情報システムは現状でもあまり見かけることはできません。
と述べているものと通ずるものです。
インターネット上で最もユーザー(一般消費者)が使っているサービスは「e-Mail」というある意味での“Webサービス”です。囲い込みたいという企業側と、遍くどのサービスも使いたいというユーザー側がいます。そろそろメールに次ぐ、それを包含するサービスが欲しいところです。
できれば、この「ScheduleLayer」(まさしくWebサービスアプリケーションです)がユーザーサイドにどのように受け入れられるか、知りたいと考えています。一方的に述べさせていただきました。失礼致しました。
(石原靖雄:38:株式会社新東通信-基幹系システム運用)
|