¿Qué tipo de mensajería se puede usar para los protocolos IoT orientados a la red celular?

14

Esto me llamó la atención recientemente cuando encontré un video increíble en Youtube por:

Micheal E. Anderson: Comparación de técnicas de mensajería para IoT, OpenIoTSummit, Linux Foundation .

Las diapositivas para su charla están disponibles aquí.

En la Diapositiva 26 y 41 minutos del video, está discutiendo sobre cómo (déjame parafrasear):

Los operadores de telefonía celular prefieren que sus consumidores de IoT utilicen mensajes de tipo HTML , XML o JSON, ya que consumen más datos. Más datos significa que pueden cobrar a los consumidores más dinero por el servicio.

Entiendo que muchos protocolos patentados a saber. SigFox , Wireless HART o Z Wave tienen velocidades de datos más bajas y enviar datos voluminosos a través de dichos operadores puede ser un asunto costoso.

Pregunta

  • ¿Existen otros formatos de mensajería livianos que se utilizan para usar en los Protocolos patentados que los convierten en soluciones rentables para los consumidores actuales y futuros de IoT? (Disparo en la oscuridad: ¿hay algún formato llamado XML o HTML ligero o JSON en alguna parte?)

  • ¿Tal vez se usa algo como CBOR o tal vez?

Shan-Desai
fuente
1
Sospecho que el ancho de banda de datos es probablemente un costo de segundo orden, y en realidad no lo paga el desarrollador de la aplicación. Entonces, aunque vale la pena preocuparse, pero probablemente haya más desarrollo en esta área.
Sean Houlihane
1
¿Hay algún tipo de situación en particular que le interese? Si está enviando un tipo de datos predecible (por ejemplo, solo un número entero o algo así), podría renunciar a un lenguaje de marcado, pero limita la cantidad de información que puede expresar. Si solo está interesado en cualquier situación en la que normalmente usaría JSON / HTML / XML, también está bien.
Aurora0001
1
@ Aurora0001 En realidad no tengo un escenario en particular, pero vale la pena pensarlo. Creo que la mejor forma de formato de datos es la compatibilidad con las redes basadas en web (dominada por IP) que podrían estar conectadas a los lenguajes de marcado de Cellular Networks. Pero dado que el campo de IoT generalmente se está despegando, podría valer la pena probar diferentes formatos.
Shan-Desai
1
Lamento mezclar un poco la imagen: la mensajería en cualquier red tiene varias capas, donde la capa de datos es solo una en la parte superior. Todos ellos están bajo optimización, o al menos podrían estarlo. 5G, por ejemplo, mejora la señalización utilizada y, por lo tanto, se ajustan más datos. Incluso 5G mejora la eficiencia espectral de las señales en el aire, por lo que la eficiencia se etiqueta desde muchos lados.
mico

Respuestas:

6

¿Pregunta sobre el protocolo o el formato del mensaje ? A menudo usamos incorrectamente el término protocolo cuando nos referimos al formato de los datos. Lo hago yo mismo, a menudo porque la distinción no está clara para todos.

Los protocolos de mensajería utilizados en IoT tienden a ser bastante compactos, al menos más que http y ofrecen características importantes que son importantes en la mensajería (sesiones, control de flujo, confiabilidad, etc.). El formato del mensaje es el de los datos en el mensaje que se envía. Supongo que esto es lo que estás preguntando.

El formato de mensaje más compacto es un formato binario enrollado a mano cuidadosamente considerado. Se usa con frecuencia cuando se trata de escenarios de ancho de banda bajo cuando desea enviar algunos bytes y sabe exactamente cómo se ven esos bytes. Para mensajes más grandes, las desventajas son significativas y, en general, deben evitarse a toda costa.

Realicé una evaluación detallada de muchas opciones diferentes de serialización de datos. Esperaba que protobuf, el paquete de mensajes fuera bastante compacto, que eran. Sin embargo, mi segundo problema fue encontrar bibliotecas mantenidas y disponibles en varias plataformas diferentes, incluida C en el dispositivo.

El formato en el que me decidí, sorprendentemente, era JSON comprimido con gzip. Es fácil de implementar y comprender, se ejecuta en todas partes y, con los datos que estaba usando, era más o menos igual que otros métodos.

También tenga en cuenta que si tiene un canal seguro como TLS, va a consumir una gran cantidad de datos (> 6 KB) en los apretones de manos TLS de todos modos.

Hace unos años, esperaba que dominara un formato como los búferes de protocolo, pero realmente no sucedió mucho. Probablemente debido a la facilidad con la que json se puede escribir y analizar (y comprimir). Me gusta el aspecto de Flatbuffers , pero la ventaja es más en la velocidad de análisis que en ser compacto.

Como se encuentra en la etapa de investigación, le sugiero que escriba un poco de código en cada uno, utilizando datos que sean típicos de su situación, y haga algunas comparaciones. Tener datos sólidos cuando comienzas ayuda a confirmar tus elecciones.

Simon Munro
fuente
4

La gran ventaja de un formato basado en marcado es que conserva la flexibilidad en la elección de los datos que transmite. Esto es de gran importancia en un ecosistema en evolución en el que anticipa un servicio en evolución durante varios años de desarrollo.

Aunque una estructura de datos binarios fuertemente codificada será eficiente para transmitir, debe decidir por adelantado como mínimo cómo se verá la estructura. Cuando más tarde te das cuenta de que incluso un campo necesita expansión, estás atascado. Incluso implementar una actualización del protocolo es difícil, ya que no puede obsoleto una codificación antigua hasta que se actualice cada punto final.

Esto sugiere que el enfoque óptimo es mezclar paquetes minimalistas y codificación basada en marcado (utilizando este último como alternativa). El valor de esto depende de las cargas útiles de mayor ancho de banda. Si ya está transfiriendo fragmentos frecuentes de tamaño de video, la optimización de los datos de control poco frecuentes vale menos la pena. Si tiene transferencias pequeñas frecuentes (una temperatura tal vez), tiene sentido minimizar la sobrecarga en la transmisión, pero tal vez solo las transferencias por lotes sean tan buenas.

Sean Houlihane
fuente