Version 3.0 Released

(19 August 2011) We are pleased to announce the release of OpenDDS version 3.0, including OpenDDS's Eclipse-based Modeling SDK.

  • Transport configuration has undergone a major redesign and any existing transport application code or transport configuration files need to be updated. See the Developer's Guide for details of the design. See $DDS_ROOT/docs/OpenDDS_3.0_Transition.txt for a description on how to migrate your applications to the OpenDDS 3.0 design. As a part of this design OpenDDS gains the following capabilities:
    • Most applications can do all transport configuration via configuration files (no transport source code required).
    • Individual writers and readers can now support multiple transports.
  • The simpleTcp transport was renamed to tcp (the directory containing its source code was also renamed).
  • The udp transport no longer required a local_address when being configured. If not specified, the property defaults to a value selected by the operating system (similar to the tcp transport).
  • Details of the OpenDDS Modeling SDK changes in this release are documented in the Eclipse-based help, see OpenDDS Modeling SDK Guide -> Getting Started -> Introduction to the OpenDDS Modeling SDK.
  • First release of OpenDDS Real-Time Data (RTD) for Excel an Excel Add-in and RTD Server. It allows visualization of an operating OpenDDS system from within Excel. It gives a tree view of a repository that mirrors the stand-alone OpenDDS Monitor application's tree view, but with the additional capabilities to automatically restart monitoring of a repository when a saved workbook is opened, monitoring multiple repositories simultaneously, and snapshot a repository monitor tree view.
  • Wireshark dissector improvements include removal of the restriction that inforepo IOR be placed in a special file. Dissector config files can now be generated by opendds_idl.
  • The monitor tool has a new view which is an alternate to the Graphviz view. The Node view uses Qt gui elements to model the OpenDDS system. Users can manipulate Node view graphs before saving them to PNG files.
Version 2.4 Released

(25 July 2011) We are pleased to announce the concurrent release of OpenDDS version 2.4 and OpenDDS's Eclipse-based Modeling SDK, version 1.1.0 (see below).

  • This will be the final release of OpenDDS that will build with the current patch level of TAO 1.5a. This release is compatible with (the current patch levels of) TAO 1.5a, and 1.6a, as well as the current DOC Group release. Future releases will be compatible with TAO 1.6a and the DOC group -- see the README file for details on TAO versions.
  • The implementation of ContentFilteredTopics now defaults to evaluating the filter expression at the publisher so that data samples which would be ignored by the subscriber can be dropped before getting to the transport. This feature can be turned off with "-DCPSPublisherContentFilter 0" or the equivalent setting in the [common] section of the configuration file. When using non-default DEADLINE or LIVELINESS QoS policy values, special consideration needs to be given to how these "missing" samples impact the QoS behavior, see the document in docs/design/CONTENT_SUBSCRIPTION.
  • DisjointSequence, an internal class used to track sequence numbers for both multicast and wait_for_acks, was enhanced to store contiguous ranges instead of individual values. Thus it will not require so much memory in cases where there are gaps in the sequence numbers.
  • Began implementing the DDS Interoperabiltiy specification aka "RTPS" (see OMG formal/2010-11-01). Changes in this release include fragmentation and reassembly for udp and multicast, 64-bit sequence numbers, and the ability to transmit only the key fields for the instance-control messages (register, unregister, dispose).
  • The monitor tool, an instrumentation viewer application for OpenDDS, has new options for generating and viewing directed graphs. The tool generates Graphviz-readable .dot files, manages converting the files to representative .png files, and displays the generated .png files in its GUI. Monitor executes Graphviz command-line tools in a separate process. There are no compile-time or run-time dependencies on Graphviz. The monitor tool will run on systems without Graphviz installed but will not be able to generate .png files.
  • Enhanced the Wireshark packet dissector to inspect SAMPLE_DATA message contents. This requires a data model expressed in an .ini file (documented in tools/dissector/README). In order to associate a SAMPLE_DATA message with a type, the publication ID is harvested from InfoRepo GIOP messages. In order to detect InfoRepo GIOP messages, the IOR for the InfoRepo must be written in a file called "IOR.txt" in the current working directory when wireshark is invoked.
Modeling SDK 1.1.0 Released

(25 July 2011) We are pleased to announce the release of OpenDDS's Eclipse-based Modeling SDK, version 1.1.0.

  • Topic types from a DcpsLib shown in Project Explorer can be dragged to diagram for another DcpsLib. This allows the same Topic to be used in multiple DcpsLibs. NOTE: External multitopics may need types to be registered manually.
  • For QoS policy Periods, symbol "Infinity" can be used for the second and nanosecond fields.
  • In the main diagram, when a lib (or package) on the canvas is dragged inside a parent package, visual feedback will occur that the parent package has a new child. Previously, unless dragging to the top portion of the parent, the child was merely moved to a new location on the canvas.
  • Added validation warning if Pub/Sub's transportID not explicitly set.
  • Fixed so that when removing a Topic or MultiTopic's data type reference the Struct referred to by the data type is not also removed.
  • Generated IDL now protected from multiple inclusion.
  • Modeling SDK executables no longer require -ORBSvcConfig command line arguments to load transport shared libraries.
  • Fixed support for generation of IDL with cycles in its definitions.
  • Fixed "Decorator refresh failure" that occurred when doing validation in one sub-diagram that is the same type as another another opened sub-diagram (e.g. two PolicyLib diagrams). This problem was causing subsequent attempts to validate to fail in either sub-diagram.
  • Disabled cut, copy, and paste menu items to prevent model corruption that could occur in some cases.
  • Added QoS policy validation checks consistent with checks done in OpenDDS C++ code.
  • Fixed so that Ecore packages do no show up multiple times when navigating model contents in Project Explorer.
Navy 2011 Opportunity Forum

(1 June 2011) OCI will attend the Navy Opportunity Forum as a result of an SBIR project to add a Modeling SDK to OpenDDS.

OCI will be exhibiting and presenting at the Navy 2011 Opportunity Forum from June 6th through the 8th at the Hyatt Regency in Crystal City VA. This event is described as the Navy's "strategic resource for open innovation." The event also includes two days of pre-conference briefings by Navy Program Managers and selected Primes covering their key technologies and requirements. There will also be a full schedule of one-on-one meetings between the innovators and their prospective users.

OCI was selected to participate in this invitation only, Navy sponsored event as a result of winning an SBIR project commencing in 2010 to develop open source modeling and code generation tools for a DDS messaging framework. The initial target systems will be used for NAVAIR AWACS mission simulation. The tools were first released in March of this year and an OCI team continues to add capabilities. The tools are plug-ins to the popular open source Eclipse Modeling Framework (EMF). OCI has already used these tools with DDS on an unrelated financial services project to obtain substantial productivity gains. Modeling tools dramatically reduce the time to describe and develop complex systems. Also by means of the tool's built-in checking the generated code is free of the usual programming errors.

The project also included functional expansion of OCI's open source implementation of the OMG Data Distribution Service for Real-Time Systems, known as OpenDDS, and the inclusion of some management tools, which are also existing well-tested open source products in their own right.

Modeling SDK 1.0.1 Released

(1 April 2011) We are pleased to announce the release of OpenDDS's Eclipse-based Modeling SDK version 1.0.1. (Version 1.0.0 was released along with OpenDDS 2.3)

  • Various enhancements and fixes were made to the diagram modeling portion of the OpenDDS Modeling SDK. These include:
    • The property sheet now includes a tab for viewing and editing comments related to the selected figure. These comments are included in the generated C++ code.
    • In some cases, when attempting to add a figure to a Package on the main diagram, the figure would unknowingly be placed as a peer of the Package on the canvas. A fix was made so the figure could be added to any portion of the Package to be treated as a child of the Package.
    • When creating a new figure, the cursor will now be set on a label within the figure to edit. Previously, in some cases the cursor would not be placed on any label, increasing the chance to overlook defining required properties.
    • Fixed so that when a Topic or MultiTopic's data type is changed a refresh of the data type is properly done. Previously both the original and new data type may have been displayed.
    • Previously, when deleting a figure that included an association with a shared policy, the shared policy would also be deleted. Now shared policies will be retained in this case.
    • In the DcpsLib diagram, the special connector tools in the palette for linking DataReaders and DataWriters to topic related figures are no longer needed and have been removed. These links can now be done using connection handles as is done for other figures.
    • Fixed diagram preferences all showing up under the DataLib preferences, making it hard to set preferences for the different diagram types.
    • Policy definitions from the OpenDDS Developer's Guide were included in the Eclipse help content to make it easier to get to these definitions during modeling.
    • The modeling help content was broken out into subsections to make it easier to navigate.
  • On the code generation portion of the OpenDDS Modeling SDK, a fix was made so that when creating a new element value in the Model Customization tab property sheet, the value shown for the element is the actual value and not the value from the previous element displayed.
Version 2.3 Released

(18 February 2011) We are pleased to announce the release of OpenDDS version 2.3

  • First release of the OpenDDS Modeling SDK, a modeling tool that can be used by the application developer to define the required middleware components and data structures as a UML model and then generate the code to implement the model using OpenDDS. The generated code can then be compiled and linked with the application to provide seamless middleware support to the application. UML models are manipulated using a graphical editor based on Eclipse. See the OpenDDS Developer's Guide for installation instructions.
  • DCPSInfoRepo no longer requires an -ORBSvcConf argument when using Built-In Topics. The DCPSInfoRepo process will take care of loading SimpleTCP (if it's not already loaded).
  • Fixed method signature of DataWriter::register_instance_w_timestamp() to have two arguments per the latest spec, not three.
  • "make install" is now available on platforms using GNU Make and when building with OCI TAO 1.6a or DOC Group TAO.
  • Added support for Microsoft Visual Studio 2010 (vc10).

Version 2.2 Released

(17 August 2010) We are pleased to announce the release of OpenDDS version 2.2!

  • Completed the implementation of the Content-Subscription Profile (which was begun in version 1.3 of OpenDDS). This includes:
    • QueryCondition (previously OpenDDS had a partial implementation)
    • ContentFilteredTopic
    • MultiTopic
    The content-subscription profile can be disabled at compile-time in order to reduce footprint: set the MPC feature "content_subscription" to 0.
  • The code generation tools for OpenDDS have changed in this release. The Perl script "dcps_ts.pl" is no longer used and instead the OpenDDS IDL Compiler "opendds_idl" takes its place. opendds_idl also includes the functionality which used to be in tao_idl and enabled with -Gdcps. Existing applications that use MPC do not need to make any changes unless they happen to depend on some rarely-used arguments to dcps_ts.pl. See the OpenDDS Developer's Guide for the list of arguments accepted by opendds_idl.
  • Renamed odds_repoctl command to repoctl. Add a decorator if needed when installing external to the OpenDDS directories.
  • Renamed odds_monitor command to monitor. Add a decorator if needed when installing external to the OpenDDS directories.
  • Renamed Wireshark dissector 'odds' library to 'OpenDDS_Dissector'. The source directory was renamed from $DDS_ROOT/tools/odds_dissector to $DDS_ROOT/tools/dissector.
  • Fixed transport so it now allows associations between datareaders and datawriters attached to the same transport to work.
  • Fixed a bug that causes samples larger than 64K to not work correctly with the SimpleTCP transport.
  • Added nak_delay_intervals and nak_max configuration options for reliable multicast to help reduce naks.
  • Added support for Ownership qos.
  • Added support for GROUP presentation.
  • Changed the default DataWriterQos reliability max_blocking_time from infinite to be 100ms to be consistent with spec 1.2.
  • A new "configure" script is available to assist with setting up prerequisites for OpenDDS compilation, including optionally downloading ACE+TAO. See the INSTALL file for details.
See the Release Notes for details.

OpenDDS Programming with C++ Training Class in St. Louis

(From http://www.ociweb.com/news/Announcing_OpenDDS_Programming_Open_Enrollment_Class)

(19 January 2011) St. Louis, MO - OCI will deliver a public offering of the OpenDDS Programming with C++ training course in the OCI Education Center in St. Louis, Missouri, USA.

Summary:

Title: OpenDDS Programming with C++
Dates: Tuesday-Friday, 22-25 March 2011
Times: 9:00 AM to 4:30 PM
Location: OCI Education Center in St. Louis, Missouri, USA
Price: $1,600 USD per student
Registration: Click here

OpenDDS Programming with C++ provides students with a working knowledge of the DDS specification, the OpenDDS implementation, and hands-on experience developing applications using OpenDDS.

Upon completion of this course, participants will be able to:

  • Understand the Data Distribution Service's role in developing distributed applications
  • Define custom DDS data types using OMG Interface Definition Language (IDL)
  • Create DDS publishers and data writers, and DDS subscribers and data readers
  • Understand DDS Quality of Service (QoS) settings and apply them to DDS entities

Registration:

Visit http://www.ociweb.com/training/OpenDDS-Programming-with-C++ for the full course description and outline, then click the "OCI" link near the bottom of the page to register. Or contact OCI at (314)579-0066 or training@ociweb.com.

Don't see what you're looking for? Then visit OCI's complete course catalog for more training offerings. All OCI courses can also be offered for private training events at your company or organization.

Contact OCI for more information.

Version 2.1.3 Released

(18 June 2010) We are pleased to announce the release of OpenDDS version 2.1.3!

  • Various fixes for memory management issue on transport framework.
  • Fixed duplicate message issue caused by a lost link.
  • Memory leak fixes.
  • Fixed deadlocks on reliable multicast transport during association and shutdown periods.
  • Improved reliable multicast transport and reduced nak overflow.
  • Extended the capabilities of the OpenDDS-Bench performance test framework. This consists mostly of expanded pre-configured tests as well as additional execution and plotting scripts. The user guide at performance-tests/Bench/doc/user_guide.html contains the details.
  • Masked interrupts in threads created by OpenDDS to avoid failures while in system calls. Example:
     ERROR: ACE::handle_write_ready return -1 while waiting
                        to unclog. handle_write_ready: Interrupted system call
  • Added support to set the TTL for multicast transports.

OpenDDS to be featured at
2010 SBIR National Conference

(19 April 2010) As a U.S. Navy Phase II Small Business Innovation Research (SBIR) award winner, OCI has been invited to exhibit at the 2010 National SBIR Conference in Hartford, CT. As part of their participation in the conference, OCI will demonstrate a vehicle traffic monitoring application that leverages OpenDDS to disseminate traffic data and vehicle speeding incidents to interested applications. OCI will also meet with representatives of several Federal agencies (e.g., Department of Defense, Department of Energy, Department of Transportation, NASA), as well as major companies at the conference to discuss the activities of the Phase II project, the 2010-2011 road-map of OpenDDS enhancements, and future applications of OpenDDS.

Version 2.1.2 Released

(23 March 2010) We are pleased to announce the release of OpenDDS version 2.1.2!

  • This is a bugfix release to account for issues introduced by the previous version.
  • Various bugfixes for locking issues during sample removal.
  • Fixed a bug in obtain_buffer() that did not return the TIMEOUT error code when max_blocking_time is 0 or a very small period.
  • Fixed a deadlock in the new IP multicast transport caused when data is received while a reliable session is handshaking.
  • Fixed an issue which caused spurious synch threads to be created for connectionless transports (i.e. UDP/IP, IP multicast).
  • Enhanced the experimental UDP/IP transport to support multiplexing samples to unique endpoints rather than unique entities.

Version 2.1.1 Released

(8 March 2010) We are pleased to announce the release of OpenDDS version 2.1.1!

  • This is a bugfix release to account for issues introduced by the previous version.
  • Various bugfixes have been applied to the new IP multicast transport and the Extensible Transport Framework (ETF) to improve stability.
  • Added IDL for ContentFilteredTopic and MultiTopic, but they are not yet implemented (operations will return NULL or RETCODE_UNSUPPORTED).
  • A Wireshark 1.2.x compatible dissector is included in this release. See $DDS_ROOT/tools/odds_dissector/README for details.

Version 2.1 Released

(5 February 2010) We are pleased to announce the release of OpenDDS version 2.1!

  • The OpenDDS-Bench performance testing framework has been enhanced to include support for user-submitted performance results.
  • A new monitor library introduces an instrumentation mechanism for reporting OpenDDS runtime information.
  • A new instrumentation application is available to view executing OpenDDS service Entities.
  • A new IP multicast transport is available which replaces the older ReliableMulticast and SimpleMcast transports.
  • A new UDP/IP transport is available which replaces the older SimpleUdp transport.
  • Numerous bugs in the Extensible Transport Framework (ETF) have been addressed to improve the stability of new and existing transports.

Performance Results Available

(28 January 2010) Performance testing results for OpenDDS pre-release version 2.1 are now available. See the Performance section on the About OpenDDS page for details. Initially results from latency testing are available. We have been doing extensive testing on LANS, single boxes and Rack mounted systems to quantify the performance capabilities of OpenDDS in different settings. This new information offers insight into OpenDDS and shows it is a formidable competitor to proprietary implementations.

Version 2.0.1 Released

(23 October 2009) We are pleased to announce the release of OpenDDS version 2.0.1!

  • This is a bugfix release to account for issues introduced by the 2.0 integration process. No new features have been added in this release.
  • Bugfixes for STLport support using Sun CC compilers.
  • Corrected default ReliablityQoS policy for DataWriter entities.
  • Bugfixes to Java language bindings including TAO_IDL interface changes introduced in DOC TAO 1.7.4 and incorrectly generated project files.

Version 2.0 Released

(23 September 2009) We are pleased to announce the release of OpenDDS version 2.0!

  • This is the first release of OpenDDS that conforms to the minimum compliance profile as documented in formal/07-01-01 (version 1.2). Near-complete support for the persistence profile and initial support for the content-subscription profile is also provided in this release.
    • Numerous API updates have been introduced for 1.2 compliance.
    • A number of QoS policies have been updated or implemented to meet the minimum compliance profile:
      • DESTINATION_ORDER
      • ENTITY_FACTORY
      • LIVELINESS
      • PRESENTATION
      • READER_DATA_LIFECYCLE
      • TIME_BASED_FILTER
      • WRITER_DATA_LIFECYCLE
  • Fixed bugs in QueryCondition.
  • Fixed bugs in instance state management.

Version 1.3 Released

(27 July 2009) We are pleased to announce the release of OpenDDS version 1.3!

  • Improved OMG DDS 1.2 specification conformance:
    • Communication Status entity structures and behaviors
    • Implemented TRANSPORT_PRIORITY and LATENCY_BUDGET QoS
    • Implemented the ReadCondition interface and associated operations on the DataReader
    • Partially implemented the QueryCondition interface -- only queries of the form "ORDER BY a[, b, c...]" have any effect
    • Implemented DataWriter::wait_for_acknowledgements()
    • Instance handles and related operations are now spec-compliant
  • Fixed bugs in DURABILITY, PARTITION and LIFESPAN QoS
  • Added a command-line utility, opendds_repo_ctl for controlling the DCPSInfoRepo server
  • Deleting a DataWriter now blocks, for a configurable amount of time, until pending samples have been delivered by the transport.
  • Added a Java Message Service 1.1 (JMS) provider built on top of OpenDDS
  • Added Windows Mobile 6 as a supported platform

OpenDDS in Navy simulation system

(15 July 2009) The US Navy is investing in OpenDDS for use in the Hawkeye simulation systems.
See the OCI announcement for details.

Version 1.2 Released

(7 November 2008) We are pleased to announce the release of OpenDDS version 1.2!

  • Java Bindings for OpenDDS
  • Added the ability for using multiple repositories to provide redundant service metadata management
  • Implemented the WaitSet, GuardCondition, and StatusCondition interfaces from the OMG DDS specification
  • Implemented DomainParticipant::get_current_time() from formal/07-01-01
  • Removed requirement for repository domain specification files
  • Internal service Entity identifiers have been expanded to 128 bits
  • dcps_ts.pl changes
  • DCPSInfoRepo changes
  • Fixed bug in DCPSInfoRepo that did not re-evaluate the compatibility and associations when QoS change is made
  • Fixed bugs that affected connection establishment
  • Added datalink_release_delay and removed keep_link configuration
  • Fixed a potential deadlock in reliable multicast transport

Version 1.1 Released

(20 June 2008) We are pleased to announce the release of OpenDDS version 1.1!

  • More QoS features have been implemented
  • dispose() notifications have been added
  • Added IPv6 support
  • Improved memory management
  • Multicast transport improvements
  • Implemented Changeable QoS policies
  • Use multiple DCPSInfoRepos
  • Documentation updates
  • New tests and examples

1.0 Released

(9 July 2007) We are pleased to announce the release of OpenDDS version 1.0!

  • This product has been renamed to OpenDDS from "TAO DDS"
  • The default participant setting for Built-In-Topics (BITs) is now "on"
  • Simplified .mpc and .mpb files
  • Supported built-in sequences (the CORBA::*Seq sequences)
  • The DDS entities (e.g. DomainParticipant, FooDataReader) have changed from remote IDL types to local IDL types and the data sequence and info sequence types have changed from normal IDL sequences to types with extra functionality required to support zero-copy reads. This change requires changes to DDS user code.
  • Made the sub/pub repo id generated by DCPSInfoRepo to be unique per DCPSInfoRepo instance instead of being unique per domain. This allows multiple domains in the same process (connecting to the same DCPSInfoRepo instance) to share the same transport.
New website opendds.org

(9 July 2007) The website for opendds.org has been redesigned to accompany the release of OpenDDS version 1.0!

0.12 Released

(18 May 2007) We are pleased to announce the release of OpenDDS version 0.12!

  • Added File based persistence for DCPSInfoRepo
  • Added New Transport: Reliable Multicast
  • Added Zero Copy Read support
  • Fixed Bugs

0.11 Released

(12 February 2007) We are pleased to announce the release of OpenDDS version 0.11!

  • Moved DCPSInfoRepo executable to DDS_ROOT/bin
  • Improved Logging
  • Improved resource clean up on disconnection
  • Fixed Memory Leaks
  • Fixed Bugs