WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

Google Gears データベースの基礎(スライド)

先日、 Google Gears のデベロッパー交流会に参加してきました。具体的な Gears の利用方法の話がないと寂しいと思ったので、データベースの基本的な使い方を解説するスライドを作成していたのですが、こんなものを発表する時間はまったくなかったですね(涙)。ああいったところに参加するのは初めてだったので、反省しきりです。

というわけで、せっかく作ったのにお蔵入りというのも悲しいので、ここで公開することにしました。急いで作ったので見た目はいけてないですが、 Gears データベースの使い方や Tips などがまとめてあります。興味のある方はご覧くださいませ。

口頭で説明しながら見せるつもりだったので、意味不明の部分もあるかもしれません。ご不明な点は、コメントなどいただければできるかぎりお答えします。 ODF および PDF 形式の元ファイルも Box.net で公開しておきました。以下のウィジェットからダウンロードできます。ウィジェットが表示されない場合は、こちらのページをご利用ください。

個人的に Gears のデータベースを利用する大きな利点としては以下のものがあると思っています(同期 API 以外は Gears 以外のクライアントサイド DB 共通の利点ですが)。

パフォーマンス
ご存知のように JavaScript の実行はお世辞にも速いとは言えないので、大量のデータを処理するのには限界があります。しかし、高速な SQL データベースで検索・ソートなどを行った結果を JavaScript に渡すという方法をとれば、かなりの量のデータが現実的な時間で処理できるでしょう。 Gears には全文検索機能もあるので、可能性はさらに広がります。
トランザクションのサポート
複数のページ・ Worker Pool などからの同時アクセスを確実に管理できます。また、複数の操作を一気にロールバックすることも可能なので、データ管理の信頼性を大幅に向上できるでしょう。 Flash の Shared Object などと比べた決定的なアドバンテージだと思います。
同期 API による簡易なプログラミングモデル
Gears のデータベース API は Adobe AIR や HTML5 のものとは異なり、結果が出るまでブロックする同期 API です。ご存知のように同期 API のプログラミングモデルはシンプルで、タイミングバグなどが発生する心配もありません。個人や小規模企業などマンパワーに限界がある場合には、この工数削減はかなり有意義ではないでしょうか。実際に Infosketch は Worker Pool などを使わずに完全同期モデルで動作していますが、(かなり効率の悪い SQL を発行しているにも関わらず)問題ないパフォーマンスで動作しています。

現在の一般的な Gears に対する認識は「Web アプリケーションをオフラインするためのもの」だと思います。たしかに LocalServer に関してはその通りなのですが、データベースと Worker Pool は一般の Web アプリケーションのユーザーエクスペリエンスを改善するための非常に強力な手段になり得ます。このあたりは、交流会冒頭の講演で Google のグレゴーさんも強調していましたし、同じく Google の市川さんも、はてなブックマークを高速にインクリメンタル検索するサンプルを紹介されていました。

例えば、 Web ベースのワープロソフトでは、一定間隔で変更をサーバーに保存するのが一般的です。この方法はネットワーク帯域やサーバーリソースを大量に消費しますし、間隔が長いとユーザーのデータの一部を失いかねません。しかし、ここに Gears の DB を導入すれば、変更をほぼリアルタイムに保存することができます。サーバーへの転送はかなり間隔が長くてもかまわないでしょうし、 Worker Pool を使えばアプリケーションのパフォーマンスを落とすこともありません。サーバーリソースを節約しつつ、信頼性や操作性を向上できるわけです。

最大の問題はやはり普及率ですが、このあたりに関してはブラウザへの標準搭載を目指すということでした。 IE はもちろん Firefox も(サードパーティの拡張は含まずに出荷するというポリシーがあるはずなので)なかなか難しいかもしれませんが、頑張ってほしいものです。標準搭載とまでいかなくても、 Google ツールバーにインテグレートするとか、いろいろ方法はあるようにも思いますし。正式版リリースの暁には、そのあたりの努力をお願いしたいものです。

このほかにもいろいろネタを考えたりしたのですが、あまりグダグダ書くのもどうかと思うので、このへんで。最後になりましたが、私の Infosketch も先日更新しまして、データのインポート・エクスポート機能を追加しました。

http://infosketch.webos-goodies.com/

まだまだ手順が面倒ですが、ようやく他のマシンにデータを移したりする事が可能になりました。よろしければ、お試しくださいませ。

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles