Categoría:DDS

De ChuWiki
Saltar a: navegación, buscar

DDS es una especificación para crear un almacén de datos distribuido en varios ordenadores, de forma que en cualquiera de ellas pueda haber aplicaciones que introduzcan o extraigan datos de ese almacén de datos. Se basa en el paradigma publicador/suscriptor, de forma que cualquier aplicación puede publicar datos y suscribirse a cambios en los mismos.

DDS está muy pensado para aplicaciones en tiempo real, de forma que la publicación y transmisión de datos entre los nodos se intenta hacer de la forma más eficiente posible.

Se puede definir la calidad de servicio para cada tipo de dato, de forma que puede haber datos poco importantes en los que no se garantiza su correcta propagación por todos los nodos, puede haber datos importantes en lo que se quiere la garantía de su correcta propagación, datos que queremos que sean persistentes en una base de datos, con un tiempo de caducidad, etc. Es lo que se llama QoS (Quality Of Service).

Hay varias implementaciones de DDS, entre las gratuitas tenemos:

  • OpenDDS de la que se distribuyen los fuentes y es necesario compilarlas con gcc. Hay que bajarse además librerías necesarias para el compilado y cosas como cygwin si se quiere compilar en windows.
  • OpenSplice viene ya compilado y tiene distribuciones gratuitas y de pago. Con la gratuita hay algunas carencias que pueden ser importantes, como persistencia en base de datos, pero es suficiente para empezar.

En cualquiera de ellas, se lanza un ejecutable (nodo DDS) en cada uno de los ordenadores de la red y en el que las aplicaciones que corren en ese ordenador podrán publicar y suscribirse a datos. Este nodo buscará en red otros nodos similares a él para la transmisión automática y recepción de los datos.

Los tipos de datos se deben definir en un fichero en formato .idl. Una vez generados, una herramienta que viene con DDS generará el código fuente en java, C++, etc para esos tipos de datos y del código necesario para publicar y suscribirse a ellos.

Dds.png

Esta categoría no contiene ninguna página o archivo.