2008-06-23

GDD2008「Google Gears から Gears へ」

このエントリーは、Google Developer Day 2008 に関するレポート記事の一部です。

Google の日本人エンジニア二人 (河内隆二・市川宙) による 45 分のセッション。Google Developer Day 2008 の中で、一番面白かった。

セッションの内容は、Gears の基本説明。

Gears は、ウェブ・ブラウザーにオフライン機能を追加するためのプラグイン。ユーザーは Gears 対応サービスにオフラインでもアクセスできて、情報の追加・更新・削除が出来る。そして、オンライン復帰時には、オフライン中の編集が同期される。

ブランディングの変更

「Google Gears」から Google が抜けて、「Gears」という名称に変更になった。

理由は、Gears の開発がオープンに行なわれていることを強調するため。Google Code のプロジェクト・ページを見ると、確かにライセンスは New BSD License (修正 BSD ライセンス)。リポジトリーも公開されているし、Wiki も読めれば、バグの追跡も行なえる。

同じ Add On の Google Toolbar では、開発中のリポジトリーはおろか、バグのチケット (?) を発行することすら出来ない。せいぜい、Google Groups で問題を報告する位い。Gears が「オープンな開発プロジェクト」と言うのは嘘偽りない。

「ブラウザーの拡張を目指す『オープンなプロジェクト Gears』が、Google という一企業の政治下にあるわけではない (@aka 的異訳)」ことを強調するためにも、「Google Gears」から「Gears」にブランド名を変更した、とのこと。

Gears の今

Gears の目指すところは、オンラインとオフラインのシームレスな切り替え。

そのためには、オフラインでもオンラインと同じデータにアクセスできないといけない。オフライン中にアクセスできる場所は、ローカル環境しかない。けれど今のブラウザーは、ローカル・データにアクセスすることが制限されている。

そこで、Gears は次の機能を提供する。

  • ローカル環境に DB を用意して、ネット側の情報をバックアップする仕組み
  • ウェブ・ブラウザーから、ローカルの DB にアクセスする仕組み
  • オンラインに復帰した時、ローカルとネットの情報を更新・同期する仕組み

現在、Gears はブラウザーのプラグイン (アドオン) という形で提供されている。その実態は、JavaScript の API。JavaScript の動くブラウザーは全てサポートする意向らしい。

Gears のサポート情況はこんな感じ。

  • IE
  • Firefox2+ (Windows, Mac, Linux)
  • Windows Mobile
  • Safari (もうすぐ
  • Opera (間もなく)

Gears に対応したサービスはこんな所がある。

Gears の中身

外から見た Gears

Ajax の仕組みを簡単に書くと、次のやうになる。

Internet - XHR.UI

ここで、XHR は XMLHttpRequest のこと。非同期通信機能と思ってもいい。UI は、ユーザー・インターフェース。

一方の Gears はかうなる。

Internet - XHR.Sync - Local DB - UI

非同期通信と UI の間にローカル・データベースを持つ。また、ネットとローカルの同期をとるために、「Sync」用の緩衝モジュールが入っている。

ネット側のデータを全て「Local DB」に持って来れば、ネットとの通信を行なわずに処理が可能になる。これは、大量の通信量が発生するため敬遠されてた処理を、行なうことが出来る可能性が出てきたということ。

内から見た Gears

Gears の基本構成はこんな感じ。

Local Server
ウェブ・アプリケーションの HTML などをローカルに保存。個別の URL をキャッシュする「ResourceStore」と、どのファイルをキャッシュするかを指定する「ManageResourceStore」の組み合わせ。
Database
SQLite3 を利用。GB 単位のデータも保存可能。セキュリティ向上のため、厳格な sema-origin セキュリティ・モデル (同じ URL からアクセスされた時に限り、データにアクセスできる) を採用。
Worker Pool
JavaScript に擬似スレッド機能を提供する。JS のインタープリターを複数動かすイメージで実現。正確な意味のスレッドではないので、ワーカーと呼んでいる。

Gears の未来

Gears は、「オンラインとオフラインのシームレス化」のため、更なる進化をとげてゆく。

Desktop API
デスクトップ上にアイコンを作れるようになる。お手軽さとサービス固有のアイコンを用意できることがウリ。
Desktop Notification API
ポップアップお知らせ機能。ブラウザーのウィンドウと独立していて、ブラウザーを閉じてても OK。
File System Access API
複数のファイルをアップロードする仕組み。
Large Upload (Resumable Uploader)
アップロードの進捗表示。再接続機能の提供。
Geolocation
現在位置を取得する試み。GPS や IP アドレスの情報を使うらしい。ローカル検索する時、便利そう。

Gears の未来は明るいやうに思える。セッションを聞いて、真面目に勉強したくなった。

No comments:

Post a Comment