Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 5 Следующий »

Логика синхронизации

При инициализации базы MSSQL по метаданным в каждую таблицу добавляются служебные поля IsDeleted и TimestampIsDeleted - поле boolean типа, флаг удаленной записи. Timestamp - поле типа bigint, содержащее в себе время последней модификации записи.

Протокол и точки подключения

  1. Обмен данными осуществляется посредством передачи сжатых в zip json документов POST запросом по протоколу HTTP
  2. Конечная точка имеет вид http(s)://%адрес сервера бит-мобайл%/%имя решения%/device/DefaultScope/DownloadChanges, номер порта зависит от конфигурации web сервера IIS (по умолчанию 80 для http и 443 для https), например:
    http://superagent.ru/bitmobile/device/DefaultScope/DownloadChanges
  3. Используется "Basic" авторизация, имя пользователя и пароль зависят от решения
  4. Кодировка - UTF-8
  5. Клиент отправляет свой документ с данными и получает документ с данными, изменёнными с момента TimestampFrom из документа клиента. При начальной синхронизации клиент должен передать пустой документ, тогда он получит полный набор данных с сервера.

Структура json документа

  • Id - guid
  • TimestampFrom - время последней синхронизации клиента с сервером
  • TimestampTo - новое время последней синхронизации клиента с сервером. Оно должно быть использовано в качестве значения TimestampFrom при следующей синхронизации
  • DeletedEntities - массив удалённых записей в формате json
  • ChangedEntities - массив изменённых записей в формате json
  • FiltersToApply - список фильтров для удаления неактуальных данных на клиенте

Структура json объекта отдельной записи

  • Tablename - имя таблицы
  • Fields - json объект с полями записи
  • Нет меток