Desde que surgió en 2004 la primera versión de la tecnología DDS para dar respuesta al concepto de Red de Información Global popularizado a finales de los 90, no han parado de crecer las aplicaciones y sectores en los que se utiliza DDS (Data Distribution Service for Real-time Systems). ¿Qué nos ofrece este estándar?
A menudo nos encontramos ante la necesidad de integrar información proveniente de múltiples fuentes o dispositivos. En algunas de estas ocasiones, la velocidad de respuesta es un aspecto crítico. Angelo Corsaro, Chief Technology Officer de la empresa PrismTech, menciona en una de sus presentaciones, que el NASA Kennedy Space Centre utiliza DDS para recoger la información de la telemetría del sistema de lanzamiento espacial.
En cada lanzamiento se transmiten más de 400.000 mensajes por segundo. Para que nos hagamos una idea de este orden de magnitud, si lo comparamos con las redes sociales, Twitter maneja algo menos de 8.000 tweets por segundo.
En otras ocasiones, la complejidad radica en la integración de productos hardware y software de diferentes fabricantes. Audi basó en RTI Connext DDS el rediseño de la arquitectura de su simulador hardware-in-the-loop (HIL). Este simulador permite reproducir los sistemas eléctricos del vehículo y comprobar su funcionamiento integrado. Pero el sistema de Audi no solo simula vehículos aislados, también varios vehículos interactuando entre ellos (V2V) así como la infraestructura vial (V2I). Hablamos de integrar, por cada vehículo, alrededor de 500 unidades de control de motor o ECUs, más de 100 procesadores y de combinar, en una misma red, sistemas de simulación de fabricantes diferentes.
Hasta ahora hemos mencionado las posibilidades que ofrece DDS para transmitir información en tiempo real entre dispositivos conectados en red y su capacidad integradora para entornos heterogéneos. Pero aún hay más. La tecnología DDS se basa en una arquitectura publicador/subscriptor que soporta el descubrimiento automático estando desacoplada en tiempo y espacio. ¿Qué significa todo esto?
Un sistema de estas características está compuesto por nodos o aplicaciones que escriben datos y aplicaciones que leen datos. Al estar desacoplados, quien escribe los datos no necesita saber quién está interesado en consumirlos, ni conocer la topología de la red. Además, quien lee los datos no necesita estar conectado en el momento en el que se producen los datos. En cuanto se una al sistema, será descubierto y se le entregará la información relevante para él. El descubrimiento automático es de gran utilidad en entornos donde las comunicaciones son poco fiables y el sistema debe estar preparado para tolerar fallos. Un claro ejemplo es el entorno submarino donde las comunicaciones son acústicas, el ancho de banda es limitado y existe un retardo elevado y variable en la propagación de las ondas. DDS permite afrontar estos retos y favorecer la cooperación y comunicación entre vehículos submarinos para llevar a cabo misiones marítimas complejas como la monitorización de contaminación, la inspección del lecho marino o la prevención de la corrosión en instalaciones offshore.
Otro aspecto distintivo de esta tecnología es que dispone de más de 20 parámetros de calidad de servicio (QoS) que permiten tener un control exhaustivo sobre el comportamiento de la red ,y configurar el lugar y el orden en la entrega de datos, la durabilidad de la información (volátil, transitoria o permanente), la fiabilidad en la entrega (reintentos en caso de fallo en las comunicaciones y tamaño del histórico de mensajes), la gestión de la memoria, el control del ancho de banda, los plazos de entrega y el límite de recursos. Por todo ello, DDS es una tecnología que garantiza la entrega eficiente y segura de la información en el sitio y momento correctos.
ROS (Robot Operating System), uno de los principales frameworks de código abierto para la creación de aplicaciones software para robots, ha evolucionado a utilizar DDS como middleware en todas sus implementaciones en su versión 2.0.
¿Cuándo usar DDS? Cuando necesitemos distribuir información rápidamente (en tiempo real) a mucho nodos sin tener que preocuparnos de dónde debemos coger la información, a dónde tenemos que enviarla, cuándo están disponibles los datos, cuándo necesitan la información los nodos, qué ocurre si un nodo se une o abandona el sistema, cómo reaccionar a fallos en las comunicaciones o cómo integrar nodos heterogéneos.
El descubrimiento automático de nodos y los parámetros de calidad de servicio de DDS permiten una gestión sencilla de todos estos aspectos.