Webサービスとは、その名のとおりWebをベースとしたアーキテクチャの中で「サービス」を提供しようというものです。Webサービス自身の役割とSOAPについては、業務アプリケーションにおけるシナリオからその姿が見えてきます。
ある業務アプリケーションがあると仮定します。これをここでは、「ソリューション」と呼ぶことにします。
ソリューションでは、アプリケーションの要件を満たすためにさまざまな機能が提供されます。流通企業などを例にとるのであれば、在庫管理や販売管理、配送依頼、在庫照会といったものが必要とされる機能でしょう。これらは、コンポーネントとしてインプリメントされ、1つのソリューションとして動作しています。コンポーネントによって提供された機能は、ソリューションにおけるサービスととらえることができます。つまり、ソリューションは、サービスの組み合わせによって構築され、顧客要求を満たすものとして提供されているわけです。
このようなソリューションは、最善のものであると考えることもできますが、また、その中にいくつかの問題点もあると考えることができます。
例えば、実際の業務に当たっていると、せっかくのアプリケーションがあっても、従業員の手によって作業を行わなければならないケースなどもあります。配送業者への発送依頼のために伝票をFAXしなければならなかったり、在庫データを倉庫業者から受け取り、自社内システムへ反映させるための作業など、人が介在しなくてもすむ作業は、実はそれほどないということです。もちろん、この例に挙げている流通企業だけが問題を抱えているわけではありません。その取引先である配送業者や倉庫業者であっても、同じような問題を抱えているかもしれません。
ソリューションの中で、こうした問題を抱える原因は何なのでしょうか。今まで一般的に推奨されていたコンポーネントをベースとした多階層アプリケーションとしてソリューションを構築していたにもかかわらず、このような問題点は解決されないままです。
実は、その「コンポーネント化されたソリューションの持つ制限事項」が、問題を生む原因の1つとなっています。コンポーネント技術とはCOMやCORBAといった技術が該当しますが、これらのコンポーネント技術は、技術をまたがって相互に関係のある動作ができないという欠点を持っています。つまり、これも前述したSOAPの登場背景につながっているのです。
もちろんコンポーネント技術は欠点だけではありません。さまざまなサービスを提供するために構築されたコンポーネントは、ほかのアプリケーションからも再利用することができ、それによって、アプリケーションの共通機能をカプセル化して提供できるようにもなりました。また、構造が明確なものとなるために、メンテナンス効率を向上させることができますし、クラスタシステムの対応やロードバランシングシステムの活用などでパフォーマンスの向上を図ることもできるようになってきました。
もし、これらのコンポーネント間がインターネットを通じて、どのコンポーネントとも連携することができるようになったら、互いのシステムが自由につながり、今まで手作業などで解決していたプロセスを自動化していくことができるようになるはずです。また、コンポーネントが持つ多くのメリットを、より活用できる環境が整備されていくことになります。
そこで登場することになったのが「Web サービス」です。Webサービスは、インターネット上に存在するさまざまなコンポーネントやオブジェクトを結びつけることで、ソリューションを提供しようというもの。これによって、さまざまな環境に存在しているサービスをお互いに結びつけ、新しいアプリケーション世界を創造していくことを目指しています。
このような登場背景を考えるとお分かりいただけると思いますが、SOAPは、Webサービスという考え方を支える1つのテクノロジとなりえます。今までのコンポーネント技術のような、独自の世界での接続性だけが保証され、結局のところ、閉じた世界になってしまう、という問題を解決できるSOAPのオープンは大変魅力的です。そして、これらコンポーネント技術を支えるベンダが参加し、SOAPによって共通化することで、真の意味でのクロスプラットフォームが実現されようとしているのです。
今回は、SOAPの持つ仕様の概要とそれがもたらすものについて解説してきました。単なるオブジェクト呼び出しの世界から飛び出したこのSOAPは、これからのWebアプリケーションの世界では重要な要素となってくることは間違いないでしょう。
SOAP自身は、それだけでも大変価値があるものですが、それだけでは不足している部分もいくつかあります。例えば、サービスとして提供されるオブジェクト自身の定義をどうするのか。そして、それらの管理はどうするのか、など、次世代インターネットの世界を支えていくためには考えていかなければならない問題がいくつかあります。
次回は、SOAP自身にもう少し突っ込みながら、実現しうるWebサービスを中心とした(サービス指向の)Web アプリケーションにおける問題点とその解決のための議論、そして、将来について検討していきたいと思います。
では、今回はこれにて筆をおくことにします。
(後編は12月公開予定です)
マイクロソフト株式会社
.NET ソリューション開発部 テクニカルエバンジェリスト
西谷 亮
Copyright © ITmedia, Inc. All Rights Reserved.