De release is succesvol geweest OpenDDS 3.34.0 ā een vrije C++-implementatie van de specificatie Object Management Group Data Distribution Service voor Real-time Systemen. DDS wordt gebruikt voor het opbouwen van gedistribueerde systemen volgens het publicatie- en abonnementsmodel, en OpenDDS biedt naast C++ ook Java/JNI-koppelingen en is gebaseerd op ACE/TAO. De release is gepubliceerd 21 mei 2026, voltooide archieven beschikbaar voor Windows, Linux en macOS.
Het project wordt verspreid als open source: OpenDDS kan gebruikt, gewijzigd en verspreid worden zonder licentiekosten zolang de copyrightmelding behouden blijft; het wordt specifiek benadrukt dat OpenDDS ook kan worden toegepast bij de ontwikkeling van propriƫtaire software zonder de verplichting om de eigen broncode openbaar te maken.
Belangrijkste veranderingen in OpenDDS 3.34.0:
De mogelijkheden van RtpsRelay zijn uitgebreid. In RtpsRelay kunnen nu extra parameters tijdens runtime worden gewijzigd via het RtpsRelayControl-mechanisme. Er is ook de mogelijkheid toegevoegd om een lijst van secties op te geven, waarvoor toegang door specifieke exemplaren van RtpsRelay zal worden geweigerd, via het nieuwe topic RelayDeniedPartitions. Voor het beheer van de looptijd van zo'n weigering is de optie -DeniedPartitionsTimeout toegevoegd.
Een bouwmodus voor profilering is toegevoegd. In het configure-script is de vlag āprofiling toegevoegd, die typische compilatie-instellingen voor prestatie-analyse in GCC inschakelt.
Callbacks voor het beheer van OpenDDS-threads zijn geïntroduceerd. Ontwikkelaars hebben handlers toegevoegd die worden aangeroepen bij het starten en beëindigen van OpenDDS-threads. Dit maakt het mogelijk om het gedrag van threads te beheren, bijvoorbeeld door ze aan specifieke CPU-kernen in Linux toe te wijzen.
De deserialisatie van IDL-types is geoptimaliseerd. Alle IDL-mappingen proberen nu onnodige geheugeninitialisatie voor sequenties van primitive types te vermijden tijdens het deserialiseren van het monster. Voor IDL-to-C++11 is een aanvullende expliciete inschakeling nodig via @OpenDDS::no_init_before_deserialize.
Beheer van het aantal EventDispatcher-threads is toegevoegd. Er zijn parameters DCPSEventDispatcherThreads en transportinstelling event_dispatcher_threads toegevoegd. Bij een waarde van event_dispatcher_threads=0 zal het transport de gemeenschappelijke evenementenbeheerder gebruiken in plaats van een eigen lokale beheerder te creƫren.
TCP-bufferinstellingen zijn toegevoegd. Voor TCP-transport zijn de parameters send_buffer_size en rcv_buffer_size toegevoegd. Standaard wordt de grootte van socket-buffers nu aan de platformen overgelaten als deze parameters niet met positieve waarden zijn ingesteld.
ACE/TAO zijn bijgewerkt. In de release zijn de afhankelijkheden bijgewerkt: ACE 6/TAO 2 zijn verhoogd van 6.5.23 naar 6.5.24, terwijl ACE 8/TAO 4 zijn verhoogd van 8.0.5 naar 8.0.6. Bij het bouwen van OpenDDS via CMake is de standaardversie van ACE/TAO nu de combinatie ACE 8 / TAO 4.
De ongebruikte optie RtpsRelay is verwijderd. De optie -LogParticipantStatistics is uit RtpsRelay verwijderd, omdat deze niet meer werd gebruikt.
Prestatie- en netwerkverbeteringen. De grootte van de receive buffer voor netlink is vergroot en een aanzienlijk deel van de afhandelingen en antwoordtaken is verplaatst van Reactor-threads naar de bijbehorende EventDispatcher-threads. Dit moet de Reactor-threads ontlasten voor netwerklezen.
Fouten in ThreadStatusManager en transporten zijn opgelost. ThreadStatusManager gebruikt nu meerdere slots met zijn eigen vergrendelingen, wat de concurrentie tussen threads vermindert. Het dereferenceren van een null-pointer bij het deserialiseren van DynamicData van een verwijderde deelnemer is gecorrigeerd, evenals fouten bij het zoeken naar transportinstanties en het werken met gedeelde lokale adressen, wat kon leiden tot onjuiste locator-waarden in deelnemers- en endpoint-aankondigingen.
<<<<
Bron: linux.org.ru
