Архитектура системы


IoT часть сервиса ECOIMPACT позволяет   создавать различные многокомпонентные  системы мониторинга и управления. По-существу, IoT часть сервиса ECOIMPACT - это конструктор, который можно применять для быстрого  построения нужных в том или ином конкретном случае технических систем. Этот конструктор включает конечные мониторинговые и исполнительные устройства, локальные сервера, организующие эти устройства на местном уровне, а также общий IoT - сервер, позволяющий объединять множество устройств  в системы глобального масштаба. Для манипулирования со всеми элементами IoT части сервиса пользователям и разработчикам доступен ряд специальных офлайн и онлайн инструментов.  Инструменты, предназначенные для пользователей, позволяют собирать  из готовых элементов сложные системы даже людям, не обладающим навыками программирования.
Важно, что системы, построенные на базе локальных серверов  конкретными пользователями могут работать полностью независимо от общего IoT-сервера и всех других частей сервиса Alterozoom, включение автономных систем  в общую сеть просто расширяет их возможности.  В качестве примера автономной системы можно привести  т.н. "Умную теплицу", в которой осуществляется мониторинг условий среды и управление системами полива, обогрева, освещения и вентиляции. Подключение таких теплиц к общему серверу позволяет организовать управление сетью теплиц на уровне их  обслуживания (своевременная доставка удобрений и ядохимикатов, своевременное выполнение ремонта, вывоз урожая и т.п.), а также сбор и анализ больших данных, позволяющих принимать решение о модификации режимов выращивания растений.

Опишем каждый  элемент IoT части  подробней.
В IoT часть входят следующие основные элементы:
1) Различные мониторинговые (сенсорные) и исполнительные устройства (устройства первого типа). Эти устройства должны быть адаптированы под работу в сервисе ECOIMPACT, т.е. обмениваться данными и командами с другими элементами сервиса, используя специальный стандартный для сервиса протокол. Разработчики устройств для их совместимости с сервисом должны руководствоваться API (ссылка).  Устройства первого типа не могут взаимодействовать с общим IoT - сервером системы, минуя локальный сервер. Устройства могут быть разработаны, например, с использованием платформы Arduino.  
 

Следует различать реальное (физическое) устройство и его представление (образ) в системе ECOIMPACT. 
Далее в зависимости от контекста под термином устройство будем понимать либо физическое устройство либо его виртуальное представление (виртуальный объект) в системе Alterozoom.


2) Локальные сервера  
Локальные сервера (компьютер с соответствующим программным обеспечением) могут взаимодействовать с устройствами, получая от них данные и передавая им команды.  Также на локальных серверах может производится обработка данных и организовываться управление устройствами.
Локальные сервера позволяют пользоватедям создавать локальные решения мониторинга и управления, которые могут работать как автономно, так и во взаимодействии с общим IoT -  сервером системы. Локальные сервера также могут быть использованы для обработки данных поступающих от устройств и осуществления управления этими устройствами.  Кроме того локальные сервера могут обмениваться данными с общим IoT-сервером системы (в сервисе поддерживается передача данных с локального сервера на общий сервер и передача команд с общего сервера на локальный сервер) и некоторыми внешними облачными сервисами.

3) Общий IoT - сервер системы (компьютер с соответствующим программным обеспечением)
Предназначен для сбора и анализа данных, поступающих через локальные сервера от устройств первого типа, а также непосредственно от устройств второго типа.  На общем сервере могут выполняться процедуры сбора и анализа больших данных, а также сервер предоставляет инструменты для удаленного мониторинга и управления различными устройствами.


3) Компьютеры с установленными на них специальными программами (клиентскими приложениями для компьютеров) 
Позволяют пользователю работать непосредственно с подключенными к ним по USB устройствамии, а также управлять локальным сервером. Кроме тогос помощью компьютерного приложения есть возможность определять, какие данные, поступающие от устройств, подключенных к локальному серверу будут переданы на общий сервер системы. 

4) Компьютеры с вэб-браузерами, позволяющими получать доступ к общему IoT-серверу системы через вэб-интерфейсы сервера

5) Мобильные устройства (смартфоны и планшетные компьютеры).
Эти устройства, по существу, являются устройствами второго типа. Мобильные устройства могут содержать как встроенные датчики, так и выполнять роль ретрансляторов данных, например, с фитнес-браслетов.

6) Специальные автономные устройства (устройства второго типа). Эти устройства могут передавать данные на общий IoT-сервер системы, минуя локальный сервер. Как правило, эти устройства имеют большие вычислительные возможности, чем устройства первого типа и, фактически, их программное обеспечение содержит элементы программного обеспечения локального сервера. 

Общая архитектура IoT части сервиса ECOIMPACT с логическими связями между ними   показана на рис. 1.  Для связи между устройствами первого типа и локальным сервером могут использоваться как проводные, так и беспроводные каналы связи. Возможен как вариант, при котором устройства и локальный сервер находятся   в общей TCP IP сети, так и использование специальных технологий связи, при этом между устройствами и локальным сервером должен включаться специальный хаб, преобразующий форматы данных и команд. 
Компьютер с установленным на нем приложением ECOIMPACT должен находиться в одной TCP IP сети с локальным сервером.  Связь между устройством первого типа и компьютером с приложение возможна либо по сети либо через USB соединение.





Рис. 1
Локальные сервера системы и десктоп-приложения  помимо общего IoT- сервера ECOIMPACT могут взаимодействовать с внешними облачными сервисами, например с Thing Speaks, Amazon, Gougle  и т.п.