TechTalk: Connext DDS 5.2 - Faster and Easier Development of Industrial Internet Systems and Applications
Watch on-demand: https://youtu.be/j1G0MHC0Vwc
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
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.
5. 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.
6. 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.
7. 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.
10. 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
11. 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
12. 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
13. 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)
14. 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.
15. 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.
18. Why a new code generator?
up to 10x faster
Code generation
Customizable
templates
19. 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.
21. 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
24. Supporting 3 key communication patterns
2004
2015
2013
Publish-Subscribe
Request / Reply
Queuing
- At least once
- At most once
25. 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
26. 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
27. 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
32. 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
40. Launcher 2.0 - New Implementation
Using Java
and SWT –
Native Look
on all OS
41. 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
42. 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
43. 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
44. 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
46. 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
http://www.slideshare.net/RealTimeInnovations
jan@rti.com vien@rti.com
47.
48. For More Information
• RTI site: www.rti.com
• Examples, forum, papers: community.rti.com
• Free RTI Connext DDS Pro:
www.rti.com/downloads
• Youtube: RealTimeInnovations
• Follow: @realtimeinnov
Notas del editor
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.