la liberación tuvo lugar OpenDDS 3.34.0 — una implementación gratuita en C++ de la especificación Servicio de distribución de datos del grupo de gestión de objetos para sistemas en tiempo realDDS se utiliza para construir sistemas distribuidos mediante el modelo de publicación/suscripción, y OpenDDS, además de C++, proporciona enlaces Java/JNI y se basa en ACE/TAO. La versión ha sido publicada. 21 mayo del año 2026, archivos prefabricados disponible para Windows, Linux и macOS.
El proyecto se está distribuyendo Como software de código abierto: OpenDDS puede utilizarse, modificarse y distribuirse sin pagar regalías, siempre que se conserve el aviso de derechos de autor; se enfatiza específicamente que OpenDDS también puede utilizarse en el desarrollo de software propietario sin la obligación de divulgar el código fuente.
Cambios clave en OpenDDS 3.34.0:
Se han ampliado las capacidades de RtpsRelay. RtpsRelay ahora permite modificar parámetros adicionales en tiempo de ejecución mediante el mecanismo RtpsRelayControl. También se ha añadido la posibilidad de especificar una lista de particiones a las que se denegará el acceso para una instancia específica de RtpsRelay, a través del nuevo tema RelayDeniedPartitions. Se ha incorporado la opción -DeniedPartitionsTimeout para controlar la duración de esta denegación.
Se ha añadido un modo de compilación para la creación de perfiles. Se ha añadido la opción --profiling al script de configuración para habilitar las opciones de compilación típicas para el análisis de rendimiento en GCC.
Han aparecido funciones de devolución de llamada para gestionar los flujos de OpenDDS. Los desarrolladores han añadido controladores que se activan al inicio y al final de los hilos de OpenDDS. Esto permite controlar el comportamiento de los hilos, como asignarlos a núcleos de CPU específicos. Linux.
Se ha optimizado la deserialización de tipos IDL. Ahora, todas las asignaciones de IDL intentan evitar la inicialización innecesaria de memoria para secuencias de tipos primitivos al deserializar una instancia. Para IDL a C++11, esto requiere una inclusión explícita adicional mediante @OpenDDS::no_init_before_deserialize.
Se ha añadido control sobre el número de subprocesos de EventDispatcher. Se han añadido los parámetros DCPSEventDispatcherThreads y la configuración de transporte event_dispatcher_threads. Cuando event_dispatcher_threads=0, el transporte utilizará el despachador de eventos compartido en lugar de crear su propio despachador local.
Se agregaron ajustes de búfer TCP. Se han añadido los parámetros send_buffer_size y rcv_buffer_size al transporte TCP. Por defecto, el tamaño del búfer del socket queda a discreción de la plataforma, a menos que estos parámetros se establezcan en valores positivos.
ACE/TAO actualizado. Se han actualizado las dependencias: ACE 6/TAO 2 ha pasado de la versión 6.5.23 a la 6.5.24, y ACE 8/TAO 4 ha pasado de la versión 8.0.5 a la 8.0.6. Al compilar OpenDDS mediante CMake, la versión predeterminada de ACE/TAO ahora es ACE 8/TAO 4.
Se eliminó la opción RtpsRelay no utilizada. La opción -LogParticipantStatistics se ha eliminado de RtpsRelay ya que no se utiliza.
Correcciones de rendimiento y de red. Se ha aumentado el tamaño del búfer de recepción para netlink, y una parte importante de las tareas de servicio y respuesta se ha trasladado de los subprocesos del Reactor a los subprocesos correspondientes del EventDispatcher. Esto debería reducir la carga de trabajo de los subprocesos del Reactor en la lectura de la red.
Se corrigieron errores en ThreadStatusManager y en los transportes. ThreadStatusManager ahora utiliza múltiples ranuras con sus propios bloqueos, lo que reduce la contención entre subprocesos. Se ha corregido una desreferenciación de puntero nulo al deserializar DynamicData de un participante eliminado, así como errores en la búsqueda de instancias de transporte y en el manejo de direcciones locales compartidas que podían generar valores de localizador incorrectos en las declaraciones de participantes y puntos finales.
<<<
Noticias en el sitio web del proyecto.
Fuente: linux.org.ru
