Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Tecnología de Internet de las cosas

Uso de trabajos de AWS para actualizar y configurar dispositivos de IoT

Amazon Web Services (AWS) es uno de los entornos de marco más populares para Internet de las cosas (IoT) junto con Microsoft Azure y Google Cloud IoT. Los dispositivos inteligentes se conectan al marco a través de Internet e interactúan con él mediante el protocolo MQTT. Además de interactuar con los dispositivos, el marco también brinda grandes oportunidades para el almacenamiento y procesamiento de datos, la representación de datos a un usuario, el análisis de datos (incluidos los métodos de inteligencia artificial), el control de acceso con un poderoso sistema de privilegios y mucho más.

Para almacenar datos, el entorno de AWS proporciona (además de diferentes DBMS relacionales y no relacionales) un sistema de almacenamiento de archivos jerárquico basado en la nube llamado Simple Storage Service (S3). Cada archivo en el almacenamiento S3 puede tener un localizador de recursos universal (URL), accesible desde el exterior. En este caso, se puede acceder al archivo a través de un navegador web con los privilegios de acceso adecuados. Si el contenido del archivo es una página HTML, entonces, con este archivo, un usuario interactivo puede acceder tanto a las opciones del marco de AWS como a los dispositivos inteligentes conectados a él. Las capacidades de esta página están especificadas por el código JavaScript que tiene dentro (este código puede activar funciones de las interfaces de programación de aplicaciones (API) del marco en su conjunto y sus componentes separados).

Funciones Lambda

Además de las páginas web, el código del programa en el entorno del marco de AWS se puede almacenar como funciones lambda. Estos son fragmentos de código con nombre especiales, escritos en uno de los siguientes lenguajes:Python, Java, C # o Node.Js. Se almacenan en la nube y se invocan en determinados eventos. Un evento puede ser iniciado por una página web (como llamar a una determinada API REST HTTP en una determinada URL), por otra función lambda o por un dispositivo inteligente (mediante el envío de un mensaje MQTT de cierto tipo). En todos estos casos, los eventos pueden tener parámetros. Las funciones de Lambda se utilizan como middleware para la interacción entre dispositivos inteligentes, recursos de AWS (por ejemplo, bases de datos) y las páginas web con las que el usuario interactúa directamente (Figura 1).

haz clic para ampliar la imagen

Figura 1. Arquitectura de la interacción de los componentes de AWS (Fuente:Auriga)

Existen límites estrictos para las lambdas de AWS, por ejemplo, el tiempo de ejecución para manejar una sola solicitud es limitado, la cantidad de memoria que una lambda puede usar cuando maneja una sola solicitud es limitada. Si se excede algún límite, se aborta la ejecución de la lambda. Estos límites los configura el usuario al crear la lambda, pero no pueden exceder ciertos valores.

Un dispositivo de IoT se conecta a la nube mediante el protocolo TCP, que proporciona integridad de datos y almacenamiento en búfer; en el caso de una conexión lenta, el protocolo se encarga de acumular datos en el lado de envío y de empujarlos a través de la tubería cuando sea posible. Además, un protocolo AWS sobre TCP se encarga de restablecer la conexión TCP de forma persistente en caso de pérdida de la conexión.

Sin embargo, los problemas de conectividad entre un dispositivo IoT y la nube normalmente no afectan a las lambdas debido a la naturaleza unidireccional específica del protocolo MQTT. Cuando se comunica con un dispositivo de IoT, una lambda simplemente envía un mensaje MQTT y no espera una respuesta; si llega la respuesta y cuando llegue, es responsabilidad de una función lambda diferente manejarla y enviar otro mensaje MQTT al dispositivo IoT, si es necesario.

Trabajos de AWS

Uno de los componentes del marco de AWS es el servicio de trabajos (AWS Jobs). Se utiliza para crear y ejecutar acciones de larga duración (trabajos) en uno o varios dispositivos IoT conectados a AWS y para administrar estos trabajos. En comparación con otros servicios de AWS, el servicio de trabajos de AWS ha aparecido recientemente.

El acceso al servicio de trabajos de AWS se proporciona a través de la consola de programación y también mediante programación mediante el conjunto de funciones de la API.

El propio dispositivo inteligente puede utilizar un determinado subconjunto de estas funciones (se puede invocar enviando mensajes MQTT). Las funciones accesibles a través del protocolo MQTT ejecutan las acciones necesarias para acceder a los trabajos y sus parámetros desde el lado del dispositivo:GetPendingJobExecutions, StartNextPendingJobExecution, UpdateJobExecution, DescribeJobExecution, etc.

Otras funciones se definen sobre el protocolo HTTPS y están diseñadas para ser llamadas desde el código JavaScript en las páginas web, desde el código del programa de las funciones lambda y por los usuarios en el modo interactivo. Estas funciones se utilizan principalmente para la creación y eliminación de trabajos y la gestión de ejecución de trabajos:CreateJob, DeleteJob, DescribeJob, ListJobs, ListJobExecutionsForThing, etc.

En la terminología de trabajos de AWS, la información principal sobre un trabajo se almacena en su documento de trabajo. Este es un documento JSON que se pasa del marco al dispositivo de destino y describe lo que se debe hacer. Normalmente, un documento de trabajo incluye el nombre de la operación y una URL (o URL) que se refiere a la ubicación de los parámetros del trabajo de datos.

Esta URL puede ser "firmada previamente" por un usuario de AWS. En este caso, la URL permite el acceso a un determinado objeto para el dispositivo inteligente con los privilegios del usuario que lo ha firmado previamente (para que el dispositivo pueda tener acceso a los datos a los que normalmente no puede acceder). Las URL firmadas previamente tienen una vida útil limitada y caducan una vez finalizada esa vida, lo que hace que el objeto vuelva a ser inaccesible.

Se puede crear un documento de trabajo sobre la marcha durante la creación de un trabajo o se puede almacenar como un archivo en el almacenamiento de archivos S3 del marco de AWS. Se puede especificar un enlace a este archivo durante la creación del trabajo.

Otros atributos del trabajo incluyen los siguientes:

Cuando se ejecuta un trabajo en un dispositivo específico, tiene un estado. El marco define un conjunto limitado de estados:QUEUED, IN_PROGRESS, FAILED, SUCCESS, CANCELED, REJECTED, REMOVED. El estado actual se cambia por una solicitud del dispositivo (por ejemplo, llamando a la función UpdateJobExecution) o cuando un usuario llama a una de las funciones de administración de trabajos (por ejemplo, cancela el trabajo usando la función CancelJob). Normalmente, el estado de ejecución del trabajo es IN_PROGRESS mientras el dispositivo está ejecutando el trabajo, y se convierte en SUCCESS o FAILED después de que el dispositivo completa el trabajo.

El diagrama de estado para la ejecución del trabajo se muestra en la Fig. 2 (aquí, las transiciones iniciadas por el dispositivo se muestran en azul y las iniciadas por otros componentes de AWS se muestran en verde).

haz clic para ampliar la imagen

Figura 2. Diagrama de estados durante la ejecución de trabajos de AWS (Fuente:Auriga)


Tecnología de Internet de las cosas

  1. Los procesadores abordan la convergencia de IoT y AI
  2. IoT proporciona beneficios en todo el mundo
  3. Ajustar y olvidar:la amenaza que representa el IoT no configurado
  4. Garantizar la seguridad cibernética y la privacidad en la adopción de IoT
  5. El tráfico de IoT en la empresa está aumentando, al igual que las amenazas
  6. 7 consejos esenciales para mantener su red de IoT en casa activa y segura
  7. La importancia de $ 6 billones de los estándares y regulaciones de seguridad en la era de IoT
  8. Mitigar los riesgos cibernéticos de IoT y encontrar soluciones
  9. Uso de IoT para impulsar industrias y respaldar la economía en general
  10. Hacer que Memphis sea "inteligente":visibilidad, control y seguridad para dispositivos de IoT
  11. IoT y ciberseguridad