Webサービスの賢い使い方とは?

株式会社ピーデー
川俣 晶
2002/05/28


Webサービスの可能性

 最近、Webサービスという言葉がはやっている。XML Webサービスとも呼ばれるものだが、その実体はといえば、SOAPをプロトコルとし、WSDLで仕様を記述し、UDDIでサービスのディレクトリを提供するものである。そして、これを使うことで、容易にファイアウォールProxyを超えたRPC(Remote Procedure Call)を実現することができる。これまでのWebアプリケーションは、サービスの利用者は主に人間であることが前提であり、人間に読まれるコンテンツを提供してきた。しかし、Webサービスはこれに対して、コンピュータが利用するサービスを提供する点で大きく異なっている。つまり、Webアプリケーションの場合、基本的にはユーザーが直接手動で操作することが主であるが、Webサービスではコンピュータによる自動アクセスが実現できる。その結果、ユーザー・インターフェイスなどの改善やカスタマイズ、複数サービスを横断した機能が実現できる。

 実際に、検索エンジン大手のGoogleを始めとして、Web情報サービスのいくつかが、Webサービス採用して、サービス提供を開始したとの事例を聞いている(Googleが公開しているWebサービス・インターフェイス「Google Web API」の解説ページ[英文])。Webサービスの技術が、これまでできなかった、あるいはやりにくかったある種の機能を、実現する糸口として機能していることは間違いないだろう。これから、コンピュータ・ネットワークの中で、Webサービスが1つの役割を担っていくことは間違いないだろうと考えている。

Webサービスの賢い使い方とは?

 Webサービスのメリットが、ファイアウォールやProxyサーバを超えたRPCであるとすれば、デメリットは何だろう? 筆者のこれまでの経験からいえば、オーバーヘッドと信頼性の低下である。

 RPCはただでさえ重い処理であるところに、それをXML形式に変換し、わざわざRPC用プロトコルではないHTTPを通して送れば、必然的に非常に重い処理になる。例えば、従来1つのスタンドアロン・アプリケーションで実現されていた機能を細かいWebサービスの集合体に置き換えると、それだけで非常に大きなパフォーマンス低下が起きる可能性がある。

 信頼性の低下というのは、機能の実現に関与する機器が増えると、それぞれの可用性が100%でない限り、システム全体としての信頼性はどうしても低下してしまうということを意味している。以下は素人なので正しい計算かどうか分からないが、参考までに数字を示しておく。例えば、100日のうち99日正常に稼働するPCがあったとしよう。これ1台で実現されるシステムは、100日のうち99日は正常に利用できると期待できる。しかし、このPCを2台使って分散システムにすると、0.99×0.99=約0.98となり、100日のうちほぼ98日の正常稼働しか期待できない。さらにに細かく分散して100台のPCで実現したとすると、0.99の100乗となり、約0.37、つまり100日のうち約37日しか正常稼働が期待できなくなる。ここで注意が必要になるのは、Webサービスの場合、通信に関与する機器の信頼性も問題になるということだ。例えば、ファイアウォールやProxyサーバなどがダウンすれば、それだけでサービス停止状態になることもあるだろう。それを考えに入れれば、関与する機器の数は決して少なくはないだろう。

 このようなデメリットから単純に引き出せる結論は、「システムを構築するのに使用するWebサービスは少ない方がよい」ということだ。現実的なパフォーマンスと信頼性を確保しようと思ったら、本当にファイアウォールやProxyサーバ越えのRPCが必要な機能でのみWebサービスを使うべきだろう。それ以外の機能を実現するためにWebサービスを使うことは得策ではなく、ローカル・システムで稼働するソフトウェア・コンポーネントを集めてシステムを構築する方が望ましい。

 しかし、これはWebサービスの存在意義の否定ではない。例えばGoogleにWebサービスのインターフェイスでアクセスできることは、日々更新されるGoogle内部の情報にアクセスする手段が提供されるということで、これはローカル・システム上だけでは絶対に得られない貴重な情報である。そのような貴重な情報にアクセスする手段が得られたことが、Webサービスの存在意義であり、画期的なブレークスルーといえる、これによりもたらされるさまざまな可能性は、まだ未開拓の状態という段階である。

Webサービスを成功させるために

 筆者は、未知の可能性を持つWebサービスには、ぜひとも成功してほしいと願っている。そのような意味で、筆者はWebサービスを応援する立場にあると思っている。しかし、Webサービスが本来あるべき能力を発揮する未来までの道のりが平たんなものとは考えていない。例えば、本当に異なるメーカーの製品間で互換性を完全に維持できるのか、という懸念がある。もちろん、相互運用性が確立されてこそのWebサービスである。また、Webサービスでは複雑なオブジェクトも容易に引数として渡せるが、送信側と受信側が確実に解釈可能で、かつ、厳密に同じ意味に解釈できるかどうか、よく検討する必要があるだろう。ほかにも、セキュリティや認証といった課題もあり、現在のWebサービスはまだまだ進化を要する部分を残しているのではないだろうか? さらに、世の中がWebサービスに期待するものが、本当にWebサービスで実現できるものか、あるいは、Webサービスで実現することが適当かどうか、確認する必要もあるだろう。実際に、現実の技術としてのWebサービスに向かない応用を、Webサービスで実現できると思い込んでいるユーザーをしばしば見かける。

 これらの中で、筆者が最も懸念を感じるのは最後の問題である。というのは、仮にWebサービスが成功を収めたとしても、もしユーザーがWebサービスではできないこと、あるいは、Webサービス向きではない応用を期待していた場合、Webサービス全体が失敗したと見なされかねない危険があるからだ。例えば、Webサービスを使うと、コーディング不要でシステムができるとか、BtoB電子商取引が実現すると思い込んでいる人がいる。だが、Webサービスとは分散されたコンピュータ間を結びつける手段であって、コーディングしないでシステムを作る手段ではないし、商取引の諸問題を解決するノウハウを含んでいるわけでもない。もし、汎用性のあるWebサービスを活用してコーディング量を減らすことができるとか、WebサービスがBtoB電子商取引の実現を阻む技術的障害の1つを解決する、といった意見なら間違いではない。しかし、コーディング量を減らすことができるなら、将来的にはコーディングがなくなるだろうとか、WebサービスがあればBtoB電子商取引の問題がすべて解決すると思うのは、明らかに勇み足というものだろう。

 いうまでもなく、この世界には何でも解決する万能の技術などは存在しない。だが、この世界に存在する問題のうちで、1つでも本当に解決する技術は、大きな価値があるといえる。それで解決できない問題が残っても、それはそれで構わない。なぜなら、Webサービスが最後の技術革新というわけではないからだ。End of Article


川俣 晶(かわまた あきら)
 株式会社ピーデー代表取締役、日本XMLユーザー・グループ代表、日本規格協会 次世代コンテンツの標準化に関する調査研究委員会 委員、日本規格協会XML関連標準化調査研究委員会 委員。1964年東京生まれ。東京農工大化学工学科卒。学生時代はENIXと契約して、ドラゴンクエスト2のMSXへの移植などの仕事を行う。卒業後はマイクロソフト株式会社に入社、Microsoft Windows 2.1〜3.0の日本語化に従事。退職後に株式会社ピーデーの代表取締役に就任し、ソフトウェア開発業を始めるとともに、パソコン雑誌などに技術解説などを執筆。Windows NT、Linux、FreeBSD、Java、XML、C#などの先進性をいち早く見抜き、率先して取り組んできている。代表的な著書は『パソコンにおける日本語処理/文字コードハンドブック』(技術評論社)。最近の代表作ソフトは、携帯用ゲーム機WonderSwanの一般向け開発キットであるWonderWitch用のプログラム言語『ワンべぇ』(小型BASICインタプリタ)。

 「Insider.NET - Opinion」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間