techtalk: connext dds 5.2
TRANSCRIPT
RTI Connext 5.2.0The Real-time Connectivity Platform for the Industrial Internet of ThingsJan Van Bruaene - VP of EngineeringVien Chan – Senior Product Manager
Codename “Eddy”
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
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.
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 havethe 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.
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, orfrom the Launcher GUI) to install target bundles,
patches, ports and feature accelerations.
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
New documentation look and format
HTML
Search
Available at Community.rti.com
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 notesfor 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
NI Linux/ARMv7
Addressing customer use casesBetter 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
Addressing customer use casesAbility 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)
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 IIoTAddressing 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.
Big boulders
• Rtiddsgen2.0 • C++ PSM• Queuing Service• Data Visualization• New Launcher
Code generation
Why a new code generator?
up to 10x faster Code generation
Customizable templates
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.
New C++ language binding
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
A P2P distributed application in under 35 lines of C++11 Code(see blog post)
ShorterEasier to maintainMore robust
Queuing ServiceAdd-on product offeringavailable on select platforms
Supporting 3 key communication patterns
2004
2015
2013
Publish-Subscribe
Request / Reply
Queuing- At least once- At most once
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.
Analytics
Connext TCP (WAN)
ClientClient
ClientClient
Logging
Redundant, Load-BalancedReliable Multicast
Data Center Cloud
GatewayProcessor
GatewayProcessor
GatewayProcessor
GatewayProcessor
Load Balancer
(F5)
Con
next
Inpu
t Bus
Connext Processing Bus
Monitor
QueueQueueQueueingService
Shared Reader Queues
Load balance and Redelivery among DRs• Round Robin (RR)• RR with explicit
Queue Consumer availability
Queuing Service
SharedSubscriber
SharedReaderQueue
SharedReaderQueue
DW
DW
DR
DR
DR
1 2
1 2
1
2
1 2
Tools(e.g., rtiddsspy)
Non-QueueConsumers (e.g., tools) canstill subscribe
Support for Request/Reply pattern
• Implemented with two SharedReaderQueues: One for the request and one for the reply
Requester Application
Queuing Service
SharedSubscriber
Request SharedReaderQueueDW
Response SharedReaderQueueDR
Req 1
Res 1
Replier Application
DR
DWRes 1
Req 1
Producer/Consumer Wrapper API
Queuing Service
SharedReaderQueue
.NET only
Requester/Replier Wrapper API
Queuing Service
Request SRQ
Reply SRQ .NET only
Various replication schemes are supported
Data Visualization
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
Subscription Dialog
Subscription Dialog Advanced Options
Narrow down what is displayed
• QoS Profiles• Content Filters• DataWriter Filters
Topic Data (Instance Table)
Live values of all instances
Sample Inspector
Live values of all fields and meta-data of the selected instance in the Sample Inspector
Sample Log
Time Chart with Live Mode & History Mode
New Launcher
Launcher 2.0 - New Implementation
Using Java and SWT –
Native Look 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
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
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
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
Community.rti.com
• RTI Connext examplesare 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 http://www.slideshare.net/RealTimeInnovations
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