Двадцать один пример IoT-платформ
Я уже пишу, наверное, двадцатую статью про «Интернет Вещей». Но всегда, как в первый раз, вынужден рассказывать, объяснять и доказывать. Но тут появился запрос не про объяснения, но про приведение примеров.
Как вы знаете, у меня есть небольшой частный телеграм-канал «ЗаТелеком», куда я выплескиваю новости, старости или просто заметки. Ну, и один пост почему-то вызвал «особый интерес» в виде массы репостов и упоминаний. Он был про «самые модные в этом сезоне IoT-платформы». Короткий простой пост с девятью ссылками на эти самые платформы.
Ну, поскольку интерес к теме проявился нешуточный, я решил сделать вот этот материал, где все и объясню. В очередной раз. Ну, вот первая попытка была.
Начнем с простого: что есть IoT-платформа, и как отличить оригинал от подделки?
Это очень, на самом деле, сложный вопрос, на который я ответить не смогу. И пытаться не буду.
Но вот есть гораздо более умные парни (разумеется, не наши), которые все понятно объяснили. Вот здесь оригинал, а ниже — краткий переклад на русский.
IoT-платформы — это такая штука, которая объединяет собственно «вещи» и «интернет». По сути — это ключевой инструмент разработки IoT-приложений и сервисов, объединяющий физические объекты и Сеть.
При этом многие вендоры, которые пытаются «держать нос по ветру», предлагают «IoT-платформы», которые в корне различаются между собой. И в ряде случаев, не являются «платформой» в широком смысле слова, но совершенно очевидно имеют основания себя таковой считать — есть «вещь», есть некий ресурс в интернете, который принимает/передает данные от/к «вещи». И что-то там делает (пытается делать) с этими данными. Следовательно, претендовать на высокое звание дом образцового быта платформы вполне себе может. Притом, что четкого и конкретного определения IoT-платформы попросту не существует.
По мнению авторов «IoT Analytics», полноценной IoT-платформой следует считать такую платформу, которая позволяет разрабатывать соответствующие приложения/решения (IoT Application Enablement Platform).
А вот четыре типа платформ, которые называют «IoT-платформами», однако они не вполне подходят под классификацию IoT Analytics:
- Connectivity / M2M platforms. Платформы в своей работе фокусируются на связи умных объектов через телекоммуникационные сети, но редко на обработке сигналов от датчиков (пример такой платформы: Sierra Wireless с продуктом AirVantage).
- IaaS backends. Инфраструктура-как-сервис-серверы, предоставляющие хостинг-пространство и вычислительные мощности для приложений и сервисов, ранее оптимизировались для десктопов и мобильных приложений, но сейчас в фокус попал и IoT (пример — IBM Bluemix, но не IBM IoT Foundation).
- Hardware-specific software platforms. Некоторые компании, продающие умные гаджеты, создают собственный программный бэкенд и рассуждают о нем, как об IoT-платформе. Но так как эта платформа носит закрытый для всех остальных характер, правомерность такого наименования сомнительна (например — Google Nest).
- Consumer/Enterprise software extensions. Существующие пакеты корпоративного программного обеспечения и операционные системы типа MS Windows 10 становятся все более открытыми для интеграции IoT-устройств. В настоящее время эта область еще недостаточно развита, чтобы называться IoT-платформой, но будущее у нее очень перспективное.
В общем все запутано и ясности в терминологии нет. Что еще и усугубляется «модностью» темы и желанием разработчиков IoT-платформ комбинировать фантазии маркетологов, как, например, это делает IBM (IoT Foundation application enablement platform + Bluemix IaaS backend).
И вот парни из IoT Analytics сделали интеллектуальное усилие, и выделили восемь компонентов полноценной IoT-платформы:
- Связь и нормализация (Connectivity & normalization): сведение различных протоколов и форматов данных в один «программный» интерфейс, гарантируя точную передачу данных и взаимодействие со всеми устройствами.
- Управление устройствами (Device management): обеспечение правильной работы подключенных «интернет-вещей», их конфигурирование, бесперебойную работу, «накатку» патчей и обновлений. Причем, не только ПО собственно «вещей», но и приложений, работающих на устройстве или пограничных шлюзах.
- База данных (Database): тут все достаточно понятно и прозрачно — масштабируемое хранилище данных от «вещей». Требования к этим данным, попытка навести порядок в обработке и перенос данных из, например, разных «платформ» или вовсе к информационным системам «третьих лиц».
- Обработка и управление действиями (Processing & action management): данные, полученные от «вещей» в конечном итоге влияют на события в реальности. По этому «платформа» должна уметь строить процессы, «триггеры событий» и прочее «умные действия» на основе конкретных данных датчиков.
- Аналитика (Analytics): данные от «вещей» являются ценными сами по себе. Поэтому существование комплекса средств их анализа является всенепременным требованием к «платформе». Если сюда включить еще и средства кластеризации данных и глубокого машинного обучения вплоть до прогнозирующей аналитики,то ценность «платформы» очевидно растет.
- Визуализация (Visualization): всю вышеперечисленную аналитику и вообще было бы неплохо показать таким образом, чтобы людям было понятно, приятно и красиво. Строить графики, модели, просто визуализировать то, что происходит с «вещами». Ну, и просто удобный интерфейс.
- Дополнительные инструменты (Additional tools): набор инструментов, который позволяет разработчикам IoT создавать прототипы, тестировать и пробовать различные системы. Приложения, виджеты, машапы — вот это все. Желательно, чтобы не очень углубляться в код и хардкор-программирование.
- Внешние интерфейсы (External interfaces): интеграция с помощью платформы — одна из главных возможностей. Мир интернет-разработки сегодня не терпит замкнутых решений. Всегда может потребоваться передача и обмен со сторонними системами. Поэтому настоящая IoT-платформа обязана иметь интерфейсы прикладного программирования (API), комплекты разработки программного обеспечения (SDK) и шлюзы.
Вот картинка для общего понимания (я не стал ее переводить):
На рынке уже имеются сотни платформ. IoT Analytics насчитали их более 450 и число продолжает расти. При этом различные платформы появляются из-за различных стратегий входа различных компаний, видения развития, подходов и начальных условий. Клиентские сегменты, кстати:
Стартапы, производители оборудования и сетевого оборудования, корпоративного программного обеспечения и компаний по управлению мобильностью — все они конкурируют, чтобы вывести на рынок лучший продукт.
Попробуем разобрать эти стратегии:
- Стратегия «органического роста» снизу-вверх (Organic bottom-up approach): то есть, платформа начинает расти от «вещей» — сначала появляются некие устройства (обычно универсальные датчики), а потом начинается расширение и улучшение функционала, выстраиваются связи, подключаются другие «железки». Так, например, начиналась платформа Ayla Networks, которая возникла с контроллеров STM32F3.
- Стратегия «сверху вниз» (Organic top-down approach): обратная ситуация, когда сначала появлялась аналитическая составляющая, а потом к ней пытались приспособить как можно больше разных «вещей». Пример — упомянутая IBM IoT Foundation.
- Стратегия «партнерства» (Partnership approach): создание альянсов для развития продукта. Кто-то «приносит» «вещи», кто-то «админку». Пример: альянс GE Predix (это тот самый «Дженерал Электрик», у которого активов по Миру на триллион) и PTC Thingworx. Последняя компания в России больше известна пакетом компьютерной алгебры Mathcad.
- «Слияния и поглощения» (M&A approach): любимый капиталистический прием по целевой скупке интересных решений крупным игроком. Например, Amazon в 2015 году купил 2lemetry, и теперь это все называется AWS IoT. Вариант стратегии — объединение бизнесов, как, например, Nokia и Alcatel-Lucent.
- Ну, и есть еще «Инвестиционный подход» (Investment approach): тактические инвестиции по всей экосистеме IoT. Так любит поступать, например, Cisco.
IoT Analytics утверждает, что в настоящее время продажа основного продукта становится побочным процессом, а основные бизнес-интересы строятся вокруг «торговли данными», что довольно интересная мысль, но на российском рынке пока «цифровой нефтью» интересуются лишь спецслужбы.
В прогнозе IoT Analytics присутствует простая мысль, которую я много раз уже повторял в своих опусах про «интернет вещей»: очень скоро мы увидим создание абсолютно новых отраслей, которые становятся возможными с повсеместным использованием «множества устройств, подключенных к интернету».
Для того чтобы эти модели «полетели» практически все готово — есть аппаратное обеспечение, имеется развитая инфраструктура передачи данных, есть очень хорошее программное обеспечение. Осталось чуть-чуть, и…
Но двинемся дальше.
Поскольку список большой, я не стану по каждой платформе писать подробно. Но все эти проекты объединяет одно — открытый исходный код. На каждую сделаны ссылки, но не каждую ссылку я проверил методом установки и изучения кода. Нужно понять и простить. Ссылки в алфавитном порядке.
Предупреждаю, что в процессе осмысления можно сломать мозг. Слишком много концептуальных терминов и названий, которые я вообще затрудняюсь перевести.
- AllSeen Alliance (AllJoyn) — Фреймворк взаимодействия «вещей» AllJoyn, созданная AllSeen Alliance (ASA), который является проектом Linux Foundation. Есть мнение, что это одна из самых популярных IoT-платформ с открытым исходным кодом.
- Bug Labs — пример стратегии разработки «снизу вверх». Парни из «Лаборатории ошибок» (красиво, кстати), начали разработку и железок для IoT под заказ, но потом обросли кучей веб-приложений и стали платформой, которая зарабатывает на разработке «нестандартных решений». Например, таких. Bug Labs в настоящее время имеет платформу для обмена сообщениями и оповещений «dweet» и «Freeboard — дашборд для создания панелей вывода и визуализации IoT».
- DeviceHive — платформа управления всевозможными устройствами на базе DataArt — форк AllJoyn (первый пункт). Предназначен для быстрого развертывания на популярных облачных сервисах: Azure, AWS, Apache Mesos и OpenStack. DeviceHive фокусируется на анализе больших данных с использованием таких инструментов, как ElasticSearch, Apache Spark, Cassandra и Kafka. Работает на любом устройстве, на котором запущено Ubuntu Snappy Core. Собственно ПО построено по модульному принципу с идеологией «промежуточного шлюза». Ну, то есть собственно «вещь» подключается к бордеру в виде, например, Raspberry PI (вот список поддерживаемого железа, где работает Snappy Core), а затем уже «цепляется» к облаку, где развернут DeviceHive.
- DSA — Архитектура распределенных служб (Distributed Services Architecture). Достаточно сложная для понимания штука, которая предполагает создание полносвязных сетей «вещей». Имеет три элемента: DSBroker, DSLink и nodeAPI. Попробуйте сами разобраться.
- Eclipse IoT (Kura) — IoT-решение от Eclipse Foundation. Основа заключается в наличии API-контейнера Kura API. Написан на Java / OSGi и платформе агрегации для приложений M2M, работающих на служебных шлюзах. Kura использует Eurotech Everywhere Cloud IoT, легко интегрируется с Apache Camel. Подпроекты Eclipse IoT включают в себя инфраструктуру протоколов обмена сообщениями Paho, и полный стек MQTT Mosquitto для «легких серверов» со средой Eclipse SmartHome. Существует также Java-реализация протокола CoAP под названием Californium и еще что-то. Много всего.
- Kaa — проект поддерживается компанией CyberVision, и представляет собой масштабируемую инфраструктуру IoT, предназначенную для достаточно больших сетей. Платформа имеет серверную функцию REST-сообщений для служб, аналитику и управление данными. На базе Apache Zookeeper можно создавать кластерные системы, масштабируемые «до куда угодно». SDK Kaa поддерживают разработку на Java, C ++ и C. Имеются библиотеки организации связи «клиент-сервер», аутентификацию, шифрование, хранение и сортировку данных.
- Macchina .io — универсальная среда для разработки приложений IoT-шлюзов, работающих на железках под Linux. Macchina.io уже включает поддержку огромного количества датчиков и технологий подключения, включая Tinkerforge bricklets, кучу датчиков на XBee/ZB, GPS/GNSS приемники и еще кучу всего.
- GE Predix — выше эта платформа уже упоминалась. Это по сути PaaS (платформа как услуга) для промышленного IoT и базируется на Cloud Foundry. Платформа умеет «управлять активами, обеспечивать безопасность устройств и готовить аналитику в режиме реального времени. Ну, и все остальное, что должны уметь платформы, конечно это сбор данных, их хранение и обеспечение доступности. «Дженерал Электрик» разработали GE Predix, прежде всего, для собственных нужд. Соответственно имеет некоторую отраслевую специфику — электроэнергетика. Predix считается одной из самых успешных IoT-платформ и утверждается, что генерит разработчику порядка 6 млрд. долларов.
- Home Assistant — платформа для массового использования для целей домашней автоматизации. Написана на Python.
- Mainspring — платформа запилена на Java компанией M2MLabs. Довольно старенькая и страшненькая (как, впрочем, и все написанное на Java — шутка). Использует для коммуникаций «вещей» REST и предлагает инструменты настройки оборудования и моделирования.
- Node-RED — этот инструмент визуальной разработки на Node.js. Имеется браузерный редактор «потоков», с помощью которого можно проектировать целые сети IoT с узлами и хабами. После узлы могут быть быстро развернуты как «среды выполнения» на куче серверов и/или в облаках. Обмен данными основан на JSON, что логично. Поддерживаются «вещи» на платах с Linux, а облачная поддержка — Docker, IBM Bluemix, AWS и Azure.
- Open Connectivity Foundation (IoTivity). Совместная разработка Intel и Samsung, которые инвестировали в Open Interconnect Consortium (OIC) и UPnP Forum. Очень хотят стать ведущей группой стандартов на базе открытого кода для IoT. IoTivity поддерживает протоколы обмена данными на RESTful, JSON и CoAP.
- OpenHAB — среда разработки для «умного дома» с открытым исходным кодом. Может (по задумке) работать на любом устройстве, способном запускать JVM. Модульная архитектура на уровне абстракции разделяет все используемые технологии и компоненты IoT на «элементы», которые поддерживает всевозможные правила, скрипты и процессы.
- OpenIoT — Java-based платформа для создания IoT-приложений. Облачная, разумеется. Платформа включает промежуточное ПО датчиков и сенсорной сети, а также онтологии, семантические модели и аннотации для представления объектов IoT. Судя по гитхабу — давненько не обновлялось.
- OpenRemote — система, которую изначально разрабатывали для автоматизации зданий. OpenRemote отличается широкой поддержкой редких сетевых спецификаций и протоколов, например 1-Wire, EnOcean, xPL, Insteon и X10. Все остальное стандартно — правила, сценарии и события. Разумеется облачные инструменты проектирования для пользовательского интерфейса, установка и настройка, а также удаленные обновления и диагностика.
- OpenThread — спин-офф от известной компании Nest (купленной Google за 3,2 млрд. долларов) с открытым исходным кодом. Заточен под устройства на 6LoWPAN, но есть поддержка и других протоколов. Работает на железных платформах от ARM, Atmel, Microchip, Dialog, Qualcomm и TI. OpenThread реализует сетевые роли модели «Thread»: End Device, Router, Leader, and Border Router.
- Physical Web / Eddystone — опен-сорс разработка Google. Это они пытались создать что-то очень похожее на iBeacon от Apple. Маячки на Bluetooth 4.0 с поддержкой «экономии энергии» (BLE) должны передавать URL-адреса на ваш смартфон. Идея состоит в том, что обладатели смартфонов могут взаимодействовать с любыми девайсами с поддержкой BLE, таким как парковочные счетчики, вывески или розничные продукты.
- PlatformIO — система разработана на Python и включает в себя IDE, генератор проектов и веб-менеджер библиотек. Изначально разрабатывалась для доступа к данным с конечных точек на Arduino и ARM Mbed. Сейчас имеются готовые прошивки-настройки для более чем 200 плат и интегрируется с Eclipse, Qt Creator и другими IDE.
- The Thing System — программное обеспечение на Node.js, предназначенное для смартфонов. Утверждается, что имеется поддержка «реальной автоматизации», а не просто уведомления — таких проектов, надо сказать, очень много. Есть что-то похожее на «самообучение» и искусственный интеллект, что позволяет организовать взаимодействие множества сценариев M2M взаимодействия. Отсутствие облачного компонента обеспечивает большую безопасность, конфиденциальность и контроль. Ну…
- ThingSpeak — проект с пятилетней историей. Фокусируется на регистрации датчиков, отслеживании местоположения, триггерах и предупреждениях и анализе всех этих данных. Пользователи ThingSpeak могут использовать версию MATLAB для анализа и визуализации данных, не покупая лицензию от Mathworks.
- Zetta — сервер-ориентированная IoT-платформа на Node.js и REST/WebSockets. Использует философию разработки, основанную «на потоках реактивного программирования» (не знаю что это). Рекламируется как API-first система с интерфейсами Siren hypermedia. Любое устройство представляется, как набор API REST, и связывается с облачными сервисами, где имеются инструменты визуализации и поддержки машинной аналитики Splunk. Платформа поддерживает любые Linux-платки и Arduino. Использует Heroku для создания геораспределенных сетей, что тоже звучит очень круто.
Насколько мне известно, работы по созданию IoT-платформ в РФ идут днем и ночью. Тысячи энтузиастов перерабатывают гигабайты открытого исходного кода для создания систем или «умного дома», или для «сбора данных со счетчиков».
На большее фантазии не хватает.
Впрочем, если вы знаете российские хорошие годные проекты — напишите мне. Я сделаю обзор.
Пока же покажу одну систему, которую вполне можно назвать IoT-платформой — это iRidium Mobile (нет, не спутниковая система связи) из Нижнего Тагила. Земляки.
Это как раз платформа для управления «умным домом». По сути, это некий «облачный хаб», который умеет преобразовывать массу IoT-протоколов и сводить их к «порталу управления». Если еще понятнее — инсталляторы «умных домов», а также «умных зданий» и прочих систем интернет-автоматизации экономят массу времени, денег и усилий на разработке пользовательских интерфейсов и интеграции кучи всяких протоколов и данных. Можно подобрать соответствующие датчики и/или исполнительные устройства, подключить их «по инструкции», а все остальное отдать iRidium.
Где уже готовы интерфейсы — нужно только перетащить мышкой в нужное место и поставить «логотип заказчика». Ну, и чуток автоматизации там тоже есть — это же платформа.
Более подробно на сайте. Я же покажу несколько фоточек, которые с сайта и утянул:
Например, «умный корабль»:
Музей бронетехники:
Иди даже культовое сооружение «Храм Соломона» в Бразилии:
Что такое IoT, или интернет вещей
Наверняка вы уже слышали словосочетание «интернет вещей» и видели сокращение IoT, но, возможно, не знаете, что за ними скрывается. Что же такое IoT, или интернет вещей?
IoT относится к соединению устройств (кроме обычных компьютеров и смартфонов) через интернет. Автомобили, кухонная бытовая техника и даже кардиомониторы могут быть соединены через IoT. И так как интернет вещей в следующие несколько лет будет только расти, в этом списке будет появляться всё больше устройств.
Мы подготовили справочник по IoT для новичков, который поможет сориентироваться в удивительном связанном мире.
Понятия и основные определения
Ниже мы публикуем небольшой словарик с определениями, которые относятся к интернету вещей.
IoT, или интернет вещей, — это сеть связанных через интернет объектов, способных собирать данные и обмениваться данными, поступающими со встроенных сервисов.
Устройства, входящие в интернет вещей, — любые автономные устройства, подключённые к интернету, которые могут отслеживаться и/или управляться удалённо.
Экосистема IoT, или интернета вещей, — все компоненты, которые позволяют бизнесу, правительствам и пользователям присоединять свои устройства IoT, включая пульты управления, панели инструментов, сети, шлюзы, аналитику, хранение данных и безопасность.
Физический уровень — аппаратное обеспечение, которое используется в IoT-устройствах, включая сенсоры и сетевое оборудование.
Сетевой уровень отвечает за передачу данных, собранных на физическом слое, к различным устройствам.
Уровень приложения включает протоколы и интерфейсы, которые устройства используют для идентификации и связи друг с другом.
Пульты управления позволяют людям использовать IoT-устройства, соединяясь с ними и контролируя их посредством панели инструментов, такой как мобильное приложение. К пультам управления относятся смартфоны, планшеты, ПК, умные часы, телевизоры и нетрадиционные пульты.
Панели инструментов обеспечивают отображение информации о экосистеме IoT для пользователей, что позволяет им управлять экосистемой IoT. Обычно используется удалённое управление.
Аналитика — программные системы, которые анализируют данные, полученные от IoT-устройств. Аналитика используется в большом количестве сценариев, например для прогнозирования технического обслуживания.
Хранение данных — то, где хранятся данные с IoT-устройств.
Сети — слой интернет-коммуникаций, который позволяет операторам общаться с устройством, а устройствам — общаться друг с другом.
Индустрия IoT
От использования IoT-устройств получат выгоды следующие направления:
— производство;
— транспорт;
— оборона;
— сельское хозяйство;
— инфраструктура;
— розничные продажи;
— логистика;
— банки;
— нефть, газ, добыча полезных ископаемых;
— страховое дело;
— умные дома;
— производство продуктов питания;
— обслуживание;
— госпитали;
— охрана здоровья;
— умные постройки;
— IoT-компании.
Интернетом вещей занимаются уже сотни компаний, и их список в следующие несколько лет только расширится.
Платформы IoT
Одно устройство IoT соединяется с другим для передачи информации через интернет-протоколы. IoT-платформы служат мостом между сенсорами устройств и сетью передачи данных.
Вот несколько самых крупных платформ IoT, которые сейчас действуют на этом рынке:
— Amazon Web Services;
— Microsoft Azure;
— ThingWorx IoT Platform;
— IBM’s Watson;
— Cisco IoT Cloud Connect;
— Salesforce IoT Cloud;
— Oracle Integrated Cloud;
— GE Predix.
Хотите больше новостей? Facebook. Быстрее всех? Telegram и Twitter. Подписывайтесь!
Читайте далее наш биткоин-гид:
Какой биткоин-кошелёк выбрать?
Как купить биткоин?
Заработок биткоинов: биткоин-краны
Кто придумал биткоин?
Зачем использовать биткоин?
Как работает биткоин?
Что такое биткоин?
«Is This IoT?» — учимся не называть Интернетом Вещей все подряд / Habr
Еженедельно какая-нибудь топовая IT-компания объявляет о том, что вкладывает миллионы (а то и миллиарды) в изучение и развитие Интернета Вещей — и каждый такой пресс-релиз сопровождается новым определением того, что такое Internet Of Things.
Для людей, далеких от разработки, Интернет Вещей — такое же «ругательство», как и блокчейн, машинное обучение и Big Data, а в разъяснениях «для чайников» о том, что такое IoT, используются либо примитивные бытовые примеры про включающиеся по таймеру кофеварки, либо фантазийные футуристические концепции «умных городов», которым бы позавидовал даже Остап Бендер с его историями про межгалактические шахматные турниры в Васюках. Но и среди разработчиков встречаются разночтения — кажется, на каждой из конференций, посвященных IoT, я слышала новую версию касаемо того, что же такое Интернет Вещей. Даже в рамках одной и той же конференции представители серьезных компаний вроде Microsoft, Ростелеком или Huawei говорят совершенно о разном — не говоря уже о небольших игроках IoT-рынка.
В этой статье я постараюсь отделить зерна от плевел, IoT — от телематики и Big Data, и докопаться до сути Интернета Вещей. Приятного прочтения.
«Интернет вещей — это…» Что писать после тире?
С точки зрения технологий, IoT представляет собой четырехзвенную систему: подключаемые устройства (сенсоры, датчики, терминалы), сети, по которым они взаимодействуют, IoT-платформы и приложения для конечных пользователей. При этом первые два уровня исключить из структуры нельзя, платформы в решении присутствуют вариативно, клиентский интерфейс пока наличествует везде, но в будущем, возможно, уровень приложения и другие дополнительные элементы в управлении отпадут. Взаимодействие будет сводиться к backend-приложению, которое будет анализировать действия человека — и на основе этого анализа формировать взаимодействие с конечными устройствами без дополнительного нажатия кнопок. Например, система «умного дома» будет знать, во сколько (и какой яркости) хозяин обычно включает свет, к какому часу разогреть ужин и во сколько нужно включить телевизор, потому что начинается любимый сериал домовладельца. Все это будет работать на основе шаблонов, хранимых в базе системы, и формировать эти действия она будет без участия человека. Деятельность же разработчиков и пользователей будет сводиться к контролю — либо через приложение, либо через механическое выполнение действий.
Но вернемся в настоящее. IoT также можно разложить на этапы: снятие показаний, принятие решений на основе этих показаний и корректирующее воздействие. Некоторые разработчики считают, что полноценным считается только тот IoT-продукт, в котором система берет на себя те или иные решения, а не просто управляется извне. То есть по-настоящему «умный дом» — это когда вы заходите в помещение, а климат в комнате меняется в зависимости от температуры вашего тела и пульса, информация о которых была считана с фитнес-трекера. Впрочем, с последним утверждением согласны не все игроки IoT-рынка: хотя введение такого ограничения позволило бы отсеивать тех недобросовестных производителей IT-решений, которые лишь заменили кнопку на пульте кнопкой в мобильном приложении. И после этого начали называть свои устаревшие системы мониторинга или дистанционного управления IoT-продуктами, неоправданно увеличив ценник.
«Да я такое еще 25 лет назад делал!». Правы ли те, кто говорит, что Интернет Вещей — это новое название старой технологии?
Зачатки телематики (из которой впоследствии вырос IoT) зародились еще в начале 20 века (вспомним эксперименты Тесла) — и с тех пор развиваются, причем эволюционно и не линейно. Среди предшествующих Интернету Вещей технологий и трендов можно назвать СКАД, АСУ ТП, машинное взаимодействие (М2М).
Все начиналось с локальных решений, которые позволяли автоматизировать что-либо путем установки связи (проводной или с использованием каналов малой дальности действия) между агрегатами: системы автоматического оповещения, автоматического открытия и закрытия ворот, мониторинга и т.д. Технически структура была такая же: железки, собирающие информацию, передающие ее извне и исполняющие команды, сети, а также системы, которые у себя это агрегировали, содержали бизнес-логику и слой приложения. Но поначалу это была специфическая дорогостоящая нишевая история. Ранее автоматизация была доступна только в ограниченном количестве областей и только для предприятий с крупным бюджетом.
В то же время, в инженерии время от времени накапливаются количественно-качественные изменения, которые становятся причиной качественных изменений в бизнесе. В каждой из составляющих будущей IoT-архитектуры (железо, сети, сервера) в течение нескольких десятилетий происходили значительные изменения. Девайсы стали меньше по габаритам, их стоимость существенно снизилась, у многих моделей заметно увеличились сроки автономной работы — мощные встроенные аккумуляторы теперь позволяют устройствам работать до 10 лет без подключения к питанию. Рынок теперь может потреблять датчики миллиардами — и применять их в областях, в которых ранее это было невозможно. Так, использование телеметрии в полях или в железнодорожных вагонах 10 лет назад было бы слишком затратным с точки зрения энергопотребления — теперь же положительный эффект от использования IoT заметно превышает расходы.
Также появились новые сети (5G, Lo-Ra, NB-IoT), которые могут обеспечить высокую пропускную способность и энергоэффективность обмена данными. Сервера же итак постоянно развиваются, их мощности (по «закону Мура») раз в два года кратно увеличивают свои мощности, к этому добавились софтверные преобразования, появились IoT-платформы, развивается Big Data… Все это дает возможность решать новые бизнес-задачи (например, заниматься предиктивным анализом), создавать новые виды бизнеса (такие как каршеринг) и, главное, применять все это в компаниях меньшего масштаба и с меньшими затратами.
Телематика до вышеупомянутых изменений представляла собой простое получение информации и передачу ее на конкретный компьютер, поэтому в сознании потенциальных клиентов она ассоциируется с чем-то устарелым, дорогостоящим и сильно ограниченным по функционалу. IoT же является следующим шагом в цепочке после телематики, может выполнять ее задачи, — но также включает в себя куда более широкий круг возможностей. В свою очередь, все прогрессивное должно обозначаться новым термином. Вспомним производителей телевизоров — все эти Full HD, 4K, Ultra HD и так далее. По сути это просто стадии развития технологий качества передачи изображения — но, чтобы подчеркнуть разницу между картинкой в старых и новых моделях, технологиям даются новые названия. Таким образом, термин IoT был создан и популяризирован, в первую очередь, чтобы защитить новый виток развития технологий в глазах клиентов и инвесторов. При этом концепция IoT не имеет каких-то жёстких рамок и ограничений — при желании в Интернет Вещей можно включить даже роботов на Марсе, управляемых космическими центрами НАСА.
Пока что телематика и IoT делят один рынок, но постепенно процентная доля телематики в нем будет уменьшаться. При этом телематика как таковая не исчезнет, поскольку останутся специфические клиенты — такие как изолированные от интернета военные организации.
На уровне массового сознания IoT также зачастую воспринимается только как источник данных для Big Data — то есть как совокупность датчиков и сенсоров, которые собирают информацию оттуда, откуда ее раньше не могли извлекать. При этом считается, что конечная ценность извлекается на уровне алгоритмов сетей, а Интернет Вещей ошибочно рассматривают только как приложение по сбору и агрегации данных. Однако IoT отличается от телематики и Big Data возможностью не только собирать информацию об объекте, но и управлять этим самым объектом. Основная ценность Internet Of Things — в автоматизации процессов и в возможности управлять чем-то на уровне объектов реального мира, вычеркнув из цепочки людей-посредников. Хотя при этом IoT все же находится в тесной связи с нейронными сетями и Big Data, поскольку последние работают с данными, агрегированные IoT и телематикой.
Кстати, минимизация участия человека — это одна из главных «фишек» IoT, поэтому некоторые разработчики называют Интернетом Вещей концепцию по объединению цифрового пространства с реальным миром. То есть обычный «человеческий» интернет объединяет людей и служит посредником между ними — например, когда владелец интернет-магазина из Нью-Йорка связывается с покупателем из Москвы. «Интернет Вещей» же коннектит человека с объектом реального мира напрямую и служит не только связующим звеном, но и непосредственным исполнителем команд.
Таким образом, IoT — это не новая технология, а новая концепция и новый способ утилизации уже существующей технологии автоматизации, ее демократизация. Глобального технологического переворота не произошло — поэтому можно понять инженеров, которые в ответ на новости об IoT бурчат «да что в этом такого, я уже 25 лет этим занимаюсь». И да, они занимались схожими технологиями, но и задачи они решали двадцатипятилетней давности.
IoT и IIoT – соотношение понятий
Рынок Интернета Вещей состоит из большого количества простых потребностей, которые могут быть удовлетворены с помощью IoT, и идей, за реализацию которых люди будут платить. При этом практически в любом сегменте рынка есть товары широкого потребления, которые всегда отличаются по характеристикам от специализированной продукции для нишевых профессионалов. Фотоаппараты для любительских снимков и для профессионалов, ножи для дома и для ресторанов, мини-газельки и фуры — на деле они совершенно разные, хотя основа и сущность у них одна. На промышленных предприятиях нужны устройства, способные работать в особых температурных, шумовых и прочих нестандартных условиях, предъявляются заметно более высокие требования к качеству монтажа, оперативности реагирования узлов, к принципам взаимодействия между ними и т.д. Это сильно влияет на стоимость — и, в конечном счете, на позиционирование продукции поставщиков IoT решений для промышленности.
По сути производственное предприятие (особенно полного цикла) — это своеобразное «государство в государстве», которое подчиняется своим законам: техническим регламентам, описаниям механических, промышленных и бизнес-процессов, требованиям безопасности и так далее. Завод или предприятие изначально представляет собой систему устройств, которые взаимодействуют между собой и с человеком на различных уровнях (в том числе и на механическом), доля же взаимодействия со внешним миром (по сравнению с другими видами бизнеса, в котором применяется IoT) совсем небольшая. Формально IIoT входит в часть единой концепции Интернета Вещей, при этом компании, которая специализируется на «гражданском» IoT, будет сложно переключиться на промышленный — и наоборот. Обычно компании, работающие с IIoT (за исключением IT-гигантов), ограничиваются только созданием промышленных решений и не представлены в других сегментах рынка IoT. Так что IIoT — это еще и условная «специализация» IoT-компании.
Деление Интернета Вещей на сегменты производится достаточно искусственно — и оно скорее маркетинговое, чем техническое, цель этого деления — сфокусировать внимание. Фокус в сегменте IIoT (Industrial Internet of Things, промышленный Интернет Вещей) с точки зрения технарей — это более подробное изучение предметной области (например, станков), разработка специализированного софта и датчиков. С точки же зрения бизнеса — это просто достаточно денежный, и при этом специализированный сегмент рынка.
Среди основных направления развития IIoT можно отметить:
- Предотвращение аварий, которые могут произойти в ближайшее время — перегрев, уже случившиеся поломки и и.д.;
- Предиктивный анализ — более эффективное и бережное использование ресурсов в длительной перспективе;
- Управление оборудованием (автоматизация, минимизация участия человека).
Немного о причинах возникновения терминологических споров
Споры по поводу определения IoT во многом связаны с глокализацией — то есть адаптацией общемировых понятий и трендов под локальные условия. Каждая культурная или инженерная среда старается интегрировать новый тренд в рамки привычных им терминов — и в результате получается неоднородная «каша».
Так, в Германии принято пропускать все технико-экономические новшества через призму промышленности, поэтому вместо IoT там используются термины «Индустрия 4.0» или «Четвёртая промышленная революция», в США (во многом с подачи компании «Cisco») чаще используется термин «Internet Of Everything» (более громогласный, как и свойственно американскому рынку), в остальных странах Европы, в Азии и на Ближнем Востоке наибольшее распространение получило понятие «Internet Of Things».
Основная слабость формулировки «Интернет Вещей» состоит в том, что пакеты данных между устройствами передаются в том же самом интернет-пространстве, в котором общаются между собой люди. Все веб-интерфейсы, API, приложения, провайдеры принадлежат тому же самому интернету, которым пользуются живые пользователи. А термин «Интернет Вещей» вызывает ощущение того, что это какое-то отдельное от «человеческого интернета» пространство, и везде в мире параллельно разложены те же самые провода, что и для обычных ПК, но предназначенные лишь для коммуникации между вещами.
В России изначально использовалось понятие «киберфизическая система», очень схожее с IoT: есть и петли обратной связи, и потоки данных, и управляемое железо с набором паттернов поведения. Кстати, первая российская магистратура, связанная с IoT, называется «Интернет Вещей и киберфизические системы» – по сути в названии дублируется один и тот же термин, ибо профессура ВШЭ решила, с одной стороны, отдать дань дать локальным российским трендам, а с другой — использовать устоявшуюся в мире терминологию.
Дискуссии по поводу определения IoT также усугубляются тем, что в обсуждении активно участвуют интересанты: представители разных видов бизнеса, связанного с IoT. При этом большинство спикеров фокусируют или сужают термин Интернета Вещей до той предметной области, которую они представляют или в которой имеют наибольшую компетенцию. Так, организации-производители железа говорят, что IoT — это совокупность сенсоров и датчиков, создатели платформ зачастую сводят IoT только к софту… Важно смотреть шире — и помнить, что технологии неотделимы от бизнеса и одно порождает другое.
что это? Концепция Интернета вещей
Когда сегодня люди слышат или читают в сети о том, что тем или иным известным производителем успешно разрабатывается платформа IoT, многие оставляют это без внимания. Причина проста — далеко не каждый успел уяснить для себя, что IoT (англ. Internet of Things, в переводе на русский язык — Интернет Вещей) уже превращается в повседневную реальность. Более того, не все понимают, что такое вообще «интернет вещей».
Концепция Интернета Вещей
Одним из наиболее точных ответов на вопрос «IoT — что это?» приведен в статье, посвященной интернету вещей в Википедии. В ней он рассматривается как концепция, позволяющая физическим объектам («вещам»), осуществлять взаимодействие между собой или с внешним миром, частично или полностью без участия человека.
Для этой цели используются соответствующие объединения таких устройств в сети.
Фактически, это означает, что окружающие нас в повседневности вещи (от самых простых, например, кофеварки, до автомобиля) могут передавать между собой необходимые данные, обеспечивая максимальный комфорт для человека без его вмешательства (управления).
В описании концепции IoT используется несколько основных понятий:
- Устройство (вещь) — отдельный прибор или комплекс оборудования, оснащенный датчиками для сбора информации, выходом в сеть и имеющий возможности передачи данных и удаленного управления.
- Экосистема IoT — локальные или глобальные сети устройств, а также компоненты, дающие возможность присоединения к ним новых, обеспечивающие удаленное управление, хранение, передачу и безопасность данных.
В организации различаются несколько уровней:
- Физический — подразумевает использующиеся устройствами аппаратные решения — датчики и исполнительные механизмы, АЦП и ЦАП, микроконтроллеры для обработки информации и выдачи управляющих сигналов, устройства памяти для хранения данных, сетевые порты.
- Сетевой, под которым понимают среду передачи данных (например, кабельные линии или радиоканал), шлюзы маршрутизаторы и т.д. — всю инфраструктуру, отвечающий за объединение устройств в сети.
- Приложений — используемые для передачи данных и управляющих сигналов, идентификации и взаимодействия протоколы и интерфейсы.
Упрощенная модель IoT представляет, по мнению Рона Ван Краненбурга, объединение нескольких слоев:
- Объекты (вещи) на аппаратном уровне, со свойственными им функциями сбора и обработки данных, выполняемыми действиями, средствами идентификации.
- Системы для обслуживания конкретного пользователя — объединение объектов на сетевом уровне и уровне приложений, позволяющее удаленное управление, анализ данных и обработку информации (примером такой системы может служить отдельный «умный дом»).
- Экосистема IoT в масштабах населенного пункта или целой страны, благодаря которым у локальных систем появляются новые возможности, например, заказа товара в магазине или бронирования мест при поездке на отдых в автоматическом режиме.
- Глобальная экосистема «Интернета вещей».
Концепция умного города (картинка кликабельна).
Для чего нужен «Интернет вещей»
Появление такой системы, с тех пор как в 1990 г Джон Ромки подключил к сети тостер, было неизбежным. Во-первых, человек понял, что такое возможно. Во-вторых, стремление переложить рутинные функции на исполнительные механизмы (вещи) было свойственно ему всегда.
В результате сформировались главные положения концепции (требования к функционированию IoT):
- Система должна со
Двадцать один пример IoT-платформ
Я уже пишу, наверное, двадцатую статью про «Интернет Вещей». Но всегда, как в первый раз, вынужден рассказывать, объяснять и доказывать. Но тут появился запрос не про объяснения, но про приведение примеров.
Как вы знаете, у меня есть небольшой частный телеграм-канал «ЗаТелеком», куда я выплескиваю новости, старости или просто заметки. Ну, и один пост почему-то вызвал «особый интерес» в виде массы репостов и упоминаний. Он был про «самые модные в этом сезоне IoT-платформы». Короткий простой пост с девятью ссылками на эти самые платформы.
Ну, поскольку интерес к теме проявился нешуточный, я решил сделать вот этот материал, где все и объясню. В очередной раз. Ну, вот первая попытка была.
Начнем с простого: что есть IoT-платформа, и как отличить оригинал от подделки?
Это очень, на самом деле, сложный вопрос, на который я ответить не смогу. И пытаться не буду.
Но вот есть гораздо более умные парни (разумеется, не наши), которые все понятно объяснили. Вот здесь оригинал, а ниже — краткий переклад на русский.
IoT-платформы — это такая штука, которая объединяет собственно «вещи» и «интернет». По сути — это ключевой инструмент разработки IoT-приложений и сервисов, объединяющий физические объекты и Сеть.
При этом многие вендоры, которые пытаются «держать нос по ветру», предлагают «IoT-платформы», которые в корне различаются между собой. И в ряде случаев, не являются «платформой» в широком смысле слова, но совершенно очевидно имеют основания себя таковой считать — есть «вещь», есть некий ресурс в интернете, который принимает/передает данные от/к «вещи». И что-то там делает (пытается делать) с этими данными. Следовательно, претендовать на высокое звание дом образцового быта платформы вполне себе может. Притом, что четкого и конкретного определения IoT-платформы попросту не существует.
По мнению авторов «IoT Analytics», полноценной IoT-платформой следует считать такую платформу, которая позволяет разрабатывать соответствующие приложения/решения (IoT Application Enablement Platform).
А вот четыре типа платформ, которые называют «IoT-платформами», однако они не вполне подходят под классификацию IoT Analytics:
- Connectivity / M2M platforms. Платформы в своей работе фокусируются на связи умных объектов через телекоммуникационные сети, но редко на обработке сигналов от датчиков (пример такой платформы: Sierra Wireless с продуктом AirVantage).
- IaaS backends. Инфраструктура-как-сервис-серверы, предоставляющие хостинг-пространство и вычислительные мощности для приложений и сервисов, ранее оптимизировались для десктопов и мобильных приложений, но сейчас в фокус попал и IoT (пример — IBM Bluemix, но не IBM IoT Foundation).
- Hardware-specific software platforms. Некоторые компании, продающие умные гаджеты, создают собственный программный бэкенд и рассуждают о нем, как об IoT-платформе. Но так как эта платформа носит закрытый для всех остальных характер, правомерность такого наименования сомнительна (например — Google Nest).
- Consumer/Enterprise software extensions. Существующие пакеты корпоративного программного обеспечения и операционные системы типа MS Windows 10 становятся все более открытыми для интеграции IoT-устройств. В настоящее время эта область еще недостаточно развита, чтобы называться IoT-платформой, но будущее у нее очень перспективное.
В общем все запутано и ясности в терминологии нет. Что еще и усугубляется «модностью» темы и желанием разработчиков IoT-платформ комбинировать фантазии маркетологов, как, например, это делает IBM (IoT Foundation application enablement platform + Bluemix IaaS backend).
И вот парни из IoT Analytics сделали интеллектуальное усилие, и выделили восемь компонентов полноценной IoT-платформы:
- Связь и нормализация (Connectivity & normalization): сведение различных протоколов и форматов данных в один «программный» интерфейс, гарантируя точную передачу данных и взаимодействие со всеми устройствами.
- Управление устройствами (Device management): обеспечение правильной работы подключенных «интернет-вещей», их конфигурирование, бесперебойную работу, «накатку» патчей и обновлений. Причем, не только ПО собственно «вещей», но и приложений, работающих на устройстве или пограничных шлюзах.
- База данных (Database): тут все достаточно понятно и прозрачно — масштабируемое хранилище данных от «вещей». Требования к этим данным, попытка навести порядок в обработке и перенос данных из, например, разных «платформ» или вовсе к информационным системам «третьих лиц».
- Обработка и управление действиями (Processing & action management): данные, полученные от «вещей» в конечном итоге влияют на события в реальности. По этому «платформа» должна уметь строить процессы, «триггеры событий» и прочее «умные действия» на основе конкретных данных датчиков.
- Аналитика (Analytics): данные от «вещей» являются ценными сами по себе. Поэтому существование комплекса средств их анализа является всенепременным требованием к «платформе». Если сюда включить еще и средства кластеризации данных и глубокого машинного обучения вплоть до прогнозирующей аналитики,то ценность «платформы» очевидно растет.
- Визуализация (Visualization): всю вышеперечисленную аналитику и вообще было бы неплохо показать таким образом, чтобы людям было понятно, приятно и красиво. Строить графики, модели, просто визуализировать то, что происходит с «вещами». Ну, и просто удобный интерфейс.
- Дополнительные инструменты (Additional tools): набор инструментов, который позволяет разработчикам IoT создавать прототипы, тестировать и пробовать различные системы. Приложения, виджеты, машапы — вот это все. Желательно, чтобы не очень углубляться в код и хардкор-программирование.
- Внешние интерфейсы (External interfaces): интеграция с помощью платформы — одна из главных возможностей. Мир интернет-разработки сегодня не терпит замкнутых решений. Всегда может потребоваться передача и обмен со сторонними системами. Поэтому настоящая IoT-платформа обязана иметь интерфейсы прикладного программирования (API), комплекты разработки программного обеспечения (SDK) и шлюзы.
Вот картинка для общего понимания (я не стал ее переводить):
На рынке уже имеются сотни платформ. IoT Analytics насчитали их более 450 и число продолжает расти. При этом различные платформы появляются из-за различных стратегий входа различных компаний, видения развития, подходов и начальных условий. Клиентские сегменты, кстати:
Стартапы, производители оборудования и сетевого оборудования, корпоративного программного обеспечения и компаний по управлению мобильностью — все они конкурируют, чтобы вывести на рынок лучший продукт.
Попробуем разобрать эти стратегии:
- Стратегия «органического роста» снизу-вверх (Organic bottom-up approach): то есть, платформа начинает расти от «вещей» — сначала появляются некие устройства (обычно универсальные датчики), а потом начинается расширение и улучшение функционала, выстраиваются связи, подключаются другие «железки». Так, например, начиналась платформа Ayla Networks, которая возникла с контроллеров STM32F3.
- Стратегия «сверху вниз» (Organic top-down approach): обратная ситуация, когда сначала появлялась аналитическая составляющая, а потом к ней пытались приспособить как можно больше разных «вещей». Пример — упомянутая IBM IoT Foundation.
- Стратегия «партнерства» (Partnership approach): создание альянсов для развития продукта. Кто-то «приносит» «вещи», кто-то «админку». Пример: альянс GE Predix (это тот самый «Дженерал Электрик», у которого активов по Миру на триллион) и PTC Thingworx. Последняя компания в России больше известна пакетом компьютерной алгебры Mathcad.
- «Слияния и поглощения» (M&A approach): любимый капиталистический прием по целевой скупке интересных решений крупным игроком. Например, Amazon в 2015 году купил 2lemetry, и теперь это все называется AWS IoT. Вариант стратегии — объединение бизнесов, как, например, Nokia и Alcatel-Lucent.
- Ну, и есть еще «Инвестиционный подход» (Investment approach): тактические инвестиции по всей экосистеме IoT. Так любит поступать, например, Cisco.
IoT Analytics утверждает, что в настоящее время продажа основного продукта становится побочным процессом, а основные бизнес-интересы строятся вокруг «торговли данными», что довольно интересная мысль, но на российском рынке пока «цифровой нефтью» интересуются лишь спецслужбы.
В прогнозе IoT Analytics присутствует простая мысль, которую я много раз уже повторял в своих опусах про «интернет вещей»: очень скоро мы увидим создание абсолютно новых отраслей, которые становятся возможными с повсеместным использованием «множества устройств, подключенных к интернету».
Для того чтобы эти модели «полетели» практически все готово — есть аппаратное обеспечение, имеется развитая инфраструктура передачи данных, есть очень хорошее программное обеспечение. Осталось чуть-чуть, и…
Но двинемся дальше.
Поскольку список большой, я не стану по каждой платформе писать подробно. Но все эти проекты объединяет одно — открытый исходный код. На каждую сделаны ссылки, но не каждую ссылку я проверил методом установки и изучения кода. Нужно понять и простить. Ссылки в алфавитном порядке.
Предупреждаю, что в процессе осмысления можно сломать мозг. Слишком много концептуальных терминов и названий, которые я вообще затрудняюсь перевести.
- AllSeen Alliance (AllJoyn) — Фреймворк взаимодействия «вещей» AllJoyn, созданная AllSeen Alliance (ASA), который является проектом Linux Foundation. Есть мнение, что это одна из самых популярных IoT-платформ с открытым исходным кодом.
- Bug Labs — пример стратегии разработки «снизу вверх». Парни из «Лаборатории ошибок» (красиво, кстати), начали разработку и железок для IoT под заказ, но потом обросли кучей веб-приложений и стали платформой, которая зарабатывает на разработке «нестандартных решений». Например, таких. Bug Labs в настоящее время имеет платформу для обмена сообщениями и оповещений «dweet» и «Freeboard — дашборд для создания панелей вывода и визуализации IoT».
- DeviceHive — платформа управления всевозможными устройствами на базе DataArt — форк AllJoyn (первый пункт). Предназначен для быстрого развертывания на популярных облачных сервисах: Azure, AWS, Apache Mesos и OpenStack. DeviceHive фокусируется на анализе больших данных с использованием таких инструментов, как ElasticSearch, Apache Spark, Cassandra и Kafka. Работает на любом устройстве, на котором запущено Ubuntu Snappy Core. Собственно ПО построено по модульному принципу с идеологией «промежуточного шлюза». Ну, то есть собственно «вещь» подключается к бордеру в виде, например, Raspberry PI (вот список поддерживаемого железа, где работает Snappy Core), а затем уже «цепляется» к облаку, где развернут DeviceHive.
- DSA — Архитектура распределенных служб (Distributed Services Architecture). Достаточно сложная для понимания штука, которая предполагает создание полносвязных сетей «вещей». Имеет три элемента: DSBroker, DSLink и nodeAPI. Попробуйте сами разобраться.
- Eclipse IoT (Kura) — IoT-решение от Eclipse Foundation. Основа заключается в наличии API-контейнера Kura API. Написан на Java / OSGi и платформе агрегации для приложений M2M, работающих на служебных шлюзах. Kura использует Eurotech Everywhere Cloud IoT, легко интегрируется с Apache Camel. Подпроекты Eclipse IoT включают в себя инфраструктуру протоколов обмена сообщениями Paho, и полный стек MQTT Mosquitto для «легких серверов» со средой Eclipse SmartHome. Существует также Java-реализация протокола CoAP под названием Californium и еще что-то. Много всего.
- Kaa — проект поддерживается компанией CyberVision, и представляет собой масштабируемую инфраструктуру IoT, предназначенную для достаточно больших сетей. Платформа имеет серверную функцию REST-сообщений для служб, аналитику и управление данными. На базе Apache Zookeeper можно создавать кластерные системы, масштабируемые «до куда угодно». SDK Kaa поддерживают разработку на Java, C ++ и C. Имеются библиотеки организации связи «клиент-сервер», аутентификацию, шифрование, хранение и сортировку данных.
- Macchina .io — универсальная среда для разработки приложений IoT-шлюзов, работающих на железках под Linux. Macchina.io уже включает поддержку огромного количества датчиков и технологий подключения, включая Tinkerforge bricklets, кучу датчиков на XBee/ZB, GPS/GNSS приемники и еще кучу всего.
- GE Predix — выше эта платформа уже упоминалась. Это по сути PaaS (платформа как услуга) для промышленного IoT и базируется на Cloud Foundry. Платформа умеет «управлять активами, обеспечивать безопасность устройств и готовить аналитику в режиме реального времени. Ну, и все остальное, что должны уметь платформы, конечно это сбор данных, их хранение и обеспечение доступности. «Дженерал Электрик» разработали GE Predix, прежде всего, для собственных нужд. Соответственно имеет некоторую отраслевую специфику — электроэнергетика. Predix считается одной из самых успешных IoT-платформ и утверждается, что генерит разработчику порядка 6 млрд. долларов.
- Home Assistant — платформа для массового использования для целей домашней автоматизации. Написана на Python.
- Mainspring — платформа запилена на Java компанией M2MLabs. Довольно старенькая и страшненькая (как, впрочем, и все написанное на Java — шутка). Использует для коммуникаций «вещей» REST и предлагает инструменты настройки оборудования и моделирования.
- Node-RED — этот инструмент визуальной разработки на Node.js. Имеется браузерный редактор «потоков», с помощью которого можно проектировать целые сети IoT с узлами и хабами. После узлы могут быть быстро развернуты как «среды выполнения» на куче серверов и/или в облаках. Обмен данными основан на JSON, что логично. Поддерживаются «вещи» на платах с Linux, а облачная поддержка — Docker, IBM Bluemix, AWS и Azure.
- Open Connectivity Foundation (IoTivity). Совместная разработка Intel и Samsung, которые инвестировали в Open Interconnect Consortium (OIC) и UPnP Forum. Очень хотят стать ведущей группой стандартов на базе открытого кода для IoT. IoTivity поддерживает протоколы обмена данными на RESTful, JSON и CoAP.
- OpenHAB — среда разработки для «умного дома» с открытым исходным кодом. Может (по задумке) работать на любом устройстве, способном запускать JVM. Модульная архитектура на уровне абстракции разделяет все используемые технологии и компоненты IoT на «элементы», которые поддерживает всевозможные правила, скрипты и процессы.
- OpenIoT — Java-based платформа для создания IoT-приложений. Облачная, разумеется. Платформа включает промежуточное ПО датчиков и сенсорной сети, а также онтологии, семантические модели и аннотации для представления объектов IoT. Судя по гитхабу — давненько не обновлялось.
- OpenRemote — система, которую изначально разрабатывали для автоматизации зданий. OpenRemote отличается широкой поддержкой редких сетевых спецификаций и протоколов, например 1-Wire, EnOcean, xPL, Insteon и X10. Все остальное стандартно — правила, сценарии и события. Разумеется облачные инструменты проектирования для пользовательского интерфейса, установка и настройка, а также удаленные обновления и диагностика.
- OpenThread — спин-офф от известной компании Nest (купленной Google за 3,2 млрд. долларов) с открытым исходным кодом. Заточен под устройства на 6LoWPAN, но есть поддержка и других протоколов. Работает на железных платформах от ARM, Atmel, Microchip, Dialog, Qualcomm и TI. OpenThread реализует сетевые роли модели «Thread»: End Device, Router, Leader, and Border Router.
- Physical Web / Eddystone — опен-сорс разработка Google. Это они пытались создать что-то очень похожее на iBeacon от Apple. Маячки на Bluetooth 4.0 с поддержкой «экономии энергии» (BLE) должны передавать URL-адреса на ваш смартфон. Идея состоит в том, что обладатели смартфонов могут взаимодействовать с любыми девайсами с поддержкой BLE, таким как парковочные счетчики, вывески или розничные продукты.
- PlatformIO — система разработана на Python и включает в себя IDE, генератор проектов и веб-менеджер библиотек. Изначально разрабатывалась для доступа к данным с конечных точек на Arduino и ARM Mbed. Сейчас имеются готовые прошивки-настройки для более чем 200 плат и интегрируется с Eclipse, Qt Creator и другими IDE.
- The Thing System — программное обеспечение на Node.js, предназначенное для смартфонов. Утверждается, что имеется поддержка «реальной автоматизации», а не просто уведомления — таких проектов, надо сказать, очень много. Есть что-то похожее на «самообучение» и искусственный интеллект, что позволяет организовать взаимодействие множества сценариев M2M взаимодействия. Отсутствие облачного компонента обеспечивает большую безопасность, конфиденциальность и контроль. Ну…
- ThingSpeak — проект с пятилетней историей. Фокусируется на регистрации датчиков, отслеживании местоположения, триггерах и предупреждениях и анализе всех этих данных. Пользователи ThingSpeak могут использовать версию MATLAB для анализа и визуализации данных, не покупая лицензию от Mathworks.
- Zetta — сервер-ориентированная IoT-платформа на Node.js и REST/WebSockets. Использует философию разработки, основанную «на потоках реактивного программирования» (не знаю что это). Рекламируется как API-first система с интерфейсами Siren hypermedia. Любое устройство представляется, как набор API REST, и связывается с облачными сервисами, где имеются инструменты визуализации и поддержки машинной аналитики Splunk. Платформа поддерживает любые Linux-платки и Arduino. Использует Heroku для создания геораспределенных сетей, что тоже звучит очень круто.
Насколько мне известно, работы по созданию IoT-платформ в РФ идут днем и ночью. Тысячи энтузиастов перерабатывают гигабайты открытого исходного кода для создания систем или «умного дома», или для «сбора данных со счетчиков».
На большее фантазии не хватает.
Впрочем, если вы знаете российские хорошие годные проекты — напишите мне. Я сделаю обзор.
Пока же покажу одну систему, которую вполне можно назвать IoT-платформой — это iRidium Mobile (нет, не спутниковая система связи) из Нижнего Тагила. Земляки.
Это как раз платформа для управления «умным домом». По сути, это некий «облачный хаб», который умеет преобразовывать массу IoT-протоколов и сводить их к «порталу управления». Если еще понятнее — инсталляторы «умных домов», а также «умных зданий» и прочих систем интернет-автоматизации экономят массу времени, денег и усилий на разработке пользовательских интерфейсов и интеграции кучи всяких протоколов и данных. Можно подобрать соответствующие датчики и/или исполнительные устройства, подключить их «по инструкции», а все остальное отдать iRidium.
Где уже готовы интерфейсы — нужно только перетащить мышкой в нужное место и поставить «логотип заказчика». Ну, и чуток автоматизации там тоже есть — это же платформа.
Более подробно на сайте. Я же покажу несколько фоточек, которые с сайта и утянул:
Например, «умный корабль»:
Музей бронетехники:
Иди даже культовое сооружение «Храм Соломона» в Бразилии:
Что нам стоит IoT построить? Свой IoT на Amazon за один день / Habr
Начать разбираться с IoT (Internet of Things) платформами меня останавливало отсутствие IoT устройства, которое было бы совместимо по протоколам и способам доступа. Но когда я понял, что в качестве устройства можно использовать обыкновенный смартфон, то реализация работающей цепочки заняла один день.Возьмем смартфон, который будет эмулировать IoT устройство c датчиками температуры, влажности и давления и отсылать показания на Amazon IoT платформу. На платформе заведем правило, которое при поступлении данных от нашего устройства будет вызывать сервис нотификаций, который в свою очередь будет отсылать e-mail с полученными данными.
Такая система, конечно, несет мало практической ценности, но позволяет разобраться, как все устроено:
Почему именно IoT платформа от Amazon? И зачем вообще нужно понимать, как работают IoT платформы?
M2M – IoT — IoE
В мире становится всё больше IoT устройств, об этом говорят, как аналитические агентства, так и мировая статистика.
Мы и сами прекрасно видим, что все больше систем подключаются к интернету и управляются автоматически или людьми: умные дома, автомобили, носимые устройства. И сейчас уже говорят не просто об IoT, а о IoE (Internet of Everything), т.к. устройства которые подключаются к платформам используются не только в промышленных системах, но и людьми.
Поэтому нужно самим разбираться в принципах работы, хотя бы для того, чтобы понимать, как можно эффективно использовать свои устройства или какие есть ограничения и нюансы с безопасностью.
Почему Amazon?
Amazon создает сервисы с учетом мировых трендов и в результате получаются “универсальные” системы, основные принципы которых используют все производители. У облачной платформы есть еще больший плюс – это возможность самостоятельно развернуть систему за пару часов, не привлекая корпоративную IT службу и безопасность)
Почему смартфон, а не какой-нибудь IoT Starter Kit?
При внимательном рассмотрении смартфон хорошо эмулирует IoT устройство:
- В нём есть Linux, на котором можно запускать приложения;
- Есть мобильная связь с Интернет;
- С помощью программных средств можно эмулировать показания датчиков.
Т.е. работа с настоящим IoT устройством ничем не будет отличаться от работы со смартфоном, кроме использования специфичного SDK для получения показаний датчиков. Всё остальные коммуникации будут аналогичны.
Позвольте мне пропустить раздел со стандартами, аналитикой и маркетинговыми исследованиями – в конце статьи приведу несколько актуальных ссылок. Не терпится сделать что-нибудь интересное)
AWS IoT платформа
Amazon рисует достаточно наглядную схему своей платформы:
Тут в общем все понятно:
- (1) Есть устройства, которые взаимодействуют с IoT платформой с помощью SDK.
- (2) Устройства посылают сообщения, которые проверяются службой аутентификации и авторизации.
- (3) Сообщения приходят на Device Gateway, используя разные протоколы и далее попадают в обработчик правил (4.1) и копируются (4.2) на тени устройств (Device Shadows).
- (4.2) Device Shadows – это такие цифровые двойники, которые хранят текущие состояния устройств, которые всегда доступны приложениям. С другой стороны, при отсутствии связи с устройством Device Shadow выполняет управляющие команды от приложений и при восстановлении коннективности синхронизирует актуальное состояние с устройством.
- (4.1) Обработчик правил в зависимости от поступивших данных выполняет заранее определенные действия (5.1), например, сохраняет данные в DB, посылает SMS или e-mail нотификацию, вызывает HTTP API, отправляет данные в систему аналитики и т.п.
- (5.2) Приложения используют эти данные для контроля и управления устройствами с помощью AWS API (6)
- Информация о всех устройствах хранится на AWS IoT платформе (7).
Начинаем разбираться, схема немного усложняется:
Появляются:
Jobs – выполняют стандартные действия над устройствами, например устанавливают приложения, обновляют прошивки, производят перезагрузку устройств и т.п.
Topics – сущности MQTT протокола. Сообщения от IoT устройств посылаются в определенные топики.
IAM Roles – AWS пользователи, от имени которых выполняются правила и которые имеют доступ к необходимым AWS ресурсам.
Правила состоят из:
- Filter — фильтр сообщений для обработки. Задается в виде SQL запроса.
- Action — действие, которое надо выполнить.
- Role — одна или несколько IAM ролей.
Certificate – загружаются на IoT устройство, с их помощью происходит аутентификация устройств на AWS платформе. Состоят из:
- Cертификат устройства X.509
- Private key
- Корневой сертификат AWS платформы
Policy – к сертификатам прикрепляются политики, которые определяет какие действия можно совершать устройству. С помощью политик происходит авторизация устройств.
Детализируются AWS сервисы, на которые поступает информация с IoT платформы: Аналитика, DB, сервис нотификаций SNS.
Подключаем устройство
Я не буду полностью приводить инструкцию по подключению IoT устройства к Amazon платформе: Getting Started with AWS IoT. Но для понимания объёма задачи перечислю шаги, которые нужно сделать, чтобы схема заработала:
- Создаем на платформе устройство my-iot-dev
- Получаем сертификат устройства X.509, private key, public key
- Получаем корневой сертификат AWS платформы (Root CA for AWS IoT)
- Создаем политику my-iot-dev-policy. Для нашей демы разрешаем все действия: iot:*
- Прикрепляем политику к сертификату
- Прикрепляем сертификат к устройству
- В результате получили сертификат с устройством и политикой:
- Создаем правило. Правило будет вызывать сервис нотификаций AWS SNS (Simple Notification Service) для отправки e-mail. Поэтому сначала надо создать топик в AWS SNS (my-iot-dev-sns-topic):
- Теперь конфигурируем, что именно данный топик будет делать при получении данных. Для этого создаем подписку на топик (Subscribe to the Amazon SNS topic), вводим целевой e-mail адрес, дожидаемся проверочного письма, подтверждаем e-mail.
Теперь создаем само правило (my_iot_dev_rule), которое будет вызывать созданный топик:
- Filter: SELECT * FROM ‘my/dev-topic’ — фильтр срабатывает при получении любого сообщения в топике с именем ‘my/dev-topic’;
- Action: посылка сообщения в созданный заранее SNS топик “arn:aws:sns:eu-central-1:1219xxx34064:my-iot-dev-sns-topic”;
- IAM role: создаем роль my-dev-role с доступом к SNS топикам.
- Все логические сущности для нашего устройства созданы. Теперь можно протестировать, что теоретически схема работает. Для этого в AWS есть тестовое средство, позволяющее отправлять и получать сообщения аналогично реальным устройствам. Запускаем его, подписываемся на topic (my/dev-topic) и посылаем “Hello World!” сообщение:
- Проверяем, что пришел e-mail с сообщением “Hello World!” и делаем вывод, что схема работает.
Конфигурация смартфона
Настало время конфигурации IoT устройства, в роли которого будет выступать мой смартфон. Для этого используем инструкцию AWS SDK JavaScript. Чтобы превратить смартфон в IoT устройство надо:
- Скопировать на устройство: private key, X.509 и “Root CA for AWS” сертификаты;
- Установить Node.js и npm package manager;
- Установить AWS SDK;
- Установить и запустить тестовую программу.
В нашем случае все будет немного проще, т.к. сертификаты, AWS SDK и тестовую программу я положил на GitHub и можно просто клонировать репозиторий IoT-Sensors. Если кто-нибудь захочет использовать мою тестовую программу, то в каталог /IoT/certs надо будет положить свои сертификаты и в файле /server/src/services/IoT-AOI-Server прописать актуальный для устройства Rest API Endpoint:
device = deviceModule({
…
host: 'a2lqo1xxx4zydi-ats.iot.eu-central-1.amazonaws.com',
…
})
Rest API Endpoint берется из настроек устройства:
Если хочется попробовать что-то стандартное, то можно использовать тестовые программы из поставки AWS SDK.
Android — он тот же Linux, но со своими ограничениями, поэтому для запуска JS приложений надо установить специальный терминал, например, Termux.
Для начального освоения Termux есть ряд статей, например: Запуск NodeJS-приложения на Android. Но по большому счету после установки Termux нужно выполнить всего лишь несколько магических команд:
git clone https://github.com/AlexeySushkov/IoT-Sensors.git
Установка сервера
cd ~/IoT-Sensors/server
npm install
npm start
Если все прошло успешно, в терминале появится строка:
Server started on port: 8081
Вживую это выглядит так:
Установка клиента
cd ~/IoT-Sensors/client
npm install
npm run serve
Если все прошло успешно, в терминале появится строка:
App running at port: 8080
Далее в браузере смартфона вводим: http://localhost:8080
И на экране появится тестовое приложение:
Нажимаем кнопку “INIT DEV”. При этом происходит аутентификация и авторизация IoT устройства на AWS IoT платформе. При успешном выполнении статус становится “Init OK”.
Далее вводим значения показаний датчиков температуры, влажности и давления, например:
Temperature: 23
Humidity: 65
Pressure: 787
И нажимаем кнопку “SEND DATA”.
После этого приложение добавляет метку времени и посылает данные в виде MQTT сообщения в топик “my/dev-topic”. IoT платформа получает сообщение и активирует правило, которое посылает сообщение в сервис нотификаций AWS SNS, который посылает e-mail с полученными данными в JSON формате:
{"time":"Mon, 30 Sep 2019 13:54:52 GMT", "temperature":"23", "humidity":"65", "pressure":"787"}
Если сообщение послано успешно, то статус меняется на: “publish OK” и на почту приходит e-mail:
В AWS IoT платформе есть система мониторинга, которая показывает число соединений и сообщений от IoT устройств, статистику по протоколам, типам сообщений и т.п.:
Итак, теперь все работает по-настоящему!
Заключение
Мы построили маленький, но настоящий IoT, используя платформу от Amazon. Все платформы построены по одинаковым принципам, поэтому если встанет вопрос выбора IoT системы, то мы будем готовы задать следующие вопросы. И дальше, зная ответы от Amazon, сможем сделать выводы, насколько зрелая предлагается платформа:
Устройства
- Как устройства добавляются в системе?
- Как обеспечивается аутентификация и авторизация устройств?
- Происходит ли шифрование отправляемых на платформу данных?
Платформа
- Как защищены ключи и сертификаты на платформе?
- Как формируются правила?
- Какие действия могут выполнять правила?
- Как осуществляется мониторинг и управление устройствами?
- Есть ли тени (цифровые двойники) устройств на платформе?
- Какие отчеты и аналитика доступны?
Взаимодействие
- Какие протоколы для подключения устройств используются?
- Как осуществляется взаимодействие приложений с устройством?
- Как осуществляется тестирование логики взаимодействия?
Как и обещал, приведу несколько актуальных ссылок на стандарты и аналитику:
Стандарты IoT
Как ни удивительно, но гиганты стандартизации (ISO/IEC, IEEE, ITU-T) потеряли интерес к IoT после 2016 года. Они, конечно, что-то делают, но как-то без огонька). NIST тоже выпустил свое исследование Networks of ‘Things’, но после 2016 больше ничего интересного.
Лучше выглядят телекоммуникационные институты, что не удивительно, т.к. без коннективности IoT — это не IoT. TM-Forum под своим зонтиком собирает кейсы и проекты IoE & Digital Ecosystems, ETSI поступил проще и вступил в OneM2M.
И вот мы подходим к двум организациям, которые образовались относительно недавно, но уже определяют мировое направление развитие IoT:
OneM2M
OneM2M – это объединение организаций по стандартизации, телекоммуникационных компаний и производителей разных стран. У них в открытом доступе десятки актуальных документов, которые греют душу архитектурными моделями и функциональными схемами.
IIC
IIC (Industrial Internet Consortium) — организация по стандартизации индустриального интернета вещей — это, в основном, производители софта и устройств. Они также выпускают свои эталонные архитектуры. В общем, есть где посмотреть на идеальный мир! )
Аналитика по IoT
Все наши любимые аналитические агентства выпускают исследования по IoT, но не все есть в свободном доступе. Для примера приведу несколько актуальных статей, демонстрирующие оптимистичные прогнозы по развитию IoT:
It’s only the beginning!
Что такое интернет вещей? :: РБК Тренды
Интернет вещей у многих ассоциируется с «умным» домом. Благодаря технологиям и устройствам, разработанным компаниями Google, «Яндекс», Amazon, Apple и другими, пользователи могут совершать онлайн-покупки, регулировать температуру в комнате, включать свет и музыку, отдавая голосовые команды виртуальным помощникам. Вам больше не надо опасаться, что вы забыли выключить утюг или кран — достаточно нажать кнопку в смартфоне, и «умный» дом все исправит. Система наблюдения с помощью компьютерного зрения распознает всех, кто проходит мимо вашей квартиры, и сравнит изображения с базой полиции.
IoT имеет важное значение для бизнеса. Он позволяет компаниям автоматизировать процессы и снижать трудозатраты. Это сокращает объем отходов, улучшает качество предоставляемых услуг, удешевляет процесс производства и логистику.
IoT затрагивает все отрасли, включая здравоохранение, финансы, розничную торговлю и производство. Внедрение интернета вещей в электроэнергетике улучшает контролируемость подстанций и линий электропередачи за счет дистанционного мониторинга, а в здравоохранении позволяет перейти на новый уровень диагностики заболеваний. «Умные» устройства контролируют показатели здоровья пациента. Это снижает риски внеплановой госпитализации и сокращает нагрузку на стационары. В сельском хозяйстве «умные» фермы и теплицы сами дозируют удобрения и воду — это увеличивает урожайность, улучшает качество продукции (растений и мяса), снижает расход топлива для сельскохозяйственной техники. Внедрение IoT в логистике сокращает затраты на грузоперевозки, повышает прозрачность перевозок и минимизирует влияние человеческого фактора. А удаленный мониторинг подключенного к интернету автотранспорта позволяет сократить расходы за счет оптимизации его обслуживания.
IoT активно внедряют нефтегазовые и горнодобывающие отрасли, чтобы оптимизировать производство и продажи. Например, применение углубленной аналитики по буровым скважинам помогает нефтегазовой промышленности увеличить объемы добычи на уже отработанных месторождениях.
Интернет вещей в транспорте — это сам транспорт, электронные табло, навигаторы, системы безопасности, камеры наблюдения, которые взаимодействуют между собой. Все эти данные люди могут отследить с помощью мобильных приложений. В некоторых больших городах действуют «умные» парковки: они оснащены специальными датчиками, которые передают информацию о свободных местах на специальный сервер. А водители могут отслеживать эту информацию через приложение.
В автомобилестроении интернет вещей позволяет, например, регулировать температуру и давление в шинах, рассчитывать время до следующего техосмотра, оптимизировать расход топлива, настроить сигнализацию или установить предел скорости автомобиля.