2010-12-26 2 views
1

Я работаю над созданием веб-приложения, которое синхронизируется с клиентом iOS. В настоящее время я пытаюсь выяснить, как это происходит. Я придумал следующие два направления:методология синхронизации клиент-сервер [теоретическая]

У меня есть довольно простое веб-приложение для сервера со списком элементов. Они упорядочены по дате, и такая синхронизация заказа не имеет значения.

Одно направление, которое я рассматриваю, - это позволить клиенту иметь дело с синхронизацией. У меня уже есть API, который позволяет клиенту получать данные, а также выполнять определенные действия по ним, такие как обновление, добавление или удаление отдельных элементов. Я рассматривал: 1) каждую синхронизацию, запрашивающую сервер для всех элементов, измененных с момента последней успешной синхронизации, и обновления локальных записей на основе того, что возвращается сервером, и 2) создания постоянной очереди запросов на создание/удаление/обновление на клиента и сохраняя их до подтверждения сервером.

Риск с этим подходом заключается в том, что я в основном прошу каждую сторону отправлять изменения на другую сторону, надеясь, что она работает плавно, но рискуя отвлечься в какой-то момент. Тем не менее, это, вероятно, будет более эффективным с пропускной способностью.

Другое направление, которое я рассматривал, было более традиционной моделью. У меня был бы «синхронный» процесс, при котором клиент отправил бы весь свой список на сервер (или подмножество с последней измененной синхронизацией), сервер будет обновлять данные на сервере (фиксируя конфликты, сохраняя последний измененный элемент, и сохранение удаленных элементов с удаленным = 1 полем), и сервер вернет обновленный список элементов (с момента последней успешной синхронизации), который клиент затем заменит своими данными.

Мысли?

ответ

0

Законченное происходит с Method # 2:

  • Дата изменения для каждого элемента хранится отслеживать прочь.
  • Удаленный флаг заставляет приложение скрывать запись.
0

CouchApp Может синхронизироваться между многими клиентами и сервером. Читайте wiki для получения дополнительной информации.

Смежные вопросы