Arquitectura de Referencia de una Plataforma IoT

En este post vamos a tratar de definir una Arquitectura de Referencia para una Plataforma IoT, esta arquitectura pretende ser neutral respecto a industrias y casos de uso y también neutral respecto a aproximaciones concretas para modelar entidades, dispositivos, metadatos,…

Una Arquitectura de Referencia se debe guiar sobre estos principios:

  • Heterogeneidad: el modelo propuesto debe acomodarse a una gran variedad de escenarios, entornos, dispositivos, estándares.
  • Seguridad: en el mundo IoT y su conexión entre los mundos digital y físico es fundamental construir sistemas seguros. El modelo de referencia contempla seguridad y privacidad entre áreas incluyendo identidad de los dispositivos, autenticación, autorización, protección de datos,…
  • Despliegue: debe permitir lanzar rápidamente pilotos con pocos dispositivos y escalar hasta soportar millones de dispositivos conectados
  • Flexibilidad: las necesidades heterogéneas del mercado IoT requiere la composición de soluciones con diferentes componentes y servicios. El modelo de referencia está creado bajo el principio de poder componer soluciones en base a componentes individuales.

En la figura se muestran los Building Blocks de esta Arquitectura de Referencia de Plataforma IoT:

Al tratarse de una arquitectura abstracta esta Arquitectura debe ser capaz de servir de “referencia” para mapear el mayor número de Plataformas IoT.

Con ese objetivo en futuros posts mapearemos varias plataformas sobre esta Arquitectura, entre ellas Amazon AWS IoT Platform, Azure IoT Suite, Watson IoT Platform, Thingworx y Sofia2 IoT Platform.

En esta primera entrega describiremos los Building Blocks que la componen:


Client Connector: representa un dispositivo conectando con la plataforma IoT a través del módulo Device Gateway. Típicamente este componente debe ofrecer:

  • Un canal seguro de comunicación
  • Conectividad directa
  • Soporte de protocolos estándares de comunicación con la plataforma (REST, MQTT,…)
  • Comunicación bidireccional con la plataforma (que desde plataforma se pueda enviar información al cliente sin necesidad de que este haga una petición

SDKs: conjunto de componentes en diferentes lenguajes y plataformas para simplificar la conectividad con la Plataforma abstrayendo los detalles de los protocolos subyacentes. Estas librerías pueden usarse directamente embebidos en una aplicación y como agentes.


Device Server Gateway: es la parte de la plataforma que habilita la comunicación remota desdey hacia dispositivos. Puede ser accesible por Internet, en una VPN o en conexiones privadas. Gestiona todos los aspectos de la comunicación, incluyendo:

  • Patrón de comunicación
  • Protocolo de comunicación
  • Autenticación y autorización del dispositivo conectado

Permite monitorizar y diagnosticar las conexiones de los dispositivos así como establecer cuotas y recolectar datos.


Stream Processing: una vez que el flujo de datos e el sistema ha pasado el Device Server Gateway llega a este componente que facilita la ejecución de reglas online sobre esta información.

Permite típicamente:

  • Creación de flujos y reglas de forma visual y sencilla
  • Rutear los datos hacia diferentes destinos
  • Tomar acciones en función del contenido
  • Tratamiento de procesamiento de eventos complejos.

Storage: almacena los datos operacionales enviados por los dispositivos, este repositorio está separado del Device Registry (donde se almacena el estado del Device). Suele almacenar 2 tipos de información/patrones de acceso:

  • un stream de eventos enviados por el dispositivo e
  • Información histórica y puede que agregada sobre esta información.

Debe soportar consultas geográficas sobre esta información.


Device Registry: es un repositorio que permite definir y registrar los dispositivos, así como los atributos, metadatos y configuración que manejan un dispositivo. Esta información debe poder tener un esquema para definir cada dispositivo.


Analytics este bloque permite realizar tratamiento analítico sobre la información gestionada por la plataforma, tanto en tiempo real como batch.

Típicamente permite:

  • La ejecución de algoritmos de Machine Learning
  • Visualización de la información en formar de KPIs sobre Dashboards
  • Herramientas e interfaces para que los científicos de datos puedan trabajar con esta información de forma integrada.

Management: la Plataforma permite gestionar todos los bloques de forma unificada, desde la definición y provisión de dispositivos, autenticación, reglas, despliegue,…ofrece también cuadros de mando y KPIs para visualizar el estado de los dispositivos, y simplifica el desarrollo de aplicaciones de negocio o de visualización. Típicamente esta Capa se ofrece con un interfaz HTML5 + API REST.

 


Security este componente se encarga de todos los aspectos de seguridad:

  • Autenticación y autorización del dispositivo conectado (solicitado por Device Server Gateway)
  • Seguridad a nivel de canal
  • Autorización a usuarios según su rol: alta dispositivos, reglas, creación de Apps, acceso a datos del dispositivo.

UX Support este bloque implementa el acceso a la visualización, bien de datos de dispositivos, resultados de procesos analíticos, alertas, notificaciones, geoposicionamiento,…También puede proveer o integrar dashboards interactivos y facilidades para el desarrollo de aplicaciones Web y móviles.


Backend Support: representa el soporte que ofrece la plataforma para el desarrollo de la lógica de negocio e la solución. Ofrece abstracciones de dispositivos, grupos, usuarios, roles, reglas de negocio, acciones,…también permite el acceso a toda la información de la plataforma, normalmente a través de APIS REST.


Business Connector: este componente se encarga de la integración el entorno IoT con sistemas de negocio como CRMs, ERPs,… por ejemplo para acceder a bases de datos externas, perfiles de usuarios, planificaciones, sistemas Legacy,… la plataforma ofrece conectores y facilidades para el desarrollo de conectores con estos sistemas.


Extension Points: este bloque es opcional, permite extender la plataforma en diferentes puntos, por ejemplo incluir nuevos protocolos de comunicación, nuevos conectores,…


 

Arquitectura de Referencia de una Plataforma IoT

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s