OpenDDS — это реализация C++ с открытым исходным кодом спецификации Object Management Group «Служба распространения данных для систем реального времени» (DDS), а также некоторых других связанных спецификаций. Эти стандарты определяют набор интерфейсов и протоколов для разработки распределенных приложений на основе моделей публикации-подписки и распределенного кэша. Хотя OpenDDS сам по себе разработан на C++, предусмотрены привязки Java, позволяющие приложениям Java использовать OpenDDS. OpenDDS также включает поддержку спецификаций DDS Security и XTypes.
OpenDDS построен на уровне абстракции ACE для обеспечения переносимости платформы. OpenDDS также использует возможности TAO для компиляции IDL и информационного репозитория OpenDDS DCPS.
Первичная разработка OpenDDS была осуществлена компанией Object Computing, Incorporated в Сент-Луисе и Фениксе. Он распространяется на условиях щедрой лицензии, аналогичных ACE, TAO и MPC. Подробности смотрите в файле LICENSE
.
Оглавление:
Руководство разработчика OpenDDS доступно по адресу https://opendds.readthedocs.io/en/latest-release.
Разработчикам, желающим внести свой вклад в OpenDDS, прочтите рекомендации по разработке.
Остальную документацию можно найти в каталоге docs
.
Для получения коммерческой поддержки см. https://opendds.org/support.html.
Вопросы, касающиеся OpenDDS, следует направлять в обсуждения GitHub.
Если вы хотите отправить отчет об ошибке:
tests/DCPS/MyExample
( MyExample
— это заполнитель.)run_test.pl
. Обязательно задокументируйте варианты. Для вдохновения tests/DCPS/HelloWorld/run_test.pl
.README.rst
, содержащий общий обзор примера и проблемы, которую он иллюстрирует. Должно быть возможно собрать и запустить пример с помощью run_test.pl
как описано в кратких руководствах для Windows и Linux. Если проблема кроется в примере, то интерфейс запроса на извлечение GitHub позволит людям обсуждать, комментировать и предлагать изменения, чтобы пример заработал. Если проблема кроется в OpenDDS, то примером является новый тестовый пример.
Этот выпуск OpenDDS основан на официальной спецификации DDS/2015-04-10 (версия 1.4). Он поддерживает следующие транспортные протоколы:
Функции RTPS (совместимость) основаны на официальной спецификации DDS-RTPS/2019-04-03 (версия 2.3). Дополнительные сведения о RTPS см. в Руководстве разработчика OpenDDS и в файле docs/design/RTPS.
См. Руководство разработчика для получения информации о соответствии OpenDDS спецификации DDS. Если вы хотите внести свой вклад в функцию или спонсировать разработчиков, чтобы они добавили функцию, см. контактную информацию в разделе «Поддержка» выше.
Это только необходимые зависимости. Полный подробный список зависимостей, включая необязательные, см. на странице https://opendds.readthedocs.io/en/latest-release/devguide/building/dependents.html.
OpenDDS требует TAO как для компиляции IDL, так и для взаимодействия с DCPSInfoRepo. Также требуется ACE, но он всегда включен в TAO. Если вы будете использовать сценарий configure
для OpenDDS, вам не нужно сначала загружать TAO — сценарий configure
загрузит его за вас.
Perl используется для сценария настройки, запуска автоматических тестов и примеров, включенных в это исходное дерево, а также создания файлов Makefile или Visual Studio.
В Windows мы рекомендуем использовать Strawberry Perl.
Этот выпуск OpenDDS был протестирован на следующих платформах:
Семейство Linux:
Семейство Windows:
Встроенные/мобильные устройства/Интернет вещей:
Мы создали OpenDDS для VxWorks 6.9, 7 и 21.03 и провели базовые тесты системы и производительности (но не весь набор регрессионных тестов). Посетите страницу поддержки OpenDDS для получения дополнительной информации о поддержке ACE, TAO и OpenDDS в VxWorks. Загрузите RPM-пакеты VxWorks для ACE, TAO и OpenDDS здесь.
Этот выпуск OpenDDS был протестирован с использованием следующих компиляторов:
Инструкции по сборке и установке см. https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html.
Ознакомьтесь с кратким руководством по Docker, чтобы узнать, как использовать предварительно созданный образ Docker.