Los lenguajes que hablan las máquinas se denominan protocolos de comunicación. En ellos no solo se determina qué palabras usan las máquinas para comunicarse, sino también cuándo y cómo se utilizan estas palabras. De ahí el término protocolo.
Las máquinas usan un gran número de protocolos. Para cada tarea específica de comunicación que deben realizar utilizan uno. Algunos de estos protocolos son bien conocidos por todos, como HTTP, el protocolo que permite la navegación web y que Tim Berners-Lee presentó al mundo un 26 de febrero, hace ya 30 años. La mayoría solo son conocidos por expertos, aunque sin ellos nada funcionaría.
El avance de las redes de comunicaciones y de la microelectrónica permitió imaginar un mundo en el que, no solo los ordenadores estuvieran conectados a Internet, sino también los objetos cotidianos. Se les dotaba de inteligencia al poder comunicarse.
A día de hoy podemos decir que la Internet of Things (IoT) o Internet de las cosas, un término acuñado por Kevin Ashton ya en 1999, es una realidad.
Un gran número de cosas conectadas
El número de cosas que se pueden conectar a Internet es muy elevado. El término cosa abarca cualquier objeto cotidiano, desde una bombilla a un frigorífico o un automóvil.
Las máquinas conectadas a Internet se identifican con direcciones IP. Inicialmente, se usaron direcciones de 32 bits, conocidas como IPv4, y posteriormente de 128 bits, conocidas como IPv6. Si bien en las redes de ordenadores clásicas sigue estando muy extendido IPv4, en la Internet de las cosas se ha tenido que usar IPv6.
En 2019 existían 26.660 millones de cosas conectadas a Internet, y la previsión para 2025 es que existan más de 75 mil millones.
Mensajes más pequeños, menor velocidad
Dentro de la gran variedad de dispositivos de la Internet de las cosas hay muchos que funcionan con baterías. Por lo tanto, reducir el consumo que supone para ellos comunicarse es clave para maximizar su duración y eficiencia energética.
Pensemos, por ejemplo, en redes de sensores empleadas en agricultura para el control de las cosechas. Esta necesidad supuso un rediseño de muchos de los protocolos de comunicaciones pensados para ordenadores, donde el consumo energético no es algo tan importante.
Por otra parte, no necesitamos la misma velocidad de conexión para encender y apagar una bombilla u obtener la lectura de un sensor de temperatura que cuando vemos una serie en streaming.
Para comunicarse entre ellas, las cosas suelen emplear redes de baja velocidad en las que se intercambian mensajes pequeños, lo que permite reducir de forma importante el consumo energético. En muchas ocasiones no se emplean redes wifi o celulares como usan, por ejemplo, nuestros teléfonos, sino que se han diseñado otras nuevas como ZigBee o BLE (Bluetooth Low Energy), entre otras.
Estas nuevas redes que usan nuevos protocolos hacen necesario que muchos dispositivos necesiten para conectarse a Internet un elemento intermedio (una pasarela) que traduce los protocolos entre ellas. Por eso muchas veces, cuando compramos kits domóticos para nuestro hogar, necesitamos también este dispositivo adicional.
Protocolos alternativos a HTTP
Del mismo modo que en Internet las máquinas utilizan el conocido protocolo HTTP para intercambiar todo tipo de información, las cosas necesitan algún protocolo equivalente para hacerlo. Esto les permite ofrecer servicios a los usuarios. Por ejemplo, cuando un sensor de luz detecta que se ha hecho de noche, puede encender automáticamente varias luces del interior del hogar.
Uno podría preguntarse por qué no se usó HTTP. La razón es que la evolución de la Web y del tipo de servicios para la que la utilizamos hacen que HTTP sea un protocolo muy complejo. Consume un elevado número de recursos que las cosas, como hemos comentado antes, no suelen tener, ni tampoco necesitar. Por eso se han propuesto alternativas. Las dos más extendidas en la actualidad son MQTT y CoAP.
El MQTT (Message Queue Telemetry Transport) fue definido en 1999 por IBM y Arcom y estandarizado posteriormente por la ISO. El CoAP (Constrained Application Protocol), creado en el IETF y estándar desde 2014, simplifica el protocolo HTTP para adaptarse a las características de estas redes y de las cosas. Su fundamento es distinto. MQTT se basa en un sistema publicador-suscriptor, más complejo pero más escalable, y CoAP se basa en uno petición-respuesta, mucho más sencillo pero menos escalable.
Pongamos un ejemplo para entender las diferencias. En el caso del sistema petición-respuesta, cuando queremos conocer la temperatura de un sensor, simplemente se la pedimos y él nos contesta.
En el modelo publicador-suscriptor, para obtener la temperatura del sensor, primero le decimos a un sistema intermedio (denominado broker) que queremos suscribirnos a la información de temperatura. Cuando el sensor de temperatura publica una media de temperatura en el sistema intermedio, este informa a todos los sistemas que se hayan suscrito a este tipo de información (el valor de la temperatura).
Si alguien se pregunta cuál es mejor, la respuesta en ingeniería casi siempre es que depende del ámbito de aplicación en el que se quiera desplegar. Lo que está claro es que la inexistencia de un mismo lenguaje común complica el uso masivo de la tecnología.
Si las cosas no hablan el mismo idioma, tenemos que instalar traductores que permitan que se entiendan entre ellas, lo que complica, y mucho, su despliegue. Recordemos que, también en el caso de la tecnología, todo resulta más sencillo cuando se habla el mismo idioma.
Celeste Campo, Profesora Titular del Departamento de Ingeniería Telemática, Universidad Carlos III
Este artículo fue publicado originalmente en The Conversation. Lea el original.