OpenDDS é uma implementação C++ de código aberto da especificação "Data Distribution Service for Real-time Systems" (DDS) do Object Management Group, bem como algumas outras especificações relacionadas. Esses padrões definem um conjunto de interfaces e protocolos para o desenvolvimento de aplicações distribuídas baseadas nos modelos de publicação-assinatura e cache distribuído. Embora o próprio OpenDDS seja desenvolvido em C++, ligações Java são fornecidas para que aplicativos Java possam usar OpenDDS. OpenDDS também inclui suporte para as especificações DDS Security e XTypes.
OpenDDS é construído na camada de abstração ACE para fornecer portabilidade de plataforma. O OpenDDS também aproveita os recursos do TAO para compilação IDL e do OpenDDS DCPS Information Repository.
O desenvolvimento principal do OpenDDS foi feito pela Object Computing, Incorporated em St. Louis e Phoenix. É lançado sob termos de licença generosos semelhantes a ACE, TAO e MPC. Consulte o arquivo LICENSE
para obter detalhes.
Índice:
O Guia do desenvolvedor OpenDDS está disponível em https://opendds.readthedocs.io/en/latest-release.
Para desenvolvedores que desejam contribuir com o OpenDDS, leia as diretrizes de desenvolvimento.
Outra documentação pode ser encontrada no diretório docs
.
Para suporte comercial, consulte https://opendds.org/support.html.
Perguntas sobre o OpenDDS devem ser direcionadas para Discussões no GitHub.
Se você deseja enviar um relatório de bug:
tests/DCPS/MyExample
( MyExample
é um espaço reservado.)run_test.pl
. Certifique-se de documentar as opções. Consulte tests/DCPS/HelloWorld/run_test.pl
para inspiração.README.rst
que forneça uma visão geral resumida do exemplo e do problema que ele ilustra. Deve ser possível criar e executar o exemplo usando run_test.pl
como nos guias de início rápido para Windows e Linux. Se o problema estiver no exemplo, a interface Pull Request do GitHub permitirá que as pessoas discutam, comentem e proponham alterações para que o exemplo funcione. Se o problema estiver no OpenDDS, o exemplo é um novo caso de teste.
Esta versão do OpenDDS é baseada na Especificação DDS formal/2015-04-10 (versão 1.4). Possui os seguintes protocolos de transporte:
Os recursos RTPS (Interoperabilidade) são baseados na Especificação DDS-RTPS formal/2019-04-03 (versão 2.3). Consulte o Guia do desenvolvedor OpenDDS e o arquivo docs/design/RTPS para obter mais detalhes sobre RTPS.
Consulte o Guia do Desenvolvedor para obter informações sobre a conformidade do OpenDDS com a especificação DDS. Se você gostaria de contribuir com um recurso ou patrocinar os desenvolvedores para adicionar um recurso, consulte a seção Suporte acima para obter informações de contato.
Estas são apenas as dependências necessárias. Para obter uma lista completa e detalhada de dependências, incluindo as opcionais, consulte https://opendds.readthedocs.io/en/latest-release/devguide/building/dependencies.html.
OpenDDS requer TAO tanto para compilação IDL quanto para interação com DCPSInfoRepo. O ACE também é necessário, mas está sempre incluído no TAO. Se você estiver usando o script configure
para OpenDDS, não será necessário baixar o TAO primeiro - o script configure
fará o download para você.
Perl é usado para o script de configuração, executando os testes automatizados e exemplos incluídos nesta árvore de origem e gerando Makefiles ou arquivos de projeto do Visual Studio.
No Windows recomendamos o uso do Strawberry Perl.
Esta versão do OpenDDS foi testada nas seguintes plataformas:
Família Linux:
Família Windows:
Incorporado/Móvel/IoT:
Construímos OpenDDS para VxWorks 6.9, 7 e 21.03 e executamos testes básicos de sistema e desempenho (mas não todo o conjunto de testes de regressão). Consulte a página de suporte OpenDDS para obter mais informações sobre suporte para ACE, TAO e OpenDDS no VxWorks. Baixe os pacotes VxWorks RPM para ACE, TAO e OpenDDS aqui.
Esta versão do OpenDDS foi testada usando os seguintes compiladores:
Para obter instruções de construção e instalação, consulte https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html
Consulte o Docker Quick Start para saber como usar a imagem do Docker pré-construída.