Lançamento ocorrido OpenDDS 3.34.0 — implementação livre em C++ da especificação Grupo de Gestão de Objetos Serviço de Distribuição de Dados para Sistemas em Tempo Real. DDS é utilizado para a construção de sistemas distribuídos com um modelo de publicação e assinatura, e o OpenDDS, além de C++, fornece vinculações para Java/JNI e baseia-se em ACE/TAO. O lançamento foi publicado 21 de maio de 2026, arquivos prontos disponíveis para Windows, Linux e macOS.
O projeto é distribuído como código aberto: o OpenDDS pode ser utilizado, modificado e distribuído sem taxas de licenciamento, mantendo o aviso de copyright; destaca-se que o OpenDDS pode ser utilizado no desenvolvimento de software proprietário sem a obrigação de revelar o código-fonte.
Principais alterações no OpenDDS 3.34.0:
As capacidades do RtpsRelay foram expandidas. Agora, no RtpsRelay, é possível alterar parâmetros adicionais durante a execução através do mecanismo RtpsRelayControl. Também foi adicionada a capacidade de especificar uma lista de partições a serem negadas a um determinado exemplar do RtpsRelay, via um novo tópico RelayDeniedPartitions. Para gerenciar o tempo de validade dessa negação, foi adicionada a opção -DeniedPartitionsTimeout.
Adicionado modo de construção para perfil de desempenho. O script configure agora possui a flag —profiling, que inclui parâmetros típicos de compilação para análise de desempenho no GCC.
Agora há callbacks para gerenciar as threads do OpenDDS. Os desenvolvedores adicionaram manipuladores que são chamados no início e no término das threads do OpenDDS. Isso permite gerenciar o comportamento das threads, como fixá-las em núcleos específicos da CPU no Linux.
Deserialização de tipos IDL otimizada. Todos os mapeamentos IDL agora evitam zeragem desnecessária de memória para sequências de tipos primitivos durante a deserialização de padrões. Para IDL-to-C++11, uma inclusão explícita adicional é necessária através de @OpenDDS::no_init_before_deserialize.
Adicionado controle do número de threads EventDispatcher. Agora existem parâmetros DCPSEventDispatcherThreads e configuração de transporte event_dispatcher_threads. Quando o valor de event_dispatcher_threads=0, o transporte utilizará um despachante de eventos compartilhado em vez de criar um despachante local.
Adicionadas configurações de buffers TCP. Para o transporte TCP, agora existem parâmetros send_buffer_size e rcv_buffer_size. Por padrão, o tamanho dos buffers de socket agora é deixado a critério da plataforma, a menos que esses parâmetros sejam definidos com valores positivos.
ACE/TAO atualizados. As dependências foram atualizadas: ACE 6/TAO 2 aumentaram de 6.5.23 para 6.5.24, e ACE 8/TAO 4 — de 8.0.5 para 8.0.6. Ao compilar o OpenDDS através do CMake, a versão padrão do ACE/TAO agora é a combinação ACE 8 / TAO 4.
Removida a opção não utilizada RtpsRelay. A opção -LogParticipantStatistics foi removida do RtpsRelay, pois não estava mais em uso.
Correções de desempenho e funcionamento da rede. Aumentado o tamanho do buffer de recebimento para netlink, e uma quantidade significativa das tarefas de serviço e resposta foi transferida dos threads do Reactor para os threads correspondentes do EventDispatcher. Isso deve aliviar os threads do Reactor para leitura de rede.
Corrigidos erros no ThreadStatusManager e nos transportes. O ThreadStatusManager agora utiliza múltiplos slots com suas próprias travas, o que reduz a competição entre os threads. Corrigido o desreferenciamento de ponteiro nulo ao desserializar DynamicData de um participante removido, bem como erros na busca de instância de transporte e no manuseio de endereços locais compartilhados, que podiam levar a valores de locator incorretos nas declarações de participantes e endpoints.
<<<
Fonte: linux.org.ru
