2012-04-04 10 views
2

データ接続が一時的に失われても動作する必要のあるAndroidアプリのようなPOSを構築しています。オフライン同期Androidアプリの一般的なアーキテクチャ

考えられるのは、データ接続が利用可能である場合、すぐにすべてのトランザクションをサーバーに報告することです。そうでない場合は、SQLiteにローカルに格納し、接続が利用可能になったときに後で同期します。

最初の計画は、サーバー上で管理されているのと同じ一般的なDB構造に個々のトランザクションを保存することでしたが、サーバー上にはさまざまな種類のトランザクションとリレーションシップが存在するため、電話自体のサーバー。

代わりに、サーバーに変更を通知するために使用されている最終的なHTTP要求を保存するだけです。このようなアプローチの利点は、URLを格納したり、コンテンツやメソッドなどを要求するだけで、テーブルを1つだけ必要とすることです。しかし、レスポンスでコードを実行する必要のある呼び出しが存在する可能性があります。これは匿名の内部クラス。このアプローチの唯一の問題は、これらの匿名の内部クラスを直列化して、データベースからロードして(可能な)電話を再起動しても実行できるように思われることです。

これを実装するにはどうすればよいでしょうか?オプションAまたはオプションB?オプションBの場合は、匿名の内部クラスをシリアライズしてシリアライズすることは本当に可能ですか(ここではクロージャとして効果的に使用されています)。

答えて

1

オプションAの場合、デバイス/サーバの複製を処理するCouchDBを検討することをお勧めします。

Couchdb on Android

関連する問題