Megjelent OpenDDS 3.34.0 — szabad C++-os implementációja a specifikációnak Object Management Group Data Distribution Service valós idejű rendszerekhez. A DDS-t elosztott rendszerek felépítésére használják a közzétételi és feliratkozási modell alapján, míg az OpenDDS, a C++ mellett, Java/JNI kötődéseket is biztosít, valamint az ACE/TAO-ra támaszkodik. A kiadás publikálva lett 2026. május 21., kész archívumok elérhetők Windows, Linux és macOS számára.
A projekt terjesztése open source: Az OpenDDS-t szabadon használhatjuk, módosíthatjuk és terjeszthetjük licencdíjak kifizetése nélkül, amennyiben megtartjuk a szerzői jogi értesítést; külön hangsúlyozzák, hogy az OpenDDS-t zárt forráskódú szoftver fejlesztése során is használhatjuk anélkül, hogy kötelezően nyilvánosságra kellene hoznunk a saját forráskódunkat.
Az OpenDDS 3.34.0 főbb változásai:
Bővültek az RtpsRelay lehetőségei. Az RtpsRelay-ben mostantól futás közben módosíthatók a további paraméterek az RtpsRelayControl mechanizmuson keresztül. Ezenkívül hozzáadódott a lehetőség, hogy egy új RelayDeniedPartitions téma keretében meghatározhassuk azokat a szegmenseket, amelyekhez a konkrét RtpsRelay példány nem férhet hozzá. A tilalom időtartamának kezelésére egy -DeniedPartitionsTimeout opció jelent meg.
Profilozási mód került hozzáadásra. A configure script-be egy —profiling flag került, amely a teljesítmény elemzéséhez tipikus fordítási paramétereket aktivál.
Callbacks kerültek bevezetésre az OpenDDS szálainak kezeléséhez. A fejlesztők olyan kezelőket adtak hozzá, amelyeket az OpenDDS szálainak indítása és befejezésekor hívnak meg. Ez lehetővé teszi a szálak viselkedésének kezelését, például a Linux alatt a CPU specifikus magokra történő rögzítését.
IDL-típusok deszerializálása optimalizálva lett. Minden IDL-térkép most megpróbálja elkerülni a felesleges memória nullázását primitív típusok szekvenciáinak deszerializálásakor. Az IDL-to-C++11 esetében további kifejezett engedélyezés szükséges a @OpenDDS::no_init_before_deserialize segítségével.
Az EventDispatcher szálak számának kezelése kerül hozzáadásra. Megjelentek a DCPSEventDispatcherThreads paraméterek, valamint az event_dispatcher_threads forgalmi beállítás. Ha az event_dispatcher_threads=0 értéket kap, a forgalom közös eseménykezelőt használ a saját helyi kezelőjének létrehozása helyett.
TCP-buffer beállítások kerültek hozzáadásra. A TCP forgalomhoz mostantól rendelkezésre áll a send_buffer_size és rcv_buffer_size paraméterek. Alapértelmezés szerint a socket-buffer méretét a platformra bízzák, ha ezeket a paramétereket pozitív értékekkel nem definiálták.
Frissítve lettek az ACE/TAO. A függőségek frissítve lettek: az ACE 6/TAO 2 verziója 6.5.23-ról 6.5.24-re, míg az ACE 8/TAO 4 verziója 8.0.5-ről 8.0.6-ra emelkedett. Az OpenDDS CMake-vel való összeállításakor az alapértelmezett ACE/TAO verzió most az ACE 8 / TAO 4.
Eltávolították a fel nem használt RtpsRelay opciót. Az RtpsRelay-ból eltávolították a -LogParticipantStatistics opciót, mivel már nem volt használva.
Teljesítmény- és hálózati javítások. A netlink receive buffer mérete megnövekedett, és a legtöbb szolgáltatás- és válaszfeladat áthelyezésre került a Reactor-szálakról a megfelelő EventDispatcher-szálakra. Ez csökkentheti a Reactor-szálak terhelését a hálózati olvasás során.
Hibajavítások a ThreadStatusManager-ben és a szállító modulokban. A ThreadStatusManager most több slotot használ saját zárolásokkal, ami csökkenti a szálak közötti versenyt. Javítva lett a null pointer dereferálása a DynamicData deszerializálásakor eltávolított résztvevőktől, valamint a szállítói példányok keresésével és a közös helyi címekkel kapcsolatos hibák, amelyek helytelen locator-értékekhez vezethettek a résztvevők és endpoint-ok bejelentésében.
<<<
Forrás: linux.org.ru
