Синхронизация между клиентом и сервером в Structurize работает следующим образом: 3
- Клиент инициализирует соединение с сервером. 2
- Получает от сервера список изменённых объектов (то есть объектов, которые изменили другие пользователи). 2
- Получает список локальных изменённых объектов (то есть объектов, которые изменил текущий пользователь). 2
- Объекты, которые были изменены только на сервере, сразу же сохраняются в локальную базу данных. 2
- Объекты, которые были изменены только локально, добавляются в коллекцию объектов для отправки на сервер. 2
- Объекты, которые были изменены и локально, и на сервере, помечаются для разрешения конфликтов. 2
- Отправляет информацию об изменённых локальных сущностях на сервер. 2
- Запускает процесс сохранения. 2
- Завершает процесс синхронизации. 2
Если синхронизация неудачна (например, пропала связь с сервером или пользователь отменил её), локальная база пользователя восстанавливается. 2