«Снимки» устройств и синхронизация
Сервер AggreGate хранит «cнимки» устройств, т.е. кэшированные копии всех элементов данных, относящихся к каждому устройству. Операторы системы обычно работают со снимками, лишь в редких случаях обращаясь непосредственно к элементам устройств. Сервер в свою очередь синхронизирует снимки с элементами данных устройств.
Синхронизация осуществляется при первой же возможности, то есть как только удается установить связь устройства с сервером. Таким образом, AggreGate решает проблему удаленной настройки, контроля и мониторинга нестабильно доступных устройств.
Буферизация данных
Если устройство отключено, сервер AggreGate ставит в соответствующую очередь изменение настроек устройства и запросы на выполнение операций. Само устройство в это же время может накапливать информацию о событиях и изменениях настроек. Как только связь восстановится, настройки со стороны сервера и со стороны устройства будут синхронизированы.
Буферизация событий и изменения значений переменных на стороне устройства во время отключения от сети передачи данных поддерживается достаточно малым количеством коммуникационных протоколов. Среди них присутствует и протокол AggreGate, как правило, использующийся для подключения устройств через агенты.
Этапы синхронизации
Процесс синхронизации данных устройства включает в себя несколько этапов:
- Обновление метаданных устройства, т.е. информации о доступных настройках, операциях и событиях
- Чтение текущих настроек устройства и сохранение их в снимок на стороне сервера
- Отправка на устройство изменений настроек с момента последней синхронизации (если оно было отключено в течение некоторого времени)
- Чтение изменения настроек и архива событий на устройстве, а также сохранение этих данных на сервере
- Подписка на события и изменения настроек устройства, а также их асинхронная обработка (в случае, если устройство было добавлено недавно)
Групповые операции устройств
Синхронизированные снимки устройств хранятся на сервере, что позволяет осуществить выполнение групповых операций, независимо от количества устройств, подключённых к серверу в данный момент.
Несколько устройств могут быть объединены в группу, в которой все изменения свойств одного устройства автоматически тиражируются на остальные.
Групповые операции могут применяться к не полностью идентичным устройствам. В частности, элементы данных устройств, использующих различные версии прошивки, могут отличаться. В каждом случае сервер будет делать все возможное, чтобы найти соответствие между элементами данных различных устройств.
Отложенное конфигурирование
AggreGate позволяет просматривать и изменять настройки каждого подключенного к серверу устройства, даже если на данный момент с ним нет связи. Все изменения конфигурации сохраняются в снимке устройства и записываются в устройство, как только оно становится доступным.
Это позволяет управлять устройствами с непостоянным или нестабильным соединением, такими как беспроводные устройства (GPRS, Wi-Fi, ZigBee, спутниковая связь и другие), а также устройствами, которые могут периодически останавливаться для обслуживания.
Предположим, вы управляете большим количеством электропогрузчиков с интегрированными контроллерами. Вам понадобилось изменить определенную настройку на всех контроллерах, например, уменьшить ограничение скорости в связи с обновлением требований по безопасности. Устройства могут получать новые настройки от сервера только если находятся в зоне приема базовой станции. Не существует момента времени, когда все устройства будут в зоне приема одновременно, поэтому применение изменений должно происходить в несколько циклов.