La capa de descubrimiento de servicios juega un papel destacado en una arquitectura IoT. Es la capa de descubrimiento de servicios o de gestión de servicios lo que diferencia una red IOT de la de una red de Internet típica. Los dispositivos IoT necesitan conectarse y comunicarse con servicios y aplicaciones basados en la web o en la nube para la implementación de IoT. Los servicios y aplicaciones web o en la nube se ejecutan en computadoras host que se identifican mediante direcciones IP únicas en una red. Para aprovechar un servicio basado en la nube, los dispositivos de IoT deben estar conectados a las computadoras (servidores) que alojan estos servicios o aplicaciones. Por lo tanto, existen algunos protocolos diseñados para resolver direcciones IP de host que brindan servicios y aplicaciones de IoT. Estos protocolos ayudan a identificar servidores que alojan servicios de IoT por sus espacios de nombres y permiten que una tarjeta de IoT se conecte a uno (Unicast) o grupo de servidores (Multicast) a través de la red.
Algunos de los protocolos de descubrimiento de servicios populares son los siguientes:
1) mDNS
2) Descubrimiento del servicio DNS (DNS-SD)
3) upnp
4) Protocolo de servicio de descubrimiento simple
mDNS: el sistema de nombres de dominio de multidifusión (mDNS) es un protocolo de descubrimiento de servicios similar a DNS para resolver nombres de host en direcciones IP en una red local sin utilizar ningún servidor DNS de unidifusión. Se puede utilizar sin ninguna infraestructura adicional o servidor DNS en la red. El protocolo funciona con paquetes UDP de multidifusión IP a través de los cuales un nodo de la red local consulta los nombres de todos los demás nodos. El nodo cliente envía un mensaje de consulta para responder a un nodo con un nombre específico. Cuando el nodo con el nombre correspondiente recibe la consulta, responde con un mensaje de respuesta de multidifusión que contiene su dirección IP. Al ser una respuesta de multidifusión, todos los dispositivos (nodos) de la red también guardan la dirección IP y el nombre del dispositivo de destino en sus cachés locales.
En esta red local las direcciones IP pueden cambiar en algún momento, pero no los nombres. Este protocolo es muy útil porque no requiere ninguna infraestructura adicional (servidor DNS en la red) y puede usarse para gestionar dispositivos sin ninguna configuración o administración manual. El protocolo se puede implementar a pesar de las fallas de infraestructura. Desarrollado por el IETF, el protocolo mDNS está definido en el estándar RFC6762.
Descubrimiento de servicios DNS (DNS-SD): esta pila de protocolos utiliza mensajes DNS estándar para descubrir servicios en una red de IoT. Basado en mDNS, DNS-SD se utiliza para resolver servicios disponibles en una red. El descubrimiento de servicios se implementa en dos pasos: en el primer paso, se resuelven los nombres de host de los proveedores de servicios y, en el siguiente paso, las direcciones IP se emparejan con los nombres de host mediante mDNS. Es importante identificar los nombres de host ya que las direcciones IP pueden cambiar en la red.
Al igual que en mDNS, la dirección IP y el nombre de host del dispositivo de destino se comunican como una respuesta de multidifusión y cada nodo (dispositivo IoT conectado en la red) actualiza el nombre de host y la dirección IP relacionada al recibir la respuesta. Es el protocolo que mantiene constantes los nombres de host en la red, a pesar de que los dispositivos o nodos tengan direcciones IP dinámicas. Debido a que el nombre de host siempre permanece constante en la red, es posible identificar de forma única y confiable los dispositivos en la red IoT local.
Al igual que mDNS, esta pila de protocolos no requiere ninguna infraestructura adicional (servidor de nombres DNS en la red) ni configuración o administración manual de los dispositivos IoT conectados.
uPnP: mantenido por Open Connectivity Foundation, Universal Plug and Play (uPnP) es una pila de protocolos que permite que los dispositivos en una red se descubran entre sí y las capacidades de cada uno, y configuren funciones de red como el intercambio de datos y la comunicación.
Hay tres componentes básicos de cualquier red UPnP: dispositivos, servicios y puntos de control. Los dispositivos son los componentes básicos de la red donde cada dispositivo proporciona servicio o servicios específicos. Los servicios se ven como un conjunto de acciones que el dispositivo puede implementar. Los puntos de control identifican dispositivos por descripción de dispositivo y servicio y responden al nodo cliente invocando los servicios solicitados. En este protocolo, el descubrimiento de dispositivos y servicios ocurre de forma automática y autónoma tan pronto como un nodo ingresa a la red. Por lo tanto, no es necesario configurar manualmente los nodos (dispositivos IoT) para descubrir dispositivos y servicios disponibles en la red.
Este protocolo se basa en el enrutamiento TCP-IP. Los dispositivos se identifican mediante sus indicadores universales de recursos (URI) y los servicios se descubren mediante el protocolo de transferencia de hipertexto (HTTP). Un dispositivo conectado a la red se configura automáticamente adquiriendo una dirección TCP-IP e indicando los servicios disponibles mediante HTTP. Luego, los dispositivos utilizan XML para comunicarse entre sí e indicar las capacidades de cada uno (servicios a ofrecer).
UPnP era anteriormente un estándar propiedad de Microsoft, pero ahora es un estándar abierto. Es muy adecuado para pequeñas redes locales de IoT donde los dispositivos necesitarían comunicarse entre sí sin ninguna infraestructura adicional. Al igual que UPnP, los dispositivos móviles pueden utilizarlo para conectarse a impresoras y escáneres en una oficina automatizada. Asimismo, se puede utilizar para transferir fotografías desde una cámara a dispositivos móviles o una computadora portátil.
Protocolo de servicio de descubrimiento simple (SDSP): el protocolo de servicio de descubrimiento simple se utiliza en redes UPnP para descubrir servicios disponibles. Es utilizado por los puntos de control de la red UPnP para buscar dispositivos, servicios que ofrecen y su disponibilidad en un momento determinado. El punto de control envía una solicitud de búsqueda multicast a la que responde el dispositivo que ofrece el servicio solicitado. Los dispositivos y servicios que ofrecen se identifican mediante descriptores de dispositivo y servicio respectivamente. El punto de control utiliza descripciones de dispositivos y servicios para buscar servicios solicitados en la red.
También existen muchas plataformas de descubrimiento de servicios públicos a las que los dispositivos IoT pueden solicitar servicios. Algunas de estas plataformas son las siguientes:
HyperCat: una colección estándar abierta de URI para identificar sensores y publicar datos de sensores
Web Física: un servicio iniciado por el equipo de desarrollo de Chrome de Google, la Web Física permite a los dispositivos móviles capturar datos de sensores utilizando balizas BLE.
Wi-Fi Aware: un servicio que utilizará Wi-Fi para conectar teléfonos inteligentes y dispositivos móviles con sensores circundantes y dispositivos IOT y recopilar y transmitirles datos.
Balizas Bluetooth: un servicio que permitirá que los teléfonos inteligentes y dispositivos móviles reciban balizas Bluetooth que contienen datos de sensores.
Shazam: un servicio para identificar música grabando un clip de audio durante unos segundos. Actualmente está disponible como aplicación móvil y se utiliza a menudo para identificar pistas de música.
Open Hybrid: un servicio para mapear interfaces digitales a objetos físicos
Chirp: una aplicación móvil para codificar, transmitir y decodificar datos en forma de tonos audibles e inaudibles cercanos al ultrasonido
En el próximo tutorial, se analizarán varios protocolos de capa de aplicación utilizados en los sistemas IOT.
Para obtener más información sobre los protocolos de enlace de datos y de capa física comúnmente utilizados para redes informáticas y dispositivos móviles, consulte el siguiente tutorial:
Protocolos de capa física y enlace de datos para computadoras y dispositivos móviles: Ethernet BLE Wi-Fi Wi-Fi Direct WPA
Para conocer la capa física y los protocolos de enlace de datos desarrollados para LPWAN, consulte el siguiente tutorial:
Protocolos de capa física y enlace de datos para LPWAN
Para conocer la capa física y los protocolos de enlace de datos desarrollados para PAN, HAN y LAN, consulte el siguiente tutorial:
Protocolos de capa física y enlace de datos para LAN HAN y PAN
Para obtener más información sobre RFID y estándares móviles con aplicaciones IOT, consulte el siguiente tutorial:
Protocolos de capa física y enlace de datos: RFID y estándares móviles
Para obtener más información sobre varios protocolos de capa de red, consulte el siguiente tutorial:
Protocolos de capa de red
Para obtener más información sobre los protocolos de la capa de transporte, consulte el siguiente tutorial:
Protocolos de capa de transporte