なぜCenaを作る|使うのか?
HTML5が登場し、ブラウザーにローカルデータベースが出来たことで、ウェブアプリケーションの機能が飛躍的に向上します。サーバーと通信することなく、大量のデータを変更したり追加することが可能となります。リレーショナルデータベースを扱えるので、複雑な構造のデータでも扱える利点があります。
難しい問題がいくつかあります。
◆データのシンクロにおける問題
ローカルで作成したデータをサーバーにアップロードする際、リレーションを保つのが難しいです。
たとえば、新たにデータを追加したうえで、既存のデータをリンクさせる場合です。新しいデータにはIDが振られていません。サーバーにアップロードするとIDが振りなおされるため、リレーションが切れてしまいます。
◆複数デバイスの更新問題
複数のクライアントにデータをダウンロードして、アップロードした場合にどうなるのか?
たとえばデバイスAとBがあったとします。
まずデバイスAとBの両方にデータをダウンロード。
次にデバイスAでデータ1を修正、アップロード。
そしてデバイスBでデータ2を修正、アップロード。
そのとき、データ1はどうなるのでしょう?
デバイスBのデータ1には、デバイスAの修正は反映されてません。このデータを全てアップロードすると、データ1は元のデータに戻ってしまいます。
つまり修正したデータのみをアップロードする必要があります。
◆Cenaフレームワーム
Cenaは上記二つの問題を解決するために開発しています。
汎用性のある解決法だと思っていますが、クライアント(HTML5)とサーバーの両方で対応する必要があります。
0 件のコメント:
コメントを投稿