ЖУРНАЛ СТА №4/2019

Впервые протокол MQTT был опуб- ликован консорциумом OASIS (Organi- zation for the Advancement of Structured Information Standards – Организация по развитию стандартов структурирован- ной информации) в октябре 2014 г. Данный стандарт находится в открытом доступе [1]. В июне 2016 г. стандарт был признан Международной организацией по стан- дартизации (ISO). MQTT Version 3.1.1 был зарегистрирован техническим ко- митетом по информационным техноло- гиям ISO (JTC1) под номером ISO/IEC 20922 [2]. При этом можно встретить такие на- звания протоколов: “SCADA protocol”, “WebSphere MQTT” (WMQTT) и «Про- токол устройства SCADAMQ Integrator» (MQIsdp), они являются старыми имена- ми протокола, который сейчас известен как MQ Telemetry Transport (MQTT). Безопасность в протоколе можно обеспечить несколькими способами. Вы можете передать имя пользователя и па- роль с пакетом MQTT v3.1 протокола. Шифрование в сети может быть реали- зовано с помощью SSL, независимо от самого протокола MQTT (стоит отме- тить, что SSL не является самым лёгким из протоколов и действительно добав- ляет значительнуюнагрузку на сеть). До- полнительная безопасность может быть обеспечена приложением, шифрующим данные, которые оно отправляет и полу- чает, но оно не встроено в протокол. Протокол MQTT основан на принци- пе «издатель–подписчик». MQTT-клиент – это устройство, осна- щённое микроконтроллером, поддер- живающим стек TCP/IP. Клиентские библиотеки MQTT доступны для боль- шого числа платформ и языков про- граммирования, например, Android, Ar- duino, C, C++, C#, Go, iOS, Java, JavaScript, NET [3]. Брокер является основным элемен- том системы «издатель–подписчик». Он отвечает за приём всех сообщений, их фильтрацию, принятие решения о том, кому интересны эти сообщения, и, в ко- нечном итоге, за пересылку сообщений всем клиентам-подписчикам [4]. Упрощённый процесс обмена инфор- мацией представлен на рис. 1. Издатель передаёт сообщение с дан- ными (например, информацию с датчи- ков температуры) брокеру, указывая те- му (Topic), к которой эти данные отно- сятся (например, Temp). Брокер анали- зирует, какие из подписчиков имеют подписку на определённые темы, в дан- ном случае – на тему Temp. Подписчи- кам, которые подписаны на тему Temp, брокером будет отправлено сообщение с информацией от датчиков температуры. Данная технология позволяет сокра- тить энергозатраты на связь и объём трафика. П РОГРАММНАЯ ПЛАТФОРМА N ODE . JS Платформу Node.js разработал Райан Даль в 2009 году. В результате своих ис- следований серверных веб-компонентов он установил, что наиболее продуктив- ными будут событийно-ориентирован- ные системы вместо ныне существую- щих традиционных моделей параллелиз- ма на основе потоков. Данная модель обладает следующими положительными свойствами: простота, низкие наклад- ные расходы (по сравнению с идеологи- ей «один поток на каждое соединение») и лучшее быстродействие. Платформа Node.js предназначена для создания мас- штабируемых сетевых приложений, это среда выполнения JavaScript с асинхрон- ным управлением событиями. Node, или Node.js – это программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узко- специализированного языка в язык об- щего назначения. Node.js добавляет воз- можность JavaScript взаимодействовать с устройствами ввода-вывода через свой интерфейс API (написанный на C++), подключать другие внешние библиоте- ки, написанные на разных языках, обес- печивая вызовы к ним из JavaScript- кода. Node.js применяется преимуще- ственно на сервере, выполняя роль веб- сервера, но есть возможность разраба- тывать на Node.js и оконные приложе- ния для ПК (при помощи NW.js , AppJS или Electron для Linux, Windows и macOS) и даже программировать мик- роконтроллеры (например, tessel и es- pruino). В основе Node.js лежит собы- тийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом [5]. N ODE -RED Node-RED– это мощный инструмент для создания приложений Интернета вещей с акцентом на упрощение соеди- нения блоков кода для выполнения за- дач. Он использует подход визуального программирования, который позволяет разработчику соединять предопределён- ные блоки кода, известные как узлы, для выполнения задачи. Связанные уз- лы, обычно комбинация входных узлов, узлов обработки и выходных узлов, со- единённые вместе, составляют потоки. Первоначально разработанный как проект с открытым исходным кодом в IBM в конце 2013 года, чтобы удовле- творить потребность в быстром под- ключении оборудования и устройств к веб-сервисам и другому программному обеспечению, как своего рода клей для IoT, он быстро превратился в инстру- мент программирования IoT общего назначения. Важно отметить, что Node- RED быстро накопил значительную и растущую пользовательскую базу, а так- же развил активное сообщество разра- ботчиков, которые предоставляют но- вые узлы, позволяющие программистам повторно использовать код Node-RED для самых разнообразных задач. ОБ ЗОР / Т Е Х НОЛОГ ИИ СТА 4/2019 25 www.cta.ru Брокер Издатель Издатель Подписчик Подписчик MQTT Рис. 1. Схема передачи информации по принципу «издатель–подписчик» Рис. 2. Рабочее окно Node-RED

RkJQdWJsaXNoZXIy MTQ4NjUy