第17回 新しい技術を模索するYahoo!、Google、MS
株式会社ピーデー
川俣 晶
2007/1/26
| Yahoo!やGoogle、MSが新技術を活用した検索システムを試験的にスタートさせている。今月の国内外のAjax関連7本をお届けする(編集部) |
ハイライト1・新しい技術を模索する検索サイト |
- - PR -
今回最初に紹介するのは、Ajaxの技術で作られた検索システムです。AllTheWeb Livesearchといいます。検索キーワードを入力していくと、検索ボタンを押さずともそこまでの入力された単語を手掛かりに、検索結果を表示してくれるという優れものです。
残念ながら、動作対象とするWebブラウザの種類が少なく、Internet Explorer 7.0で見に行くと使えません(6.0なら使える)。しかし、検索エンジンの未来像を考えるうえで、あえて使ってみる価値はあります。
| Yahoo!のAllTheWeb(上)とGoogleのSearch Mash(中)、 MicrosoftのMS.DEWEY(下) |
さて、AllTheWeb? 聞いたこともないぞ……と思った読者も多いと思いますが、これはYahoo!の実験サイトであるようです。実際、アクセスするとYahoo!のロゴを見ることができます。このように、新しい技術の検証のために別の名前を持った別サイトを持つことは珍しくないようです。例えば、GoogleにはSearch Mashがあり、MicrosoftにはMS.DEWEYがあります。
こういったサイトを見ることの価値は、多岐にわたります。単に面白いというだけでも、見に行く強力な理由になるでしょう。しかし、それだけではありません。「どうせ明日も今日と同じ代わり映えのしない日が来るに決まっている」といったあきらめの心への特効薬となるのです。
あのサイトが、毎日毎日同じような画面しか見せてくれないからといって、永遠に同じというわけではない。別の場所でいつか訪れる本サイトの変化に備えて切磋琢磨しているということに気付かせてくれるわけです。
ハイライト2・飲食店情報の検索機能というニーズ |
WebサービスのAPIは、何でもAPIとして提供すれば利用される訳ではありません。やはり、ニーズが多いもの、便利なものでないと、なかなか使われないのです。そういう意味で、地図を提供するGoogle Mapsがヒットしたのは、ニーズが多い地図という対象を、便利な形で提供したからだといえるでしょう。
では、地図のほかにどのようなAPIが便利でしょうか?
![]() |
| 飲食店情報のAPI活用は可能性が拡がるかも |
実は、最近になって、飲食店情報の検索機能はニーズが多いのではないか……と思うようになってきました。例えば、見知らぬ土地を歩きながらちょっと食事がしたいと思ったとしましょう。そこで、いま一つ趣味には合わないが、拒絶するほどでもないラーメン屋に遭遇したとします。このまま歩き続けた場合、もっと趣味に合う店と出合うかもしれませんし、この先飲食店がなく、あの店に入っておけば良かったと思うかもしれません。そういうとき、モバイルデバイスから利用できる飲食店の検索があると便利です。
しかし、問題はそれだけでは解決しません。モバイルデバイスは機能に制限が多いので、検索サービスがあっても利用できないかもしれません。また、単に店が見つかるだけでは不十分で、その店についてのさまざまな意見や付加情報も見たいかもしれません。
このような問題をクリアするためには、飲食店情報をAPI化し、さまざまな付加価値にマッシュアップ可能とすればいいわけです。
そういったことを漠然と思っていましたが、このAPIを見たとき、それが明確に見えた気がしました。
さて、具体的にどのようなマッシュアップが可能なのでしょうか?
もしかしたら、それを見せてくれるかもしれないコンテストが開催されます。リクルートとサン・マイクロシステムズによるマッシュアップコンテストの第2回が開催されます。第1回はリクルートが提供するWebサービスだけが対象でしたが、今回はリクルートに加えて17の企業・団体のWebサービスやAPIも対象となり、その中にホットペッパーAPIも含まれます。
もちろん、ホットペッパーAPI以外のWebサービスやAPIも含め、どのような作品が応募されるのか楽しみですね。
詳しくは以下のURLを参照してください。
ハイライト3・目立たないAjaxとマイクロソフトの関係 |
え、Windows Vistaを話題にするの? Internet Explorer 7.0じゃなくて、なぜVistaをAjaxうきうきWatchで? と思った読者も多いと思います。しかし間違いではありません。私は、Ajax的な観点から、Windows Vistaは大事件であると考えています。しかし、何が大事件なのでしょうか? 以下、それを説明します。
![]() |
| 2007年1月30日一般発売予定のWindows Vista |
Windows Vistaの特に目立つ新機能として、サイドバーガジェットがあります。これは、時計やカレンダーなどの小さなプログラムを画面の横に並べて表示させておき、便利に利用するものです。このサイドバーガジェットはDynamic HTMLで作成されており、ほとんどAjaxそのものといっても過言ではありません。
サイドバーガジェット専用のフレームワークと若干のお約束さえ把握すれば、Dynamic HTMLの知識が多少ある人なら、すぐにでもサイドバーガジェットの開発を開始できるでしょう。しかも、システムに標準付属のサイドバーガジェットも特に一般利用者から見えないように隔離したり隠す措置は取られていません。標準付属のサイドバーガジェットの気に入らない部分をちょっと改造する……ということもあっさり実現できます。最低限、標準付属のメモ帳と、若干の知識さえあればすぐにできるのです。
慣れてしまえば、酒でも飲みながら気楽に一晩で書き換えることができるレベルです。そして、追加・改造されたサイドバーガジェットは、即座にOSの使い勝手を変化させます。
つまり、VistaというOSは、これまでに例がないほど開けっ広げに利用者の介入を許す寛容さを見せてくれているわけです。それは、単にカスタマイズ可能……というレベルではありません。カスタマイズ可能であっても、専用の知識を大量に仕入れないと作れない……というケースも珍しくありません。
自社独自技術に囲い込もう……という意図が見え隠れすることもあります。しかし、Vistaのサイドバーガジェットは、とても多くの人たちがすでに知っているDynamic HTMLの知識によって開発可能としています。そして、サイドバーガジェット開発で得た知識の多くは、マイクロソフト製品のライバルのための開発にもそのまま適用可能です。
そして、そのような寛容さが大きな意味を持つのは、将来の主流OSが驚くほどの寛容さを見せたという事実によります。シェアの低いOSが、シェアを高めるために寛容さを発揮することは珍しくありません。
しかしすでにナンバーワンであれば、寛容さを見せる必然性はありません。むしろ、その地位を利用して確実に自社製品に利用者が流れるよう、自社独自技術を押し付ける可能性の方があり得るぐらいです。それにもかかわらず、Vistaは開けっ広げなのです。
個人的に特にうれしいと思うのは、そのようにして寛容に示されたカスタマイズの手段が、事実上Ajaxの技術だということです。つまり、私自身も慣れ親しんだ技術であるため、即座にサイドバーガジェットを作ることができたのです。それは「私はVistaというOSによって歓迎された」という気持ちにさせてくれました。
ちなみに、私が作成したサイドバーガジェット(とLiveガジェット)は、Windows Live GalleryのKawamataAkira プロフィールから見ることができます。ここにあるAutumn's Random Music Playerは、音楽をランダム再生するサイドバーガジェットですが、若干のお約束とフレームワークの概要を把握するだけで、あとはほとんどAjax開発の知識を使って、あっという間に作り上げることができました。
これは割と機能やUIに凝っているので(何とたった2つの整数ですでに再生した曲リストを保存できる)数日の時間を費やしましたが、シンプルなものなら一晩で作れます。しかも、即座に私のPC環境の改善に役立ってくれました。ちなみに、Vista一般発売までには、もう1つ検索用のサイドバーガジェット(仮称・十徳Search)を追加できると思います。
さて、もう1つThe story of XMLHTTPというURLを紹介しますが、これはXMLHttpRequestの歴史を書き記したものです。
![]() |
| XMLHttpRequestの歴史が書かれている |
The reality is that the client architecture of GMail appears to follow the rough design of the Exchange 2000 implementation of Outlook Web Access for IE5 and later which shipped way back in 2000. (GMailのクライアントアーキテクチャは、ずっと以前の2000年に出荷された、Outlook Web Access for IE5とそれ以降のExchange 2000実装のラフデザインに追従しているように見える) |
これは、なぜGMailのような高度なアプリケーションが、既存のWebブラウザを修正することなく実現できたのか……という疑問に対する答えになります。それは、GMailと同様のソフトは2000年ごろにすでに存在し、それが実行できるようにInternet Explorerは進化させられていたからだ……と解釈できるわけです。Googleが真に開拓したフロンティアは、実は世間が考えているよりも広くはないのかもしれません。
そのほかのみどころ |
Ajaxとそれに関連する話題を紹介します。
Google Mapsと天気予報情報のマッシュアップ
Google Mapsと天気予報情報をマッシュアップしたサイトです。そのほかにも、さまざまな機能を持っています。
![]() |
| Google Mapsと天気予報情報のマッシュアップ |
このサイトを紹介した理由は2つあります。1つは、おそらく日本のことなど何も知らないスタッフによって作られたサービスであるにもかかわらず、きちんと日本の地図が出て、“Nearby Webcams”にはお台場(?)や富士山のWebcamが表示されていることです。全世界規模のWebサービスをマッシュアップしていくと、自動的に思いも寄らない規模で使われる可能性が出てきます。
もう1つの理由は、場所情報の取得方法です。おそらく読者の皆さんの大半は、このサイトを最初に訪問したときに日本のどこかを示す地図が表示されたと思います。
これはIPアドレスから所在地を調べるhostip.infoの機能を使用しています。内容は完全ではなく、間違っていたら訂正してほしい……というレベルではありますが、それでも印象的かつ強力なシステムです。また、プライバシーや匿名性の観点からの疑問もあり得るシステムでしょう(この件に関しては、testml4の皆さんにご協力いただきました。ありがとうございます)。
すでに10個もあったWebOS!
Webブラウザ上で実行される仮想OSであるWebOSはこの連載でも紹介したことがありますし、数が増えていることも知っていました。
![]() |
| 10ものWebOSが比較されている |
しかし、すでに10個ものWebOSが存在し、比較レビューが成立する時代になっているとは思ってもいませんでした。これはびっくり!
CanvasタグをサポートしていないIEでも動作させるAPI
Ajaxの周辺にしばしば出てくる単語として“Canvasタグ”という言葉があります。“Canvasタグ”とは、HTMLに拡張して使用する要素で、JavaScriptによってイメージやベクターグラフィックを描画させることができます。
これは、AppleがSafariに実装し、その後Mozilla(Firefox)やOperaが追従した機能であり、Internet Explorerはサポートしていません。そのような状況に対して、どこかで見たAjaxの記事の中で、これほど素晴らしいCanvasタグなのだからInternet ExplorerもCanvasをサポートせよ、と書いてありました。
![]() |
![]() |
| 複数のWebブラウザで動作させるDojo 2D API |
それを読んだ私の感想はこうです。「それはAjaxらしくない……」
なぜAjaxらしくないと感じたのかといえば、Ajaxとはすでに利用者が持っているWebブラウザをプラットフォームとして実行できるものだからです。素晴らしい機能を実現するために新しいソフトウェアを開発せよ、すべてのユーザーはそれをインストールせよ……というのは現実には貫徹不可能な「空想上の理想型」にすぎません(実際、すべてのユーザーが最新のソフトを即座にインストールするということはあり得ない)。
「空想上の理想型」を根拠にした空手形の乱発がITバブルの原因と崩壊を招いたとすれば、その反省のうえに「いまそこにあるWebブラウザ」上で動作するAjaxがあるはずです。その観点からいえば、Internet ExplorerもCanvasをサポートせよという要求はAjax的ではありません。
では、何をどうすればAjax的だといえるのでしょうか?
Dojo 2D API (dojo.gfx)というライブラリに、Canvasタグと真っ向から逆行するAjaxらしさを見たような気がしました。これは、Internet Explorerを含む複数のWebブラウザで利用できるグラフィックライブラリです。複数のWebブラウザで動作させるために、凝った仕掛けを内部で用意しています。このライブラリの基本はSVGです。Firefox等はSVGを直接扱えるので問題ありません。
問題は、SVGをサポートしないInternet Explorerです。この場合には、Internet Explorerが実装しているマイクロソフト独自のベクターグラフィック言語であるVMLが使われます。SVGからVMLへの変換がプログラムからは直接見えないライブラリ内部で行われ、結果として同様の画像を画面に出すことができるわけです。
この解決策は、「ユーザーが使用するWebブラウザがSVGをサポートしているか否かをプログラマが意識する必要はない」「既存のWebブラウザを修正することなく実行できる」という2つの理由により、非常にリーズナブルです。実際にどこまで実用的に稼働するかは見守る必要がありますが、実用水準で利用可能となれば、その価値は計り知れないほど大きいと感じます。
XMLHttpRequestオブジェクト以外のAjaxデータ通信方法
画像ファイルにバイナリ情報を埋め込んで、クロスドメインの非同期データ通信を実現するアイデアです。多少技術に詳しい人なら、この説明を読めば何をしているかが分かるでしょう。XMLHttpRequestオブジェクトを使う方法以外にも、さまざまなデータ通信方法が存在するわけです。
![]() |
| XMLHttpRequest以外にも、さまざまなデータ通信方法が存在した |
それにしても、このようなアイデアを思い付けるというのは、相当頭が柔らかい証拠だと思います。おそらく、「正しいオブジェクト指向」であるとか「クラスの当たり前の役割分担」などといった考えで頭を満たした技術者には思い付かないでしょう。これはまさに、役割分担の意図的な誤用によるデータ通信ですので。しかし、役割などというものは、後からいくらでも解釈を変えられるものであり、特定の解釈に固執しないのは正しい態度です。
JsonML (JSON Markup Language)
とても簡単なアイデアですが、見て目からうろこが落ちました。JsonMLとは、XML文書をJSON形式にマッピングした言語です。特にXHTMLと併用すると有益だとしています。
![]() |
| XML文書をJSON形式にマッピングしたJsonML言語 |
これは、例えばXHTML文書のコード断片の加工を行うJavaScriptコードを書く場合などに便利そうです。文書の一部を加工するには、文字列として書き換える方法と、DOM経由で書き換える方法がありますが、前者はついうっかり閉じタグを忘れる等のミスを防止できません。
後者は、長い名前のメソッドを何回も呼ぶ必要があり、コードが長くなってしまいます。しかし、JsonMLを使えば、JsonMLからJavaScriptのオブジェクトにダイレクトに変換できるため、オブジェクトとして文書内容を参照でき、加工できます。
Ajax うきうき Watch バックナンバー
- 第1回 Webアプリのユーザビリティを改善しまくるAjax
- 第2回 Ajax、それはWeb 2.0へと続く道
- 第3回 どんなに無茶をやっても「それもありかな」なAjax
- 第4回 自動車業界のAjaxを活用したキャンペーンを目撃せよ
- 第5回 “どのブラウザでも動くAjax”を共有財産として育てよう
- 第6回 プロプライエタリ2.0から考えるAjaxの公開/非公開部
- 第7回 メモリリークが小さくなったGoogle Maps APIの新版
- 第8回 “CGUI” 消費者が作り出すUIの時代突入
- 第9回 巨大化するAjaxライブラリをシンプルにする新たな流れ
- 第10回 地図のように年代を移動できるMITのAjax歴史年表
- 第11回 JSONがRFCになり、どんどんこなれるAjaxサービス
- 第12回 サーバが通信を開始できるComet活用Webチャット
- 第13回 オンラインゲームで検索精度を上げるGoogleの巧みさ
- 第14回 IE7とFirefox 2への利用者の大移動は起こるか?
- 第15回 グーグル検索エンジンを特定ジャンル専用に、Co-op
- 第16回 帯域やデバイス領域をフル活用させる“モバイルAjax”
- 第17回 新しい技術を模索するYahoo!、Google、MS
- 第18回 Ajaxの高度な使用例、Yahoo! pipes
- 第19回 Apollo参戦でウィジェット開発者の争奪戦が激化
- 第20回 Twitter登場で注目されるRTコミュニケーションツール
- 第21回 過熱するTwitterブームとMicrosoftのマッシュアップ
- 第22回 iPhoneのAjax戦略、そして今日もWeb APIは増加する
- 第23回 Ajax開発者がヒーローになるとき、それはいま!
- 第24回 携帯電話への拡張を進めるGoogleとWeb隠しコマンド
- 第25回 Ajaxで加速!? エンタープライズ2.0とWebOSの普及
- 第26回 「言葉」を超えた説得力を持つAjaxの存在感と広がり
- 第27回 ゲームから読み解く、俺スクリプト時代の知的な挑戦
- 第28回 マッシュアップ元年が終わり、2008年はどうなる?
- 第29回 Twitterやクラウドへも分岐するAjax/Web APIの道
- 第30回 Ajaxはじめて物語、そしてサーバでも動くJavaScript
- 第31回 新ブラウザ戦争はon fireだがJavaScriptはoffのナゾ
- 第32回 Google App EngineはAjaxへのハードルを下げるか?
- 最終回 Pure JavaScriptの動画再生やRPGも好きでした
AjaxでつくるインタラクティブWebアプリケーション
AjaxでWebフォトアルバムを、ゼロから開発する。ライブラリを用いて機能を作り上げていくステップを、具体的に解説する
| 古くて新しいAjaxの真実を見極める 「Webインターフェイスの新しい手法」「画期的なWebアプリケーションの仕組み」であるとして開発者たちの人気を集めるAjaxとは何なのか、その真実を見極めてみよう 最終更新 2005/8/2
|
||
ホワイトペーパー(TechTargetジャパン)
- いまさら聞けないTwitter超入門−@IT記事も対応なう (2010/2/4)
Twitterは最近話題のつぶやきツール。基本的な使い方から、iPhoneアプリの使い方、RTの解説、4人のご意見番の活用例や感想まで - HTML5は開発者側の都合。ユーザーには関係ない (2010/2/2)
3つのレンダリングエンジンを載せている“国産”ブラウザベンダは、HTML5やWeb/ブラウザの進化について何を語るのか - テキスト・フォント周りをキレイに見せるCSS、13選! (2010/1/29)
無数にあるCSSのプロパティを大まかに分類し、1つずつ紹介していく本連載。初回は、テキスト・フォント周りについて - OpenGL ESが大変な3Dアプリ開発を楽にするUnity (2010/1/27)
iPhoneゲーム開発に必須のOpenGL ES。そのコーディングに手こずっている方に有用なツールを紹介し簡単なサンプルを作成します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |


















