Došlo k vydání OpenDDS 3.34.0 — volné C++ implementace specifikace Object Management Group Data Distribution Service pro reálné systémy. DDS se používá pro budování distribuovaných systémů na modelu publikace a odběru a samotný OpenDDS, kromě C++, poskytuje Java/JNI vazby a spoléhá na ACE/TAO. Verze byla vydána 21. května 2026, hotové archivy jsou k dispozici pro Windows, Linux a macOS.
Projekt je distribuován jako open source: OpenDDS lze používat, měnit a distribuovat bez licenčních poplatků při zachování copyrightového oznámení; zvlášť se zdůrazňuje, že OpenDDS lze používat i při vývoji proprietárního SW bez povinnosti zveřejnit svůj zdrojový kód.
Hlavní změny OpenDDS 3.34.0:
Byly rozšířeny možnosti RtpsRelay. V RtpsRelay lze nyní měnit další parametry za běhu pomocí mechanismu RtpsRelayControl. Také byla přidána možnost určit seznam oddílů, k nimž bude konkrétním instancím RtpsRelay zakázán přístup, prostřednictvím nového topiku RelayDeniedPartitions. Pro správu doby platnosti tohoto zákazu byla přidána možnost -DeniedPartitionsTimeout.
Byl přidán režim sestavení pro profilování. Do skriptu configure byl přidán příznak —profiling, který zahrnuje typické parametry kompilace pro analýzu výkonu v GCC.
Byly přidány callbacks pro správu vláken OpenDDS. Vývojáři přidali zpracovatele, které se volají při spuštění a ukončení vláken OpenDDS. To umožňuje řídit chování vláken, například je přiřadit konkrétním CPU jádrům v Linuxu.
Byla optimalizována deserializace IDL typů. Všechny IDL mapování se nyní snaží vyhýbat zbytečnému nulování paměti pro sekvence primitivních typů při deserializaci vzoru. Pro IDL-to-C++11 je vyžadováno dodatečné explicitní zahrnutí prostřednictvím @OpenDDS::no_init_before_deserialize.
Byla přidána kontrola počtu vláken EventDispatcher. Byly přidány parametry DCPSEventDispatcherThreads a transportní nastavení event_dispatcher_threads. Při hodnotě event_dispatcher_threads=0 bude transport používat společný event dispatcher místo vytváření vlastního lokálního dispatcheru.
Byla přidána nastavení TCP bufferů. Pro TCP transport se objevily parametry send_buffer_size a rcv_buffer_size. Ve výchozím nastavení je velikost socket bufferů nyní ponechána na uvážení platformy, pokud tyto parametry nejsou nastaveny na kladné hodnoty.
Byly aktualizovány ACE/TAO. V rámci aktualizace byly závislosti: ACE 6/TAO 2 zvýšeny z 6.5.23 na 6.5.24, a ACE 8/TAO 4 z 8.0.5 na 8.0.6. Při sestavování OpenDDS přes CMake se výchozí verze ACE/TAO nyní stala kombinace ACE 8 / TAO 4.
Odstraněna nepoužívaná možnost RtpsRelay. Z RtpsRelay byla odstraněna možnost -LogParticipantStatistics, protože již nebyla používána.
Opravy výkonu a síťového provozu. Velikost receive bufferu pro netlink byla zvýšena, a značná část obslužných a odpovědních úloh byla přesunuta z Reactor vláken na odpovídající EventDispatcher vlákna. To by mělo uvolnit Reactor vlákna pro síťové čtení.
Byly opraveny chyby v ThreadStatusManager a transportech. ThreadStatusManager nyní používá několik slotů se svými zámky, což snižuje konkurenci mezi vlákny. Opraveno dereferencování null pointeru při deserializaci DynamicData od odstraňovaného účastníka, stejně jako chyby při hledání instance transportu a při práci se sdílenými lokálními adresami, které mohly vést k nesprávným locator hodnotám v oznámeních účastníků a endpointů.
<<<
Zdroj: linux.org.ru
