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

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

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

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

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

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

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

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

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

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

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

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

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

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