Взаимодействие агента и %ls%а

В этой статье описывается, как Agent взаимодействует с SberMobile Serverом по протоколу взаимодействия с SberMobile. Взаимодействие начинается после того, как Agent подключается к SberMobile Server и производит вход. В этот момент управление Agent передаётся драйверу SberMobile Агента. Затем SberMobile Server начинает отправку команд по протоколу взаимодействия с SberMobile чтобы выяснить, какие данные предоставляются Agent.

Покомандная схема взаимодействия

A. Выяснение контекста agent

Сначала SberMobile Server получает информацию о контексте, объявленном в Agent. Посылаются следующие команды:

  • Получить переменную info
  • Получить переменную children
  • Получить переменную variables
  • Получить переменную functions
  • Получить переменную events
  • B. Синхронизация часов реального времени

  • Установить переменную дата контекста Агента в текущее время в соответствии с временной зоной устройства.
  • C. Синхронизация настроек устройства

    (значений переменных контекста устройства)

    Теперь SberMobile Server синхронизирует значения всех переменных устройства между своим кэшем и Agent. Более подробную информацию о синхронизации и кэшировании настроек устройства можно прочесть в статье о драйвере SberMobile Агента

  • Получить переменную modtime. Сервер получает временные метки всех настроек для определения верного направления синхронизации (от устройства к серверу или наоборот) для каждой из них.
  • Для каждой переменной выполняются команды Получить переменную или Установить переменную в зависимости от направления синхронизации. Эти команды используются для установки значений переменных в контексте устройства Agent (для синхронизации от сервера к устройству) или в серверном кэше (при синхронизации от устройства к серверу).
  • Установить переменную modtime. Сервер устанавливает временные метки модификации Agent.
  • D. Окончание синхронизации

    1. Вызвать функцию synchronized из контекста Агента.

    Команды, инициируемые агентом

    Когда Agent подключен к SberMobile Server, он может посылать команды событий к серверу, когда события будут сгенерированы.

    SberMobile Server никогда явно не начинает или оканчивает прослушивание событий от Агента посылкой команд Add Event Listener или Remove Event Listener протокола взаимодействия с SberMobile. он прослушивает события без уведомления об этом Агента. Поэтому Agent может начать отправку событий любого типа сразу после окончания синхронизации, например после того, как сервер вызвал функцию synchronized из корневого контекста Агента.