私は、iOSクライアントと同期するWebアプリケーションを構築中です。私は現在、同期についてどのように動くかを理解しようとしています。私は2つの指示に従いました:クライアントとサーバーの同期の方法論[理論]
私は非常にシンプルなサーバーのWebアプリケーションとアイテムのリストを持っています。それらは変更された日付で注文され、そのような同期は問題ではありません。
私が検討している方向は、クライアントに同期処理をさせることです。私はすでに、クライアントがデータを取得できるAPIを持っているだけでなく、更新、追加、削除といった特定のアクションを実行します。私は次のことを検討していました:1)最後に成功した同期以降に変更されたすべてのアイテムをサーバーに要求し、サーバーによって返されたものに基づいてローカルレコードを更新する各シンクに対して2)永続的な作成/削除/クライアントがサーバーに確認するまでそれらを保持します。
このアプローチのリスクは、基本的に両側に変更を送信してもらい、スムーズに動作することを期待していますが、ある時点での切り替えを危険にさらすことです。しかし、これはおそらくより帯域幅効率が良いでしょう。
私が考えていたもう一つの方向は、より伝統的なモデルでした。私はクライアントがサーバー(または最後に変更された同期のサブセット)にその全体のリストを送信する "同期"プロセスを持ち、サーバーはサーバー上のデータを更新します(最後に変更されたアイテムを保持し、削除されたアイテム= 1のフィールドで削除されたアイテムを保持する)、サーバはクライアントがそのデータを置き換える(最新の同期が成功してから)更新されたアイテムのリストを返す。
思考?