HTML5ローカルストレージの本当の難しさ

HTML5でローカルストレージが使えるようになる。
そこでちょっと使ってみようと思ったのだけど、これはかなり難しいのではないかと思った。


もちろん、データを入れたり出したりするだけなら、window.openDatabaseなどとして、普通にSQLを発行すればいい。
SQL呼び出し結果の取得がコールバックになっているので少しコーディングは面倒だけども、それを除けば特に難しいことはない。


HTML5 ローカルストレージが難しいのは、実際にアプリケーションを組むときにそれが使えるとは限らないし、使えるときは唯一のDBではないということだ。


つまり、まず過渡期では、HTML5 ローカルストレージが使えるブラウザと使えないブラウザが混在する。Google Gearsをインストールすることで同様のことは可能だけど、そこでもGoogle Gearsをインストールしているブラウザとしてないブラウザが混在する。
そこで、HTML5ローカルストレージが使える、またはGoogle Gearsが使える場合と、全くローカルストレージが使えない場合で、アプリケーションの処理を変える必要がある。


ただ、これに関しては、今までの考え方+αでやればいいということになる。
本当に難しいのは、データベースがローカルとサーバーに存在するということだ。ほとんどのアプリケーションでは、ローカル単独で動くものではなく、サーバーと連携して動くアプリケーションになる。そのとき、データベースがローカルストレージとサーバー側DBと、2ヶ所で存在する。
このとき、データの同期をどう取るかが重要になる。
特に、クライアント側は1台のコンピュータで動かすとは限らないので、複数のコンピュータで独立して操作が行われることを考えると、そこで不整合があったときになんらかのポリシーを決めて対処する必要がある。
ここで大切なのは、不整合の解決として唯一の解があるわけではなくて、そのアプリケーションに応じたポリシーが必要になるということで、これは開発者が決めないといけない。


ポリシーを決めること、そして適切なタイミングでデータベースの同期を取ることというのは、何か便利なライブラリで解決できることではなく、もちろん便利なライブラリの力を借りるだろうけど、基本的な部分は自分たちで考えて実装する必要がある。


HTML5 ローカルストレージは、技術者の力を問うことになると思う。
それも、「ライブラリを探してきて使い方を調べることができる」という力ではなくて、データ処理を実装する力が問われる。