Summary of the points to convey in the next slides At-most-once (store samples in memory), exactly once (store samples on disk) delivery semantics Load balance among DRs (RR, RR with explicit availability). Although non-queue consumers (e.g., tools) can subscribe to a shared reader queue as well. Providing Fault Tolerance: sharedReaderQueue synchronization AND configuration synchronization Premium product Can run as a Windows Service Works with point to point and Request-Reply Reliable with explicit application acknowledgment. Producer (DW) receives an explicit ACK. Also the QS gets an ACK when the consume is done processing. Queue Producer/Consumer and Requester/Replier wrapper abstracts how to interact with the QS and SharedReaderQueues. Restful-like remote admin interface: including monitoring of sharedReaderQueue status. Request-Reply monitoring, or Pub-Sub monitoring. Designed for the real-world: sample is always delivered no matter the use pattern, while providing replication when things go south, scale well, transact to disk and remotely monitoring and administered.
(choose the fields displayed)
TechTalk: Connext DDS 5.2.
RTI Connext 5.2.0
The Real-time Connectivity Platform for the Industrial Internet of Things
Jan Van Bruaene - VP of Engineering
Vien Chan – Senior Product Manager
What we’ll cover
• What’s in the box
• Customer feedback
• Supporting new use cases
• The big boulders of this release
• Transitioning to 5.2.0
New RTI Connext bundling
• Host bundle: all non-compiler specific files,
such as documentation, header files, tools,
services executables (e.g., Routing Service or
• Target bundle: libraries. Target bundles are
shipped in a new RTI packaging format.
New RTI Connext bundling – Cont.
• Package types: Core, Basic, Pro, Eval, and add-ons
– Core package includes basic libs,
does not include RTI applications/
– Basic, Pro and Eval all have
the same functionality.
The bundles differ in which
components are license
– Installers are now available
for all host package types.
– Targets are installed through
the new RTI package mgr.
New RTI Package Manager
The RTI package file (.rtipkg) is a compressed file containing:
– package.properties (file) describing the package
– MANIFEST.xml (file) containing a list of files to be installed.
– Compressed files and directory structure to be installed
The package manager handles backups and patch installations.
Use the RTI Package Manager (bin/rtipkginstall, or
from the Launcher GUI) to install target bundles,
patches, ports and feature accelerations.
Resources used by
the RTI provided
Creation of a
When you start any
New documentation look and format
More platforms are now supported
• RHEL 6.5 on x86 and x64
• RHEL 7 on x86 and x64
• Ubuntu 14.04
• Windows 8, 8.1 (VS2013)
• Windows 8 and server
2012 R2 (VS2013) on x64
• OS X 10.10 (Yosemite) on
x64 … including tools on
• Android 2.3 – 4.4 on ARMv7a
• VxWorks 6.9.4 on PPC (e500v2)
• VxWorks 7.0 on x86
• Integrity 11.0.4 on p4080, x86
• AIX 7.1 on POWER7 x86
• RT NI Linux/ ARM7
Check out the platform notes
for details, including which compilation flags we
used, what are required system libs
More complete product support
• .NET API Support
– for Custom Content Filter
– for Optional Members
• Ada language binding available today
– Ada compiler upgraded to GNAT 7.3.2
• Database Adapter for Microsoft SQL Server
• RTI DDS LabVIEW Toolkit support for real-time
Addressing customer use cases
Better support for large data or variable sized samples
• Enable the number of elements in a Sequence to be unbounded.
• Enable the number bytes in a String to be unbounded
• Support unbounded Sequences and Strings for key fields
• Support use of Content Filter with unbounded sequence and strings
• Support in the following languages: C, C++/CLI, .NET, Dynamic Data and Built-
• Does not support Java (yet) (for generated Java Code. It is supported in Dyn Data.)
• Persistence Service does not support unbounded sequence/strings out-of-the-box.
• Recorder supports only serialized recording of variable sized samples.
• Excel currently already disallows work with unbounded types.
• Does not support Database Integration Service
Addressing customer use cases
Ability to serialize sample into buffer and deserialize sample
• Two new TypeSupport operations to serialize a sample into a
buffer and deserialize a sample from a buffer.
• The sample serialization/deserialization uses CDR
• Supported in the following languages:
– Generated Code: C, C++, Java and .NET
– Dynamic Data: C, C++ (traditional and modern)
Addressing customer use cases
• TCP transport support for load balancers, tested with F5 hardware LB.
• New option to release the resources associated to a disposed instance. We
now also support the standard service_cleanup delay in PS.
• Several TCP and TLS enhancements: more scalable and robust
• Ability to supervise the end-point discovery provides additional level of control
of who can be discovered.
• Ability to Add Metadata Flags to Samples
• Allow out-of-order type definitions in XML configuration files
• Enable user to attach response to an application acknowledgement message
and notify the writer.
• Enable users to provide user-managed threads to the middleware.
… and tons more.
Please check the Release Notes for more details.
Stable connectivity platform for IIoT
Addressing product issues
• Better TCP transport! More robust and more scalable.
• Resolved communication issue for two participants on the same node when
one has SHMEM transport disabled.
• Resolved memory growth issues in more dynamic environments
• Dynamic Data API fixes
• DW/DR Liveliness QoS Policy fixes
• Resolved interoperability issue when using UDPv6 transport
• Large data sample repair fix
• Domain Participant creation fixes related when no shared memory segment
is available, or when no unique IP address is available (MacOS)
• Resolved issues related to DDS entity destruction.
Please check the Release Notes for a description of all bug fixes. We’ve spent a lot of effort
addressing product issues to make this a very stable release.
• C++ PSM
• Queuing Service
• Data Visualization
• New Launcher
Why a new code generator?
up to 10x faster
Rtiddsgen2.0 - Continued
• Obfuscate option to share IDL with others
• New generation options (-create, -update) to avoid erroneously
overwriting previously generated example, type or make files
• XSD-based code generation to be supported after 5.2 release
• No support for bitfields
• -corba, -metp use the rtiddsgen1.0-based code generator. This
capability is provided through corresponding add-on products.
C++ PSM (Platform Specific Model)
• A New C++ API for C++03 and C++11
– A modern C++ API which works well with the
– An API that is efficient, expressive, easy-to-use,
– Generic programming, automatic resource
management, use of exceptions, C++11
features such as move operations.
• Same feature support as the other RTI
supported language APIs, including RTI
extensions and XML application creation.
Note: Traditional C++ PSM
is still supported
under 35 lines
of C++11 Code
(see blog post)
Easier to maintain
Add-on product offering
available on select platforms
Supporting 3 key communication patterns
Request / Reply
- At least once
- At most once
Use Case: High Speed Processing in Cloud
• Eze Software delivers
software to more
than 1,500 buy-side
institutions in 30
• RTI will be the core
middleware for the
Eze financial trading
Connext TCP (WAN)
Data Center Cloud
Connext Processing Bus
Shared Reader Queues
Load balance and
Redelivery among DRs
• Round Robin (RR)
• RR with explicit
(e.g., tools) can
Support for Request/Reply pattern
• Implemented with two SharedReaderQueues:
One for the request and one for the reply
Producer/Consumer Wrapper API
Requester/Replier Wrapper API
• Visualize live data flowing in the system
– Subscribe to topics and visualize them through:
• A table with one row per instance (Instance Table)
• A log of data from one or more topics (Sample Log)
• A chart of value(s) versus time (Time Chart)
• A view which shows all fields and meta-data (Sample Inspector)
– Export data to CSV & text files
– Drag & Drop for quick and simple configuration
– Remembers and restores your views and subscriptions
Launcher 2.0 - New Implementation
and SWT –
on all OS
Launcher 2.0 – Cont.
Extensible at Run Time
New Third Party Tab
New License Dialog
New Command History Dialog
Automatic downloadable components
New Installed Products Table
New Documentation and
Help Links Panel
• UDPv6 class ID is now RTPS spec compliant
– Admin console will help you identify the compatibility issue
– Connext 5.1 backward compatibility mode
• Issue when using built-in topics to monitor Routing Service, Queuing
Service or Data Integration Service while mixing 5.1 / 5.2 versions
• Monitoring types are not backwards compatible
• Solaris Sparc Shared memory compatibility issue
New QoS values for
• New defaults for
– DiscoveryConfig Built-In Writer
– DataReader Resource Limits:
• HighThroughput and AutoTuning built-in QoS profiles
changed to resolve an issue where communication may
fail when writing small samples
Transitioning from 5.1 to 5.2
• Regenerate and recompile
• Automation scripts will need to be updated
due the new directory structure
– Change scripts which launch applications like rtiddsgen,
– Change the build path to point to the new SDK directory
– Change library path to point to the new directory
• RTI Connext examples
are updated for 5.2.0.
Stay tuned for blog posts (http://blogs.rti.com)
with lots of details on the various 5.2.0 features
These slides will be available at
For More Information
• RTI site: www.rti.com
• Examples, forum, papers: community.rti.com
• Free RTI Connext DDS Pro:
• Youtube: RealTimeInnovations
• Follow: @realtimeinnov