TOPシステム開発> 万能ではないWeb API
Ajax時代到来
Ajaxではじまるサービス活用

第6回:決定的勝者のいないAjax

著者:ピーデー  川俣 晶   2007/5/10
前のページ  1  2  3
万能ではないWeb API

   Ajaxの特徴の1つは、Web APIを用いたマッシュアップにある。これは、他のサーバ上にある機能を利用してサービスを作り上げることにより、さらにリッチなサービスをより少ない手間で作り上げることである。

   Google Mapsをマッシュアップすると、自社サイトの中にスクロール地図の機能を取り込むことができる。自社の位置を説明する地図を掲載する際、Google Mapsをマッシュアップすれば、見る者は自由に拡大縮小して道順を確認でき、しかもGoogle Maps側が新しい地図に更新すれば、何の手間もかけることなく自社サイト内の地図も新しいものに差し変わる。

   このように優れたWeb APIだが、当然のことながら万能ではない。そのことを、数年前に流行したいわゆるWebサービスを反面教師として考えてみよう。

   ここでいうWebサービスとは、マッシュアップと同じように他のサーバ上の機能を利用してシステムを作り上げる仕組みであり、ここで使われた主要な技術は「SOAP(Simple Object Access Protocol)と呼ばれる通信手順である。Ajaxで使われるWeb APIによってはこれを用いるものもあるため、いまだ現役といってもよい技術だ。

   だが、SOAPは現役であるにもかかわらず、いわゆるWebサービスのブームにおいて成果らしいものがなく、いつの間にかフェードアウトしてしまった感がある。それはなぜだろうか。

   Webサービスとマッシュアップの決定的な差は、使用されるWeb APIの数の差と考えるとわかりやすいだろう。Webサービスは、インターネット上に存在する便利なAPIを検索して探し出し、それらを組み合わせてシステムを構築する。つまり、使用されるAPIは複数である。

   それに対して、マッシュアップで使用されるWeb APIの数はたいていの場合1個でしかない。複数のAPIを複合して活用するマッシュアップの例もあるが、その場合でもせいぜい2個程度である。はたして、この数の差には意味があるのだろうか。

   実は、単純な計算によって、数の差が決定的であることがわかる。まず、応答速度について考えてみよう。

   リクエストを送って結果が帰ってくるまで1秒かかるWeb APIがあるとしよう。結果を得る過程でWeb APIを1つだけ使用するサービスでは、Web APIによって上乗せされる応答時間の遅延は1秒となる。

   では、結果を得る過程でWeb APIを10個使用するサービスならどうだろう。Web APIによって上乗せされる応答時間の遅延は1秒×10個=10秒となる。これでは、ページ全体が表示されるまでに8秒未満にすべきだという「8秒ルール」を満たせない。

   つまり、利用するWeb APIの数が増えると応答速度が非現実的に遅くなる可能性があり得るのである。

   問題は応答時間だけではない。他のサーバを利用するということは、そのサーバにトラブルがあればサービスが継続できないことを意味する。

   例えば、100日のうち1日の割合、つまり1%程度の確率で停止するサーバがあるとしよう。このようなサーバを1つ使ってマッシュアップすると、そのサービスが使えない確率は1%程度である。

   では、このようなサーバを10個使ったらどうだろうか。サーバが利用できる確率は0.99(99%)であるため、このサーバがすべて利用できる確率は0.99^10=約0.9(90%)となる。つまり、毎日1回このサービスを使っていると、10日に1日程度、使えない日があるということになる。100日のうちの1日ならともかく、10日のうちの1日とは、許容できる信頼性、可用性を備えているとはいえないだろう。

   つまり、使用する外部のサーバの数を多くすることは、それだけ信頼性、可用性を落とすということである。Webサービスは失敗したのに対して、マッシュアップが成功した決定的な差は、使用するWeb APIの数にあると考えればわかりやすいだろう。

   言い換えれば、マッシュアップの成功とは「すべてのWeb APIを活用して解決する」のではなく、「特に価値ある情報や機能だけをWeb APIに求める」という方針によってもたらされたものといえる。

   それを理解せず、Web APIの機能を細分化し、いたずらに利用するWeb APIの数を増やすような方針を取ると、マッシュアップも上手く機能しない可能性がある。

   これらからわかるように、Ajaxという技術は従来のものにくらべてまったく異なったアプローチの上に、その戦略と現状があるといえるだろう。

   最終回となる次回では、ライブラリを使いすぎた場合に起こりうる結果と、Ajaxのこれからの方向性について考える。
前のページ  1  2  3


株式会社ピーデー 川俣 晶
著者プロフィール
株式会社ピーデー   川俣 晶
株式会社ピーデー代表取締役、日本XMLユーザーグループ代表、Microsoft Most Valuable Professional(MVP)、Visual Developer - Visual Basic。マイクロソフト株式会社にてWindows 3.0の日本語化などの作業を行った後、技術解説家に。Java、Linuxなどにもいち早く着目して活用。現在はC#で開発を行い、現在の注目技術はAjaxとXMLデータベース。


INDEX
第6回:決定的勝者のいないAjax
  見つめる先が同じではないライバル達
  決定的勝者の不在
万能ではないWeb API