×
Меню

Описание


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

Начиная с версии системы 2.66.01 и схемы синхронизации 0143 и выше, система производит синхронизацию через два соединения (основная и транзитная база данных). При этом транзитная база данных также синхронизируется с помощью двух соединений - напрямую с транзитной базой данных, и через "зеркало". Транзитная синхронизация использует наиболее позднюю версию схемы синхронизации. Объекты транзитной синхронизации размещены в схеме swts.