Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Интернет вещей

Использование заданий AWS для обновления и настройки устройств IoT

Amazon Web Services (AWS) - одна из самых популярных инфраструктурных сред для Интернета вещей (IoT) наряду с Microsoft Azure и Google Cloud IoT. Смарт-устройства подключаются к фреймворку через Интернет и взаимодействуют с ним по протоколу MQTT. Помимо взаимодействия с устройствами, фреймворк также предоставляет большие возможности для хранения и обработки данных, представления данных пользователю, анализа данных (включая методы искусственного интеллекта), контроля доступа с мощной системой привилегий и многого другого.

Для хранения данных среда AWS предоставляет (помимо различных реляционных и нереляционных СУБД) облачную иерархическую систему хранения файлов под названием Simple Storage Service (S3). Каждый файл в хранилище S3 может иметь универсальный указатель ресурсов (URL), доступный извне. В этом случае к файлу можно получить доступ через веб-браузер с соответствующими правами доступа. Если содержимое файла представляет собой HTML-страницу, то с помощью этого файла интерактивный пользователь может получить доступ как к параметрам инфраструктуры AWS, так и к подключенным к нему интеллектуальным устройствам. Возможности этой страницы определяются кодом JavaScript, который она имеет внутри (этот код может активировать функции интерфейсов прикладного программирования (API) фреймворка в целом и его отдельных компонентов).

Лямбда-функции

Помимо веб-страниц, программный код в среде фреймворка AWS может храниться как лямбда-функции. Это специальные именованные фрагменты кода, написанные на одном из следующих языков:Python, Java, C # или Node.Js. Они хранятся в облаке и вызываются при определенных событиях. Событие может быть инициировано веб-страницей (например, вызов определенного HTTP REST API по определенному URL-адресу), другой лямбда-функцией или интеллектуальным устройством (путем отправки сообщения MQTT определенного типа). Во всех этих случаях события могут иметь параметры. Лямбда-функции используются в качестве промежуточного программного обеспечения для взаимодействия между интеллектуальными устройствами, ресурсами AWS (например, базами данных) и веб-страницами, с которыми пользователь напрямую взаимодействует (рис. 1).

щелкните, чтобы увеличить изображение

Рисунок 1. Архитектура взаимодействия компонентов AWS (Источник:Auriga)

Для лямбда-выражений AWS существуют жесткие ограничения, например, время выполнения обработки одного запроса ограничено, объем памяти, который лямбда-выражение может использовать при обработке одного запроса, ограничен. Если какой-либо предел превышен, выполнение лямбды прерывается. Эти ограничения настраиваются пользователем при создании лямбда-выражения, но не могут превышать определенные значения.

Устройство IoT подключается к облаку с помощью протокола TCP, который обеспечивает целостность и буферизацию данных; в случае медленного соединения протокол заботится о накоплении данных на отправляющей стороне и проталкивании их по конвейеру, когда это становится возможным. Кроме того, протокол AWS поверх TCP обеспечивает постоянное восстановление TCP-соединения в случае потери соединения.

Однако проблемы с подключением между устройством IoT и облаком обычно не влияют на лямбда-выражения из-за особой однонаправленности протокола MQTT. При взаимодействии с устройством IoT лямбда просто отправляет сообщение MQTT и не ждет ответа; если и когда приходит ответ, за его обработку и отправку другого сообщения MQTT на устройство IoT отвечает другая лямбда-функция.

Вакансии AWS

Одним из компонентов инфраструктуры AWS является служба заданий (AWS Jobs). Он используется для создания и выполнения долгосрочных действий (заданий) на одном или нескольких устройствах IoT, подключенных к AWS, а также для управления этими заданиями. По сравнению с другими сервисами AWS сервис AWS Jobs появился сравнительно недавно.

Доступ к сервису AWS Jobs предоставляется через консоль программирования, а также программно с использованием набора функций API.

Определенное подмножество этих функций может использоваться самим интеллектуальным устройством (может быть вызвано путем отправки сообщений MQTT). Функции, доступные по протоколу MQTT, выполняют действия, необходимые для доступа к заданиям и их параметрам со стороны устройства:GetPendingJobExecutions, StartNextPendingJobExecution, UpdateJobExecution, DescribeJobExecution и т. Д.

Другие функции определены по протоколу HTTPS и предназначены для вызова из кода JavaScript на веб-страницах, из программного кода лямбда-функций и пользователями в интерактивном режиме. Эти функции используются в основном для создания и удаления заданий и управления выполнением заданий:CreateJob, DeleteJob, DescribeJob, ListJobs, ListJobExecutionsForThing и т. Д.

В терминологии AWS Jobs основная информация о вакансии хранится в ее рабочем документе. Это документ JSON, который передается из фреймворка на целевое устройство и описывает, что следует делать. Обычно документ задания включает название операции и URL-адрес (или URL-адреса), указывающий на расположение параметров задания данных.

Этот URL-адрес может быть «предварительно подписан» пользователем AWS. В этом случае URL-адрес разрешает доступ к определенному объекту для интеллектуального устройства с привилегиями пользователя, который его предварительно подписал (чтобы устройство могло иметь доступ к данным, к которым оно обычно не может получить доступ). Предварительно подписанные URL-адреса имеют ограниченный срок действия и истекают по истечении этого срока, в результате чего объект снова становится недоступным.

Рабочий документ может быть создан на лету во время создания задания или может быть сохранен в виде файла в файловом хранилище S3 платформы AWS. Ссылку на этот файл можно указать при создании задания.

Другие атрибуты вакансии включают следующее:

Когда задание выполняется на определенном устройстве, оно имеет состояние. Ограниченный набор состояний определяется структурой:QUEUED, IN_PROGRESS, FAILED, SUCCESS, CANCELED, REJECTED, REMOVED. Текущее состояние изменяется по запросу от устройства (например, при вызове функции UpdateJobExecution) или когда пользователь вызывает одну из функций управления заданиями (например, отменяет задание с помощью функции CancelJob). Обычно состояние выполнения задания - IN_PROGRESS, пока устройство выполняет задание, и становится УСПЕШНО или НЕПОЛАДКИ после того, как устройство завершает задание.

Диаграмма состояний для выполнения задания показана на рис. 2 (здесь переходы, инициированные устройством, показаны синим цветом, а переходы, инициированные другими компонентами AWS, показаны зеленым).

щелкните, чтобы увеличить изображение

Рисунок 2. Диаграмма состояний во время выполнения заданий AWS (Источник:Auriga)


Интернет вещей

  1. Процессоры обращаются к конвергенции IoT и AI
  2. Интернет вещей, обеспечивающий всемирные преимущества
  3. Установить и забыть:угроза, исходящая от ненастроенного Интернета вещей
  4. Обеспечение кибербезопасности и конфиденциальности при внедрении Интернета вещей
  5. Трафик Интернета вещей на предприятии растет, как и угрозы
  6. 7 важных советов, которые помогут вашей сети IoT оставаться в рабочем состоянии и обеспечивать безопасность
  7. 6 трлн. важность стандартов безопасности и регулирования в эпоху Интернета вещей
  8. Снижение киберрисков Интернета вещей и поиск решений
  9. Использование Интернета вещей для развития отраслей и поддержки экономики в целом
  10. Делаем Мемфис «умным»:видимость, контроль и безопасность для устройств Интернета вещей