AVSYSTEM
AVSYSTEM

¿Para qué está diseñado el LwM2M?

Lightweight M2M (LwM2M) es un estándar creado por OMA SpecWorks que especifica mecanismos de gestión de dispositivos, telemetría y habilitación de servicios diseñados inicialmente para dispositivos con capacidades limitadas de procesamiento y almacenamiento (comúnmente denominados dispositivos con recursos limitados). La tecnología funciona muy bien en redes potencialmente inestables y con poco ancho de banda, como las celulares, así como en redes de radio LPWA.

¿Cómo funciona?

En LwM2M, el intercambio de información se produce entre el Cliente LwM2M (por ejemplo, el dispositivo IoT) y el Servidor LwM2M (por ejemplo, la plataforma IoT) o el Servidor LwM2M Bootstrap. Existen cuatro interfaces que rigen la comunicación:

  • Bootstrap
  • Registro de clientes
  • Gestión de dispositivos y habilitación de servicios
  • Reporte de Información
La Interfaz Bootstrap define las herramientas para que el Servidor Bootstrap LwM2M aprovisione al Cliente LwM2M con la información inicial necesaria para "registrarse" con el Servidor LwM2M. Una vez que el Cliente ha sido aprovisionado, puede informar al Servidor LwM2M sobre su presencia y realizar el registro a través de la segunda interfaz (Registro de Cliente). Una vez que el registro del cliente se ha realizado correctamente, se pueden utilizar las dos interfaces restantes.

La Interfaz de Gestión de Dispositivos y Habilitación de Servicios es donde se produce la gestión real de los dispositivos. Utilizando operaciones definidas en el protocolo como "Leer", "Escribir", "Ejecutar", se puede acceder a los datos almacenados en los recursos del Cliente LwM2M.
Finalmente, Information Reporting - la última interfaz, que permite al Servidor LwM2M recibir automáticamente actualizaciones periódicas sobre los recursos seleccionados del Cliente LwM2M. Esto se puede utilizar para supervisar de forma proactiva los valores de ciertos parámetros y ajustar los umbrales para adaptarse a cada caso de uso específico, por dispositivo y en bloque.
crashcourse_lwm2m_1

¿Cómo se define el modelo de datos?

El modelo de datos de LwM2M está organizado en un árbol de tres niveles: Objetos, instancias de objetos y recursos. Los objetos se componen de instancias de objetos y las instancias de objetos se componen de recursos.
Cada nivel tiene su propio identificador numérico que forma una ruta. Por ejemplo, una ruta /0/1/2 se refiere al ID de recurso = 2 en el ID de instancia de objeto = 1 del ID de objeto = 1. La ruta también puede terminar en todo el árbol. La ruta también puede terminar en toda la Instancia del Objeto (/0/1) o incluso en todo el Objeto (/0).

Los recursos pueden representarse como determinados tipos de datos, como cadenas, enteros, booleanos o flotantes. Este modelo de datos tan bien definido garantiza la interoperabilidad incluso en entornos IoT complejos, en los que distintos tipos de dispositivos se comunican a través de muchos protocolos diferentes.

curso intensivo_lwm2m_2

¿Qué relación tiene CoAP con LwM2M?

Como ya se ha mencionado, LwM2M está diseñado para consumir el menor ancho de banda posible. Para hacerlo posible, utiliza el Protocolo de Aplicación Restringida (CoAP), (que funciona de forma similar al protocolo HTTP pero está especialmente diseñado para dispositivos con recursos limitados) que ayuda a los dispositivos LwM2M a comunicarse fácilmente con el Servidor LwM2M así como entre sí.

CoAP permite transmitir mensajes con poca sobrecarga: el tamaño mínimo de la cabecera es de sólo 4 bytes, lo que hace posible enviar contenido significativo dentro de datagramas UDP únicos y no fragmentados, incluso a través de enlaces con MTU bajas, como SMS.

¿Cómo se consigue la interoperabilidad?

Aunque LwM2M viene con algunos objetos y recursos ya definidos, no basta para proporcionar modelos de datos estructurados que permitan una comunicación eficiente a través de protocolos como CoAP. En respuesta a estas necesidades, el proyecto IPSO Smart Objects (que ahora también forma parte de OMA SpecWorks) pretende garantizar la interoperabilidad en la capa de aplicación creando y proporcionando un patrón de diseño común de objetos basados en LwM2M. La característica clave de los objetos inteligentes IPSO que los distingue dentro del modelo de datos LwM2M es que están diseñados para ser reutilizados y ajustados fácilmente a nuevos casos de uso.

Además, también existe la posibilidad de definir objetos propios con un editor especial proporcionado por OMA y registrarlos en OMNA (Open Mobile Naming Authority). A continuación, los objetos serán revisados por miembros individuales de OMA y añadidos al registro (si superan la evaluación).

¿Es fiable la comunicación en LwM2M?

El protocolo en su versión actual (1.1) admite varios enlaces de transporte, como UDP, TCP, SMS y LoRaWAN. Sin embargo, lo más importante es que Lightweight M2M define un modo de cola, un modo especial de funcionamiento en el que el dispositivo no está obligado a escuchar activamente los paquetes entrantes. El Modo Cola puede configurarse en los comandos Registrar y Actualizar, lo que significa que, por ejemplo, tras el comando Actualizar, el Cliente LwM2M sólo está obligado a escuchar los paquetes entrantes durante un periodo de tiempo limitado. Este modo es especialmente útil cuando no se puede acceder a un dispositivo en todo momento (ya sea debido a una red con pérdidas o simplemente para minimizar el consumo de energía).

curso intensivo_lwm2m_3

¿Es seguro LwM2M?

Sí, lo es.

La seguridad está basada en CoAP y utiliza DTLS (Datagram Transport Layer Security) o TLS (Transport Layer Security) como principales mecanismos de seguridad. DTLS/TLS implementa autenticación, confidencialidad e integridad de datos entre el Servidor LwM2M y el Cliente LwM2M junto con tres modos de seguridad:

  • certificados,
  • claves públicas raw,
  • claves precompartidas.

El Cliente LwM2M necesita disponer de las credenciales y la información de configuración obtenida durante el proceso de bootstrap. Una vez realizado el bootstrap, el Servidor LwM2M autentica al Cliente LwM2M permitiendo al Cliente LwM2M utilizar todas las características de seguridad soportadas por LwM2M.

¿Cuál es la diferencia entre LwM2M y MQTT?

curso intensivo_lwm2m_4

La distinción radica ya en el nivel jerárquico del protocolo. En el esquema de capas de la pila de protocolos, MQTT se sitúa en la misma capa que CoAP. LwM2M proporciona un modelo de datos estandarizado y una semántica de interfaz sobre la capa CoAP.

En cuanto a la comparación entre CoAP y MQTT, la diferencia se encuentra en los métodos de comunicación: CoAP proporciona una comunicación basada en peticiones y respuestas, mientras que MQTT se basa en un sistema de mensajería publish/subscribe. Sin embargo, al tratarse de un protocolo de capa inferior, cualquier aplicación de gestión o monitorización de dispositivos que utilice MQTT necesita definir su propia semántica sobre él. LwM2M se encarga de ello, pero utiliza CoAP como base.

¿Cuáles son las ventajas de utilizar LwM2M?

El estándar Lightweight Machine-to-Machine es realmente ligero. Permite gestionar dispositivos que tienen muy poca potencia a través de redes con un ancho de banda realmente bajo, al tiempo que es en sí mismo un estándar con una pila de tecnología muy sencilla y nada confusa. Los dispositivos que LwM2M está diseñado para gestionar incluyen sensores, microcontroladores, actuadores, etc., que a veces pueden estar instalados en un lugar de difícil acceso. Esto no cambia el hecho de que dichos dispositivos están realmente en la red y necesitan ser gestionados, asegurados, actualizados, monitorizados, etc.

En resumen, LwM2M responde a estas necesidades ofreciendo:

  • una pila de tecnología sencilla pero bien pensada y diseñada
  • capacidad para gestionar dispositivos con muy poca potencia a través de redes con un ancho de banda realmente bajo
  • muy poco consumo de ancho de banda con cargas útiles muy ligeras
  • gran seguridad basada en DTLS y TLS
  • mayor interoperabilidad gracias a un modelo de datos claramente definido
  • flexibilidad de dispositivos y redes y aplicabilidad a las necesidades rápidamente cambiantes del mercado de la IO
  • posibilidad de que el mercado de la IO avance hacia sectores en los que los dispositivos deben ser de bajo coste, bajo consumo, duración limitada de la red o de la batería, etc.
  • mejora del tiempo de comercialización: LwM2M está listo para su uso como solución plug-and-play
  • clientes y SDK de LwM2M de código abierto, de descarga y uso gratuitos.

¿Cuáles son algunas de las funciones de gestión de dispositivos más importantes de la última versión del protocolo LwM2M?

Operaciones compuestas como READ-COMPOSITE, WRITE-COMPOSITE y otras.

En la primera especificación, LwM2M utilizando CoAP utilizaba operaciones simples como READ, WRITE, EXECUTE, CREATE (y otras) basadas en métodos básicos utilizados por ejemplo en HTTP (GET, POST, PUT, DELETE). Sin embargo, en la última especificación LwM2M 1.1 se añaden nuevas operaciones a las ya existentes. Se trata de operaciones compuestas como READ-COMPOSITE o WRITE-COMPOSITE. La idea era ampliar los comandos básicos READ, WRITE y otros para permitir la agregación de operaciones en muchos objetos diferentes y enviar todos los parámetros adquiridos en una carga útil.

Operación SEND en la interfaz de notificación de información.

En lo que respecta a las operaciones, SEND es otra que mejora significativamente las capacidades de telemetría de LwM2M. En la especificación anterior, para que el Cliente LwM2M pudiera ser notificado de cualquier cambio en un determinado recurso, el Servidor LwM2M tenía que emitir primero una operación OBSERVE sobre ese recurso y sólo entonces el Cliente LwM2M podía emitir una operación NOTIFY para recibir la información deseada. SEND, por su parte, ofrece resultados similares a la operación NOTIFY, con la diferencia de que no requiere que la operación OBSERVE esté activa para enviar notificaciones. De este modo, la comunicación entre el cliente y el servidor no sólo resulta más sencilla, sino también más fiable.

Enlaces de transporte como CoAP sobre TCP y entrega de datos no IP.

LwM2M le ofrece una plétora de enlaces de transporte entre los que elegir. Si su proyecto requiere un consumo mínimo de energía y la máxima velocidad, UDP es el camino a seguir. Sin embargo, si necesitas fiabilidad, puedes utilizar el protocolo TCP gracias a su capacidad para atravesar NAT/firewalls. Además, también puedes hacer uso de Non-IP Data Delivery, otra vinculación de transporte especialmente atractiva para el IoT, ya que minimiza aún más el consumo de energía para dispositivos con recursos limitados específicos del IoT.

Gestión de dispositivos IoT Coiote

Coiote IoT Device Management es una plataforma de gestión de dispositivos líder en la industria que permite el control de dispositivos en el ecosistema IoT con el uso del protocolo LwM2M.

Con Coiote IoT Device Management obtendrá:

  • Gestión completa del ciclo de vida de los dispositivos
  • Integración con otros sistemas a través de REST API
  • Actualizaciones FOTA/SOTA
  • Recopilación y presentación de datos de telemetría
  • Interfaz gráfica de usuario configurable y basada en web
  • Sistema con arquitectura escalable
  • Seguridad de primer nivel
Programa de interoperabilidad LwM2M

LwM2M Interoperability Program es una herramienta para probar de forma automatizada la compatibilidad con el protocolo LwM2M y certificar la conformidad con la plataforma Coiote IoT Device Management de AVSystem.

Usando el Programa de Interoperabilidad LwM2M obtendrá:

  • Pruebas automáticas para el protocolo LwM2M
  • Informes completos de la interoperabilidad del dispositivo con el protocolo LwM2M
Anjay LwM2M SDK

Anjay LwM2M SDK es un conjunto de herramientas útiles específicamente para que los fabricantes de dispositivos implementen fácilmente el soporte para LwM2M en sus equipos.

Usando Anjay obtienes:

  • Conformidad con la última versión de LwM2M
  • Compatibilidad con varias pilas de hardware
  • Numerosas integraciones con otros sistemas operativos
  • Herramientas de prueba de LwM2M