ОписаниеРаздел содержит описание алгоритма работы сервера синхронизации, а также его взаимодействие с Мобильным модулем.
Сервер синхронизации обрабатывает запросы, которые поступают с Мобильного модуля. Перед обработкой запроса сервер синхронизации идентифицирует устройство, с которого пришел запрос.
Система начинает синхронизацию после нажатия пользователем кнопки Синхронизировать. После нажатия сервер проверяет идентификатор устройства, и регистрирует новую задачу синхронизации. В фоновом режиме запускается процесс синхронизации, о чем соответствует уведомление в панели оповещений. Далее пользователь может вернуться в главное меню и продолжить работу с приложением. Ход синхронизации и её результаты отображаются в панели оповещений.
При отсутствии или обрыве связи во время передачи данных сервер синхронизации ставит все задачи на удержание до появления связи. При возобновлении связи сервер производит докачку файлов и возобновляет передачу информации с того места где связь оборвалась.
Работа с приложением во время синхронизации не ограничена, кроме случая создания новой базы данных (необходимо дождаться загрузки всех данных с Центрального модуля).
Новый сервер синхронизации использует планировщик задач. Планировщик предназначенный для регулировки нагрузки на сервер. Планировщик производит управление очередями и очередностью выполнения задач. Для каждой базы данных имеется свой планировщик. Планировщик резервирует слоты согласно приоритетам и настройкам базы данных, а также закрепляет слоты за определенными очередями. Новые задачи планировщик помещает только когда есть свободные слоты. Если свободных слотов нет - планировщик ставит задачу на удержание пока не освободится подходящий слот. Таким образом снижается риск перегрузки сервера синхронизации запросами и задачами.
Задачи в очереди выполняются в порядке поступления. Также очереди могут иметь разные приоритеты, и свободные слоты отдаются очередям с высшим приоритетом в сравнении с другими.
Без участия планировщика выполняются следующие задачи:
Синхронизация с использованием транзитной базы данных
Начиная с версии системы 2.66.01 и схемы синхронизации 0143 и выше, система производит синхронизацию через два соединения (основная и транзитная база данных). При этом транзитная база данных также синхронизируется с помощью двух соединений - напрямую с транзитной базой данных, и через "зеркало". Транзитная синхронизация использует наиболее позднюю версию схемы синхронизации. Объекты транзитной синхронизации размещены в схеме swts.
|