Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TechTalk: Connext DDS 5.2.


Published on

TechTalk: Connext DDS 5.2 - Faster and Easier Development of Industrial Internet Systems and Applications

Watch on-demand:

Published in: Software
  • Be the first to comment

TechTalk: Connext DDS 5.2.

  1. 1. 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
  2. 2. Codename “Eddy”
  3. 3. What we’ll cover • What’s in the box • Customer feedback • Supporting new use cases • The big boulders of this release • Interoperability • Transitioning to 5.2.0
  4. 4. New RTI Connext bundling • Host bundle: all non-compiler specific files, such as documentation, header files, tools, services executables (e.g., Routing Service or Persistence Service). • Target bundle: libraries. Target bundles are shipped in a new RTI packaging format.
  5. 5. New RTI Connext bundling – Cont. • Package types: Core, Basic, Pro, Eval, and add-ons – Core package includes basic libs, does not include RTI applications/ services products. – Basic, Pro and Eval all have the same functionality. The bundles differ in which components are license managed. – Installers are now available for all host package types. – Targets are installed through the new RTI package mgr.
  6. 6. New RTI Package Manager The RTI package file (.rtipkg) is a compressed file containing: – (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.
  7. 7. New Directory Structure “SDK” RunTime resources: Resources used by the RTI provided tools, applications and services. Startup Scripts Creation of a User Workspace When you start any RTI application
  8. 8. New documentation look and format HTML Search Available at
  9. 9. 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 MacOS. • 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
  10. 10. 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 NI Linux/ARMv7
  11. 11. 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- in-types • Limitations: • 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
  12. 12. Addressing customer use cases Ability to serialize sample into buffer and deserialize sample from buffer • Two new TypeSupport operations to serialize a sample into a buffer and deserialize a sample from a buffer. • The sample serialization/deserialization uses CDR representation. • Supported in the following languages: – Generated Code: C, C++, Java and .NET – Dynamic Data: C, C++ (traditional and modern)
  13. 13. 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.
  14. 14. 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.
  15. 15. Big boulders • Rtiddsgen2.0 • C++ PSM • Queuing Service • Data Visualization • New Launcher
  16. 16. Code generation
  17. 17. Why a new code generator? up to 10x faster Code generation Customizable templates
  18. 18. 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 Rtiddsgen2.0 Limitations • 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.
  19. 19. New C++ language binding
  20. 20. C++ PSM (Platform Specific Model) • A New C++ API for C++03 and C++11 – A modern C++ API which works well with the standard library – An API that is efficient, expressive, easy-to-use, and easy-to-learn. – 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
  21. 21. A P2P distributed application in under 35 lines of C++11 Code (see blog post) Shorter Easier to maintain More robust
  22. 22. Queuing Service Add-on product offering available on select platforms
  23. 23. Supporting 3 key communication patterns 2004 2015 2013 Publish-Subscribe Request / Reply Queuing - At least once - At most once
  24. 24. Use Case: High Speed Processing in Cloud • Eze Software delivers financial trading software to more than 1,500 buy-side and sell-side institutions in 30 countries • RTI will be the core middleware for the Eze financial trading platform. Analytic s Connext TCP (WAN) Client Client Client Client Logging Redundant, Load- Balanced Reliable Multicast Data Center Cloud Gateway Processo r Gateway Processo r Gateway Processo r Gateway Processo r Load Balancer (F5) ConnextInputBus Connext Processing Bus Monitor Queue QueueQueueing Service
  25. 25. Shared Reader Queues Load balance and Redelivery among DRs • Round Robin (RR) • RR with explicit Queue Consumer availability Queuing Service Shared Subscriber SharedReader Queue SharedReader Queue DW DW DR DR DR 1 2 1 2 1 2 1 2 Tools (e.g., rtiddsspy) Non-Queue Consumers (e.g., tools) can still subscribe
  26. 26. Support for Request/Reply pattern • Implemented with two SharedReaderQueues: One for the request and one for the reply Requester Application Queuing Service Shared Subscriber Request Shared ReaderQueueDW Response Shared ReaderQueueDR Req 1 Res 1 Replier Application DR DW Res 1 Req 1
  27. 27. Producer/Consumer Wrapper API Queuing Service Shared ReaderQueue .NET only
  28. 28. Requester/Replier Wrapper API Queuing Service Request SRQ Reply SRQ .NET only
  29. 29. Various replication schemes are supported
  30. 30. Data Visualization
  31. 31. Features • 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
  32. 32. Subscription Dialog
  33. 33. Subscription Dialog Advanced Options Narrow down what is displayed • QoS Profiles • Content Filters • DataWriter Filters
  34. 34. Topic Data (Instance Table) Live values of all instances
  35. 35. Sample Inspector Live values of all fields and meta-data of the selected instance in the Sample Inspector
  36. 36. Sample Log
  37. 37. Time Chart with Live Mode & History Mode
  38. 38. New Launcher
  39. 39. Launcher 2.0 - New Implementation Using Java and SWT – Native Look on all OS
  40. 40. 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
  41. 41. Interoperability • UDPv6 class ID is now RTPS spec compliant – Admin console will help you identify the compatibility issue – Connext 5.1 backward compatibility mode (dds.transport.use_510_compatible_locator_kinds property) • 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
  42. 42. New QoS values for • New defaults for – DDS_DynamicDataProperty_t.buffer_max_size – DiscoveryConfig Built-In Writer autopurge_unregistered_instances_delay – DataReader Resource Limits: dynamically_allocate_fragmented_samples and max_fragments_per_sample • HighThroughput and AutoTuning built-in QoS profiles changed to resolve an issue where communication may fail when writing small samples
  43. 43. 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, routing_service, etc. – Change the build path to point to the new SDK directory – Change library path to point to the new directory
  44. 44. • RTI Connext examples are updated for 5.2.0.
  45. 45. Stay tuned for blog posts ( with lots of details on the various 5.2.0 features These slides will be available at
  46. 46. For More Information • RTI site: • Examples, forum, papers: • Free RTI Connext DDS Pro: • Youtube: RealTimeInnovations • Follow: @realtimeinnov