Skip to content

Instantly share code, notes, and snippets.

@jdnichollsc
Last active May 2, 2019 01:38
Show Gist options
  • Save jdnichollsc/2b48c1306cd4739367f0b9c12a5292b5 to your computer and use it in GitHub Desktop.
Save jdnichollsc/2b48c1306cd4739367f0b9c12a5292b5 to your computer and use it in GitHub Desktop.
IoT y Azure

Construir un pipeline de todas las etapas que debe pasar un mensaje antes de llegar al IoT Hub. Entre su utilidad se encuentra:

  • Facilitar el proceso de desarrollo para conectar legacy devices.
  • Reducir costos de ancho de banda.
  • Ayudar en la aplicación de políticas de seguridad y privacidad.
  • Logueo, telemetría, inserción de base de datos, manejo de errores, etc.

IoT Hub (PaaS)

Establecer una comunicación bidireccional de manera segura entre miles de millones de dispositivos. Mediante los datos de telemetría se busca obtener el estado de los dispositivos y tomar decisiones de manera temprana. Enviar mensajes (comandos y notificaciones) cloud-to-device de manera confiable. Rastrear la entrega de mensajes con acuses de confirmación (datos que avalan la confirmación de entrega del mensaje).

  • C
  • Node.js
  • Java
  • .NET
  • Python
  • REST services

Protocolos

Se pueden usar protocolos estándar o personalizados, como por ejemplo:

  • HTTP
  • AMQP (Advanced Message Queuing Protocol) => Protocolo a nivel de cable, wire level protocol
  • MQTT (Message Queue Telemetry Transport) => Publicación/Suscripción mediante un message broker para conexiones remotas y ancho de banda limitado.

Seguridad

  • Autenticación por dispositivo.
  • Identidades y credenciales individuales para cada dispositivo conectado para garantizar confidencialidad.
  • Revocar derechos de acceso por dispositivo para garantizar integridad.

Administrar los dispositivos desde el portal de Azure, para remotamente mantener y actualizar los devices. Salvar tiempo y costos de mantener una solución de dispositivos personalizada.

IoT Suite

Provee implementaciones E2E mediante una solución utilizando servicios de Azure como arquitectura para escenarios específicos, por ejemplo:

  • Monitoreo remoto para analizar el estado de los devices.
  • Mantenimiento predictivo para anticipar necesidades y evitar tiempos muertos de los servicios.

Capabilities

  • Device Connectivity & Management
  • Gateway Edge Intelligence
  • Data Ingestion and Command & Control
  • Stream Processing & Predictive Analytics
  • Workflow Automation and Integration
  • Dashboards and Visualization
  • Preconfigured Solutions
    • Remote Monitoring
    • Predictive Maintenance (Machine Learning)

Servicios

  • IoT Hub
  • Notification Hubs
  • Stream Analytics
  • Machine Learning
  • Power BI

IoT Hub

  • Particiones: Tuberías para disminuir el tiempo de latencia.

  • Grupo de recurso: Organizar y administrar mis servicios (Permisos para asignar usuarios).

  • Directivas de acceso compartido: Las políticas que podemos configurar para asignar permisos a los dispositivos.

  • Using iothub-explorer (get the connection string from the device identity registry): HostName=iothubtessel.azure-devices.net;DeviceId=tessel;SharedAccessKey=TY07uK2Y2DG4s+cqGXlD8HMYIxA0KmjH/TOUfVAMClA=

  • Azure IoT Hub implementa el modelo de comunicación asistida por servicio para mediar las interacciones:  Establecer rutas de acceso de comunicación bidireccional de confianza entre un sistema de control y los devices.

  • Dispositivos inteligentes ya están certificados por Azure.

  • El gateway se puede utilizar para dispositivos legacy (Baja latencia, personalización de protocolo, etc)

  • Cold-path analytics (Análisis de la información pero no en tiempo real) Almacenar la visualización para posteriormente procesarla (Lectura)

  • Hot Path analytics: Analizar la información en tiempo real y generar valor para el negocio (mostrar alertas y/o acciones).

  • Hot Path Business Logic Integrar soluciones de negocio, con otros sistemas externos que pueda tener la compañía.

IoT Hub endpoints (Puede escalar por unidades)

  • Device twins: Representación virtual del dispositivo (Con todas sus propiedades, configuración, software, firma, etc) que modifica el IoT Hub para posteriormente sincronizar la información con el dispositivo (Para evitar cualquier eventualidad como que se encuentre apagado, se vaya la luz, etc)
  • Soporta métodos directos para ejecutar rutinas, como también métodos para subir archivos.
  • Luego están los endpoints del IoT Hub para conectarse con el Stream Analytics, una base de datos o a donde quiera enviar la información.
  • Msg endpoint: Receive file notification, device twins endpoint, direct methods endpoint.

Se admite MQTT, MQTT sobre WebSockets, AMQP, AMQP sobre WebSockets y HTTP. Además, IoT Hub funciona con la puerta de enlace de protocolos de IoT de Azure, una implementación de puerta de enlace de protocolos personalizable para admitir protocolos personalizados.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment