Google Gearsを乱暴にまとめてみた


実体は、ブラウザのアドオンとそれを呼び出すためのJavaScript API


LocalServer

  • HTML、JavaScript、イメージなどのローカルキャッシュ。
  • サーバに対するリクエストをプロキシ的に横取りしてローカルにキャッシュがあればそれを返す。

Database

  • ローカルストレージ。RDB(SQLite)が使われてる。SQLで操作が可能。

WorkerPool

  • リソースを必要とする操作をバックグラウンドで非同期的に実行することで、Webアプリケーションのレスポンス速度を向上させる。
  • マルチスレッド機能に近い(正確には違う?)。


ローカルキャッシュ、ローカルストレージ、マルチスレッドっていうことは、既存のブラウザで貧弱な不足している機能の拡充とブラウザ間の相違を吸収するための技術であるわけで、これがGearsの本質。Webアプリをオフライン化することだけを目的とした技術ではない。Gearsアプリではクライアントとサーバの間の責務の境界が通常のWebアプリとは違うものになる。


OSの違いを吸収したJava。ブラウザの違いを吸収しようとするGears。いずれは、インブラウザVMのような形に進化していくんだろう。


ローカルのキャッシュ、ストレージを使うことでサーバ通信を極力減らしてユーザに快適に作業をしてもらいながら、裏で待ち時間にユーザに分からないようにサーバとデータをやりとりするという使い方がまず考えられる。デスクトップPCの場合、インターネットに接続できないなんていう場面に遭遇することは実際ないわけで、Webアプリのユーザビリティ(レスポンス速度)の改善という目的でどの程度使えるものなのか実際使い込んで見極めたい。あとは、モバイル利用っていう意味だとAndroidとGearsの関係も気になる。


Google DocsやReaderのように既存のWebアプリの1機能として使うのではなく、Gearsがインストールされていることを最初から前提としたアプリ(Gears無しでは全く動作しないアプリ)を作成するには、現状では普及率や知名度が低すぎてなかなか受け入れてもらえなさそう。とはいいつつ、Flashみたいに当たり前にブラウザに入っている状態に今後なったとしても、Gearsアプリを使おうとするといきなりこんなセキュリティワーニングが出てくるわけで、これはこれで別の敷居がある。


所詮ブラウザなのでどうやってもスタンドアロンアプリにユーザビリティで敵うとは思えない。デスクトップアプリに対してGearsアプリがどこにメリット出せるのか考えてみると、標準技術かどうかっていう点につきると思う。だからこそオープンソースなんだろう。HTML5準拠なんだろう。Adobe AIRとの連携なんだろう。



参考サイト


サンプルコード

Gearsの使い道

Gearsの現状