OpenDDS adalah implementasi C++ sumber terbuka dari spesifikasi "Layanan Distribusi Data untuk Sistem Real-time" (DDS) Grup Manajemen Objek, serta beberapa spesifikasi terkait lainnya. Standar ini menentukan seperangkat antarmuka dan protokol untuk mengembangkan aplikasi terdistribusi berdasarkan model publikasi-berlangganan dan cache terdistribusi. Meskipun OpenDDS sendiri dikembangkan dalam C++, pengikatan Java disediakan agar aplikasi Java dapat menggunakan OpenDDS. OpenDDS juga menyertakan dukungan untuk spesifikasi DDS Security dan XTypes.
OpenDDS dibangun di atas lapisan abstraksi ACE untuk menyediakan portabilitas platform. OpenDDS juga memanfaatkan kemampuan TAO untuk kompilasi IDL dan OpenDDS DCPS Information Repository.
Pengembangan utama OpenDDS dilakukan oleh Object Computing, Incorporated di St. Louis dan Phoenix. Ini dirilis di bawah persyaratan lisensi yang mirip dengan ACE, TAO dan MPC. Lihat file LICENSE
untuk detailnya.
Daftar isi:
Panduan Pengembang OpenDDS tersedia di https://opendds.readthedocs.io/en/latest-release.
Bagi pengembang yang ingin berkontribusi pada OpenDDS, silakan baca pedoman pengembangan.
Dokumentasi lainnya dapat ditemukan di direktori docs
.
Untuk dukungan komersial, silakan lihat https://opendds.org/support.html.
Pertanyaan mengenai OpenDDS harus diarahkan ke Diskusi GitHub.
Jika Anda ingin mengajukan laporan bug:
tests/DCPS/MyExample
( MyExample
adalah pengganti.)run_test.pl
. Pastikan untuk mendokumentasikan pilihannya. Lihat tests/DCPS/HelloWorld/run_test.pl
untuk mendapatkan inspirasi.README.rst
yang memberikan gambaran umum tingkat tinggi tentang contoh dan masalah yang diilustrasikan. Seharusnya dimungkinkan untuk membuat dan menjalankan contoh menggunakan run_test.pl
seperti pada mulai cepat untuk Windows dan Linux. Jika masalahnya terletak pada contoh, maka antarmuka Permintaan Tarik GitHub akan memungkinkan orang untuk berdiskusi, mengomentari, dan mengusulkan perubahan agar contoh tersebut berfungsi. Jika masalahnya terletak pada OpenDDS, maka contohnya adalah test case baru.
Rilis OpenDDS ini didasarkan pada Spesifikasi DDS formal/2015-04-10 (versi 1.4). Ini menampilkan protokol transport berikut:
Fitur RTPS (Interoperabilitas) didasarkan pada Spesifikasi DDS-RTPS formal/2019-04-03 (versi 2.3). Lihat Panduan Pengembang OpenDDS dan file docs/design/RTPS untuk detail lebih lanjut tentang RTPS.
Lihat Panduan Pengembang untuk informasi tentang kepatuhan OpenDDS dengan spesifikasi DDS. Jika Anda ingin menyumbangkan fitur atau mensponsori pengembang untuk menambahkan fitur, silakan lihat bagian Dukungan di atas untuk informasi kontak.
Ini hanyalah dependensi yang diperlukan. Untuk daftar lengkap dependensi, termasuk dependensi opsional, lihat https://opendds.readthedocs.io/en/latest-release/devguide/building/dependencies.html.
OpenDDS memerlukan TAO untuk kompilasi IDL serta interaksi dengan DCPSInfoRepo. ACE juga diperlukan, namun selalu disertakan dengan TAO. Jika Anda akan menggunakan skrip configure
untuk OpenDDS, Anda tidak perlu mengunduh TAO terlebih dahulu -- skrip configure
akan mengunduhnya untuk Anda.
Perl digunakan untuk skrip konfigurasi, menjalankan pengujian otomatis dan contoh yang disertakan dalam pohon sumber ini, dan menghasilkan file proyek Makefiles atau Visual Studio.
Di Windows kami merekomendasikan penggunaan Strawberry Perl.
Rilis OpenDDS ini telah diuji pada platform berikut:
Keluarga Linux:
Keluarga Windows:
Tertanam/Seluler/IoT:
Kami telah membangun OpenDDS untuk VxWorks 6.9, 7, dan 21.03 dan telah menjalankan pengujian sistem dan kinerja dasar (tetapi tidak seluruh rangkaian pengujian regresi). Silakan lihat halaman Dukungan OpenDDS untuk informasi lebih lanjut tentang dukungan untuk ACE, TAO, dan OpenDDS di VxWorks. Unduh paket RPM VxWorks untuk ACE, TAO, dan OpenDDS di sini.
Rilis OpenDDS ini telah diuji menggunakan kompiler berikut:
Untuk petunjuk pembuatan dan pemasangan, lihat https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html
Lihat Mulai Cepat Docker untuk mengetahui cara menggunakan image buruh pelabuhan yang sudah dibuat sebelumnya.