Wydanie miało miejsce OpenDDS 3.34.0 — otwartoźródłowej implementacji specyfikacji Object Management Group Data Distribution Service for Real-time Systems. DDS jest stosowany do budowy rozproszonych systemów w modelu publikacji i subskrypcji, a sam OpenDDS, oprócz C++, zapewnia powiązania Java/JNI i opiera się na ACE/TAO. Wydanie opublikowane 21 maja 2026 roku, gotowe archiwa dostępne dla Windows, Linux i macOS.
Projekt jest rozprowadzany jako open source: OpenDDS można używać, modyfikować i rozprowadzać bez opłat licencyjnych przy zachowaniu powiadomienia o prawach autorskich; szczególnie podkreśla się, że OpenDDS można stosować również w zakresie rozwoju oprogramowania własnościowego bez obowiązku ujawniania własnego kodu źródłowego.
Główne zmiany w OpenDDS 3.34.0:
Rozszerzone możliwości RtpsRelay. W RtpsRelay teraz można zmieniać dodatkowe parametry w czasie wykonywania za pomocą mechanizmu RtpsRelayControl. Dodano również możliwość określenia listy partycji, do których dostęp będzie zabroniony konkretnym egzemplarzom RtpsRelay, za pomocą nowego tematu RelayDeniedPartitions. Aby zarządzać czasem trwania tego zakazu, wprowadzono opcję -DeniedPartitionsTimeout.
Dodano tryb kompilacji do profilowania. W skrypcie configure dodano flagę —profiling, włączającą typowe parametry kompilacji do analizy wydajności w GCC.
Pojawiły się callbacki do zarządzania wątkami OpenDDS. Programiści dodali obsługiwacze wywoływane podczas uruchamiania i zakończenia wątków OpenDDS. Umożliwia to zarządzanie zachowaniem wątków, na przykład przypisując je do konkretnych rdzeni CPU w systemie Linux.
Zoptymalizowano deserializację typów IDL. Wszystkie mapowania IDL starają się unikać niepotrzebnego zerowania pamięci dla sekwencji typów prymitywnych podczas deserializacji próbek. Dla IDL-to-C++11 wymagane jest dodatkowe wyraźne włączenie przez @OpenDDS::no_init_before_deserialize.
Dodano zarządzanie liczbą wątków EventDispatcher. Pojawiły się parametry DCPSEventDispatcherThreads oraz transportowa konfiguracja event_dispatcher_threads. Przy wartości event_dispatcher_threads=0 transport będzie używać wspólnego dysponenta zdarzeń zamiast tworzyć własnego lokalnego dysponenta.
Dodano ustawienia buforów TCP. Dla transportu TCP pojawiły się parametry send_buffer_size oraz rcv_buffer_size. Domyślnie rozmiar buforów socketów pozostaje do decyzji platformy, jeśli te parametry nie mają pozytywnych wartości.
Zaktualizowano ACE/TAO. Zaktualizowane zależności: ACE 6/TAO 2 podniesione z 6.5.23 do 6.5.24, a ACE 8/TAO 4 — z 8.0.5 do 8.0.6. Podczas kompilacji OpenDDS przez CMake, domyślnie teraz używana jest wersja ACE/TAO 8/TAO 4.
Usunięto nieużywaną opcję RtpsRelay. Z RtpsRelay usunięto opcję -LogParticipantStatistics, ponieważ nie była już używana.
Poprawki wydajności i pracy w sieci. Zwiększono rozmiar bufora odbiorczego dla netlink, a znaczna część obsługujących i odpowiednich zadań została przeniesiona z wątków Reactor do odpowiednich wątków EventDispatcher. Powinno to odciążyć wątki Reactor dla odczytu sieciowego.
Poprawki błędów w ThreadStatusManager i transportach. ThreadStatusManager teraz używa kilku slotów z własnymi blokadami, co zmniejsza konkurencję między wątkami. Naprawiono dereferencję wskaźnika null podczas deserializacji DynamicData od usuwanego uczestnika, a także błędy w wyszukiwaniu instancji transportu i pracy z lokalnymi adresami, które mogły prowadzić do nieprawidłowych wartości locatora w ogłoszeniach uczestników i punktów końcowych.
<<<<
Aktualność na stronie projektu
Źródło: linux.org.ru
