これは概念的な問題であり、必ずしも特定のテクノロジーに限定されるものではありません。サーバー上にデータベースがあり、そのデータベースのコンテンツにアクセスするためのREST / JSON APIがあり、APIを介して取得したデータを表示するモバイルクライアントがあるとします。
クライアントに何らかのキャッシュメカニズムがあり、クライアントが読み取りのみを行っている限り、データへのオフラインアクセスを有効にできると便利です(私の場合、管理する必要がないように、オフラインクライアントへの書き込みアクセスを拒否するのは問題ありません)。発生する可能性のあるすべての厄介な競合)。
これを解決する良い方法は、サーバーデータベースモデルのサブセットをクライアントに存在させ、サーバーからクライアントにデータを同期することであるように思われます。ローカルデータベースにアクセスすると、すぐに結果が返されるだけでなく、サーバーへの更新要求もトリガーされる可能性があります。サーバーが変更されたデータを返す場合、クライアントモデルはローカルデータベースを同期し、データの変更を表示に通知します。
もちろん、最終的な目標は、ユーザーがインターネット接続の安定性に関係なく情報を閲覧できることであり、データを変更しない限り、接続ダイアログなどに煩わされることはありません。
実装の観点からすると...一方では、サーバーデータベースをクライアントデータベースに直接結合することは悪い考えのように思われます。それらは異なるベンダーのものである可能性があるからです。少なくとも、両方のデータベース実装の上にベンダーに依存しないモデルが必要になると思います。一方、サーバーデータベースからのデータを何らかのトランスポート形式に変換し、それをクライアントデータベースに戻すよりも、多くのオーバーヘッドのように思われます。
エレガントでメンテナンス可能な方法でそれを解決する方法の提案はありますか?