風邪でダウンしていて更新がちょっと空いちゃいました(T_T)
Google Gearsが早くも話題になっているようです。
Webアプリのオフライン利用を可能にするための
標準的な手法になるかも知れず、要注目ですね。
構成要素は以下の三つで、それぞれAPIを介して利用します。
・ローカルサーバー
各種静的リソースをキャッシュするローカルで動くWebサーバー
・データベース
SQLiteをベースとしたデータのローカルストア
全文検索も可能
・ワーカープール
データベースの同期処理など時間の掛かる処理においてフロント
のUI処理が影響を受けないようにJavaScriptの並行処理を実現する
ブラウザ拡張
ただし、既存のアプリに全く手を入れずにオフライン対応できる
というわけではありません。特にオンライン/オフラインの状況に
応じて、サーバーとローカルデータベースのいずれからデータを
取得するかという部分は既存のデータアクセスコードに手を入れる
必要が出てきます。きちんとデータアクセス層を設けた設計をして
いる場合は良いですが、それらがあちこちに分散していると対応の
ための作業量は結構多くなりそうです。
他にも
・オフライン対応させるデータとさせないデータをきちんと区別する
(リアルタイムな株価情報をローカルキャッシュしても意味がない)
・オンライン/オフラインのモードをユーザーに意識させるかどうか
・データの同期を自動的に行うかどうか
といったことをしっかり考えておく必要があり、これはアプリの性格
によって変わってきますので、オールマイティの定石といったものは
なさそうです。
さらに注目なのはMozillaに加えてAdobeとも提携の予定があるという点。
Adobe側にも既にApolloがありますので、具体的なソリューションが登場
するのもそれほど遠くないかも知れません。
FlashとAjaxというそれぞれの得意分野を生かしてうまくタッグを組むと
なると、この二つの組み合わせがオフライン対応Webアプリ開発の定番と
なる可能性も否定できません。
今後も継続してウォッチしていきたいと思います。