Ключевые принципы агента

Наиболее важные принципы реализованы в приложении Agent и соответствующего ему драйверу AggreGate Serverа:

  • Приложение Agent устанавливает соответствие данные аппаратуры переменным, функциям и событиям для одного контекста (контекста Агента).
  • AggreGate Server создает контекст устройства для имитации переменных, функций и событий контекста, предоставляемого приложением Агента.
  • Все переменные (настройки) предоставляемые Agent читаются и кэшируются на стороне сервера (см. синхронизация).
  • Все запросы управления (вызовы функций) к AggreGate Server'ному контексту устройства перенаправляются агенту для исполнения. Ответы отправляются обратно AggreGate Serverу.
  • AggreGate Server получает и сохраняет все события, полученные от Агента.

Запуск агента

  • Когда программируемый контроллер с выполняющимся на нем Агентом включается, или приложение Агента стартует в ПК, оно пытается открыть соединение с AggreGate Serverом.
  • Если соединение установлено, он выполняет последовательность входа посылая некоторые команды на сервер и проверяя ответы сервера. Последовательность включает проверку пароля AggreGate, хранящегося на стороне сервера у учётной записи устройства.
  • После этого AggreGate Server начинает полную синхронизацию. Он читает информацию о контексте, предоставляемую Агентом вместе с определениями его переменных, функций и событий, синхронизирует часы реального времени Агента с серверным временем и переключается в "рабочий режим".
  • В рабочем режиме AggreGate Server:

    • Периодически синхронизирует значение переменных между контекстами сервера и агента;
    • Перенаправляет запросы в Agent и получает результаты выполнения;
    • Получает события устройства от Агента обрабатывает/сохраняет их.

    Нормальный режим связи с AggreGate Server

    В этом режиме Agent получает команды от AggreGate и обрабатывает их. Он также может асинхронно генерировать некоторые события и отправлять их на сервер.

    Элементы поддержки Протокола Связи с AggreGate:

    Входящие Сообщения (от сервера):

    • Стартовое Сообщение. Обрабатывается автоматически модулем взаимодействия AggreGate Serverа.
    • Операционное Сообщение. Разбирается и обрабатывается модулем взаимодействия AggreGate Server.

    Исходящие Сообщения (к серверу):

    • Сообщение События. Отправляется на сервер асинхронно модулем взаимодействия AggreGate Serverа когда специфичный для устройства код решает сгенерировать сообщение.

    Ответы:

    • Успех
    • Отказ
    • Ошибка

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

    Операции:

    • Получить значение переменной.
    • Установить значение переменной.
    • Вызвать функцию.

    Они автоматически обрабатываются модулем взаимодействия AggreGate Serverа. Если операция связана с переменной или функцией, объявленной в модуле взаимодействия AggreGate Serverа (например, синхронизация часов реального времени между сервером и Агентом, соответствующая команда автоматически обрабатывается этим модулем. В противном случае исполнение команды доверяется модулю устройства, который может:

    • Получить данные из подключенного устройства, EEPROM, flash-диск, память или другой источник и отправляет их на сервер (как описывается ниже) для получения значения переменной.
    • Отправить данные оборудованию или сохранить их, установив значение переменной.
    • Выполнить обработку данных или отправить команды подключенному оборудованию, вызвав функцию.