Google Gearsのワーカプールとは

Webアプリケーションをオフラインでも使用可能にする「Google Gears」。発表から一週間以上が経過し、Gearsを使用したWebアプリケーションもすでに登場してきている。Webアプリケーション開発者にとって「無視することができない技術」だと言えるだろう。本誌でもそうした方々のお役に立てるよう、これまで二度に渡ってGoogle Gearsを用いたプログラミング方法をご紹介してきた。

Google Gearsに含まれる機能は、大きく「ローカルサーバ」「データベース」「ワーカプール」の3つに分けられる。

ローカルサーバは、Webページに関わるリソース(HTMLファイル、JavaScriptファイル、画像ファイル、スタイルシート…など)をクライアントマシンにキャッシュしておく技術だ。ネットワークに接続していない環境でもページを表示することができ、またサイトにアクセスしてなくてもページを表示できるので応答性が改善される。

データベースは、Gearsが持つデータベースを使用する機能だ。オフライン状態でもアプリケーションが動作するためには、ユーザが行ったデータ操作をローカルに保存しておく必要がある(そしてもちろん、オンラインになったときにサーバと同期をとる)。そうした用途に利用できるよう、Gearsは本格的なデータベース(SQLite)を内包している。アプリケーション開発者はJavaScriptを用いてそれらを自由に使用できるので、データの保存形式などに頭を悩ませる必要がない。

そして今回ご紹介するのは、オフライン機能とは直接の関係はないが、アプリケーションの使い勝手を向上させるためにぜひ知っておきたい機能であるワーカプール(Worker Pool)だ。

ワーカプールとは、バックグラウンドでタスクを実行するためのワーカを作成するための仕組みだ。その主な目的は、ユーザインタフェースを「フリーズ」させないことにある。

Gearsが登場する以前は、「JavaScriptを用いて重たい計算処理などを行うとユーザインタフェースが応答しなくなってしまう」という事象を防ぐすべがなかった。こうした欠点は、オフラインでも動作するJavaScriptアプリケーションにとっては痛い制限だ。つまり、時間のかかる処理をJavaScriptで記述することが事実上不可能になってしまうのである。ワーカプールを使用すると、UI操作に必要な処理と、バックグラウンドで実行すべき処理を分担することが可能になる。

では、ワーカプールのプログラミング方法についてを次ページから解説する。