Como se señaló, por un post anterior en este hilo, una de las opciones es OpenSplice DDS que es una implementación de código abierto de la DDS estándar OMG (el mismo estándar implementado por NDDS) .
Las principales ventajas de OpenSplice DDS sobre el otro middleware que está considerando se pueden resumir en:
- Rendimiento
- apoyo para Rich QoS (Persistencia, tolerancia a fallos, puntualidad, etc.)
- datos Centricity (por ejemplo, posibilidad de consultar y flujos de datos de filtrado)
Algo que me gustaría entender es cuáles son sus problemas con IDL. DDS utiliza IDL como una forma independiente del lenguaje de especificar tipos de datos de usuario. Sin embargo, DDS no está limitado a IDL, podría estar usando XML, si lo prefiere. La ventaja de especificar los tipos de datos, y el desacoplamiento su representación de un lenguaje de programación específico, es que el middleware puede:
(1) quitar de que la carga de datos de serialización,
(2) generar muy tiempo/espacio serialización eficiente,
(3) garantizar la seguridad de tipo de extremo a extremo,
(4) permitir el filtrado de contenido sobre todo el tipo de datos (no sólo la cabecera como en JMS), y
(5) enabl e interoperabilidad de cable en los lenguajes de programación (p. Java, C/C++, C#, etc.)
Dependiendo del sistema o la aplicación que esté diseñando, algunas de las propiedades anteriores podrían no ser útiles/relevantes. En ese caso, simplemente puede generar uno, unos pocos, "Tipo DDS", que es el titular de sus datos serializados.
Si piensa en JMS, le ofrece 5 tipos de temas diferentes que puede usar para enviar sus datos. Con DDS puede hacer lo mismo, pero tiene la flexibilidad para definir exactamente los tipos de temas.
Por último, es posible que desee comprobar this blog entry en Scala y DDS para una discusión más larga sobre por qué los tipos y la torsión estática son buenos, especialmente en sistemas distribuidos.
-AC
Siempre pensé que los datos deberían ser XML, de esa manera es semidedefinido (mediante un esquema), pero no vinculado a un idioma. – David