7 dds innovations to improve your next distributed system
DESCRIPTION
Watch the replay: http://ecast.opensystemsmedia.com/392 Looking to build a complex distributed system based on the latest and greatest technical innovations? The Data Distribution Service (DDS) standard from the Object Management Group (OMG) provides the software infrastructure for a diverse range of systems, from small networking appliances to massive wind farms. Since its adoption in 2004, the DDS standard and its implementations have evolved to address the needs of this broad application base. Attend this presentation to learn about 7 critical DDS innovations that will significantly improve the development of your next distributed system: Type extensibility to support long-term system evolution Rich communication patterns to simplify development and integration Small footprint DDS implementation for resource-constrained platforms Certification for safety-critical applications including avionics Flexible, scalable and efficient security Web Integration Service (HTTP / REST) interface Integration with visual development environments: Simulink, Artisan Studio and LabView Speaker: Bert Farabaugh, Worldwide Field Applications Engineering Manager Bert Farabaugh is Worldwide Field Applications Engineering Manager at RTI. He works with customers to identify and develop solutions and design patterns tailored for their projects. Bert has over 16 years of experience developing networking protocols and communications design patterns from scratch for robotics and embedded systems. He has been a field applications engineer for the past 10 years, with hundreds of different applications in his portfolio.TRANSCRIPT
![Page 1: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/1.jpg)
DDS Innovations
Bert Farabaugh (FAE Manager)Real-Time Innovations
![Page 2: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/2.jpg)
Agenda
OMG DDS Standard Enhancements• Type Extensibility• New Java and C++ PSM from OMG• DDS Security Profile from OMG• DDS HTTP Rest Interface
RTI DDS Enhancements• Request / Reply communication pattern using publish /
subscribe• Micro DDS for resource constrained platforms• Safety Certification• Tooling Integration with DDS
![Page 3: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/3.jpg)
TYPE EXTENSIBILITY
![Page 4: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/4.jpg)
Data Type Extensibility
• Share data definitions across DDS vendors– Standardizes Annotations– Currently not seamless due to vendor-specific annotations, like
keys– Different formats in use (IDL, XML, API)
• Extend data definitions– Extensible, Mutable, Final– Optional Fields, Required Fields
• Adds Alternate Type representation– XML, XSD, Dynamic Type API
• Built-in Types– String, KeyedString, Bytes, KeyedBytes
• Type Object– Learn type representation during Discovery– Now part of OMG RTPS Wire Protocol– Optional
![Page 5: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/5.jpg)
Data Type Extensibility
struct Track { long id; //@key float range; float bearing;}
struct AirTrack { long id; //@key float range; float bearing; float elevation;}
struct Track { long id; //@key float range; float bearing;} struct AirTrack {
long id; //@key float elevation;}
Extensible Type• Newer applications can add fields to
existing base types
Mutable Type• Type representations can differ from each
other with Additions, Deletions and Transpositions
• Support for Optional Fields
struct Track { long id; //@key float range; float bearing;}
Final Type• Type definitions are strictly defined
struct Track { long id; //@key float range; float bearing;}
![Page 6: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/6.jpg)
Type Extensibility ExampleBase Type Extended Type
![Page 7: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/7.jpg)
7
Type Extensibility Example
enum ShapeFillKind { SOLID_FILL = 0, TRANSPARENT_FILL = 1, HORIZONTAL_HATCH_FILL = 2, VERTICAL_HATCH_FILL = 3};//@Extensibility EXTENSIBLE_EXTENSIBILITY
struct ShapeType{ string<128> color; //@key long x; long y; long shapesize;};//@Extensibility EXTENSIBLE_EXTENSIBILITY
struct ShapeTypeExtended: ShapeType { public ShapeFillKind fillKind; public float angle;};
struct ShapeType{ string<128> color; //@key long x; long y; long shapesize;};//@Extensibility EXTENSIBLE_EXTENSIBILITY
Base Type Extended Type
![Page 8: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/8.jpg)
NEW JAVA & C++ PSM’S
![Page 9: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/9.jpg)
Simplified DDS App Development
• New Java and C++ programming interfacesfrom OMG
• Enhanced portability– OMG providing standard interfaces files– Decide at compile-time (C++) or even run-time (Java) which DDS
implementation to use
• Improved productivity through use of latest C++ and Java features– Getters and setters to access state– Built-in primitive types, std::string, namespaces, templates, and
iterators in C++– Standard collection types and generics in Java– Exceptions for reporting errors
9
![Page 10: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/10.jpg)
C++ “string” DataWriter Exampledds::domain::DomainParticipant dp(0);dds::topic::Topic<Track> topic(dp, “track-topic”);dds::pub::Publisher pub(dp);dds::pub::qos::DataWriterQos dwqos = pub.default_writer_qos() << Reliability::Reliable() << History::KeepLast(10) << Durability::Transient();dds::pub::DataWriter<Track> dw (pub, topic, dwqos);
Track t = { 0xDEAD, “tank” }; // track id and vehicle-typefor(;;) { dw.write(t);}
![Page 11: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/11.jpg)
SECURITY PROFILE FOR DDS
![Page 12: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/12.jpg)
Enhanced Security Vision
The RTI DataBus can:• Authenticate subjects• Enforce access control
to data objects• Ensure data integrity• Ensure data confidentiality• Enforce non-repudiation• Provide availability of data• Create auditable security logs
….while maintaining high performance
RTI DataBus™
Connext
App 1
Connext
App 2
Key Management
Authentication
Logging
Cryptography
Access Control
![Page 13: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/13.jpg)
Pluggable Security ArchitectureApp.
Other DDSSystem
Secure DDS middleware
AuthenticationPlugin
Access ControlPlugin Cryptography
Plugin
Key ManagementPlugin
Secure Kernel
Crypto Module(e.g. TPM )
Secure Transport (e.g. TLS)
application componentcertificates
?
Datacache
ProtocolEngine
KernelPolicies
DDS Entities
NetworkDriver
?
Network
Encrypted DataTAG
Other DDSSystem
Other DDSSystem
App.App.
AuditingPlugin
![Page 14: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/14.jpg)
DDS HTTP REST INTEGRATION
![Page 15: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/15.jpg)
HTTP
Web Integration
• Web-enabled interface to Data Bus– REST
• Access DDS from any application, platform or language that can invoke a Web Service– Web applications, e.g., Google Maps– JavaScript, Flash, Perl, PHP, Python, CGI
scripts– ESBs
• Lightweight interface to DDS Data Bus– Clients do not need to link or load special
libraries
DDS
15
![Page 16: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/16.jpg)
Proposed REST Api• “Login” “Join Domain”• “Logout” “Leave Domain”• “CreateSubscription,”• “CreatePublication,” • “RemoveSubscription,”• “RemovePublication,”• “GetSubscriptions,”• “GetPublications,”• “AddNotificationEndpoint,”• “RemoveNotificationEndpoint,”• “GetNotificationEndpoints,”• “Read,”• “Write,”
![Page 17: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/17.jpg)
REQUEST / REPLY COMMUNICATIONS PATTERN
![Page 18: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/18.jpg)
Request-Reply
Requestor Replier
RequestRequest
Topic
ReplyTopic Reply
18
![Page 19: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/19.jpg)
Correlation
ReplierRequests
Replies
3
3
2 1
21
Message ID
Correlation ID
1
1
Requestor
Correlation
19
![Page 20: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/20.jpg)
Single-Request Multiple-Reply
Requestor Replier
Replies
321
Sequence ID
Request
20
![Page 21: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/21.jpg)
Multiple Repliers
Requester
Replier A
Replier C
Replier B
Request
Reply
21
![Page 22: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/22.jpg)
Combining Patterns
Requestor Replier
RequestRequest
Topic
ReplyTopic Reply
Subscriber
Subscriber
Wire Tap
![Page 23: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/23.jpg)
MICRO DDS
![Page 24: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/24.jpg)
Integration In Constrained Environments
• Integration of resource-constrained OT systems with IT systems– Stringent SWaP requirements– Limited primary storage (8MB RAM)– Limited secondary storage (32MB flash)– Embedded low-power single-core CPU– Lack of operating system
• Safety certification– In avionics, medical systems– Certification cost drives system design ($50
- $100 per ELOC)24
![Page 25: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/25.jpg)
User-Configurable Feature Set
DDS API Subset
Transport API
Base-line configuration
Static Discovery
OS API
User Application
UDPv4 Linux 2.6
VxWorks 653APEX DynamicDiscovery
Queue API
Listeners
Required plug-in components
Linear Q
Keyed Q
Discovery API
Reliability
Durability & History
Other QoS
Optional APIs
Shared memory
VxWorks 5.5
Com
pile
-tim
e op
tions
RTPS
Connext Micro
25
![Page 26: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/26.jpg)
Supported QoS• DataReaderResourceLimits • The following DataReaderResourceLimits fields are supported. All must be finite values
greater than 0. – max_remote_writers– max_remote_writers_per_instance – max_samples_per_remote_writer – max_outstanding_reads
• Destination Order – Only the BY_RECEPTION_TIMESTAMP kind is supported.
• Durability – Only the VOLATILE and TRANSIENT_LOCAL Durability kinds are supported.
• History – Only the KEEP_LAST History kind is supported.
• Liveliness – Only the MANUAL_BY_TOPIC Liveliness kind is supported, with a lease duration range of [1,
infinite]. • Deadline
– The Deadline Qos policy is supported. • Ownership and OwnershipStrength
– Both SHARED and EXCLUSIVE Ownership kinds are supported.
![Page 27: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/27.jpg)
Supported QoS (cont.)• Reliability
– Both BEST-EFFORT and RELIABLE Reliability kinds are supported. – For RELIABLE reliability, periodic and piggyback heartbeat configuration
are sup- ported, as well as max_send_window for setting the size of a reliability window.
• ResourceLimits – The following limits in the ResourceLimits QoS policy are supported. All
must be finite values greater than 0. – max_samples,max_instances,max_samples_per_instance – Note that max_samples must be large enough to contain all samples for
all instances: – max_samples >= max_instances * max_samples_per_instance
• ContentFilteredTopics – ContentFilteredTopics are not supported, but content filtering is
provided by two DataReaderListener callbacks: on_before_sample_deserialize() and on_before_sample_commit()
![Page 28: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/28.jpg)
04/08/2023
MICRO DDS CERTIFICATION
![Page 29: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/29.jpg)
DO-178B/C
• A guideline• Used by FAA as a basis
for certification– Aircraft are “certified”– Software code
developed underDO-178 provides “certification evidence”
• Increasingly adopted for military aircraft
![Page 30: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/30.jpg)
DO-178C Safety Levels
Level Failure Condition Typical % of avionics code
A Catastrophic(may be total loss of life) 15%
B Hazardous/Severe(may be some loss of life) 35%
C Major(injuries possible) 30%
D Minor(injuries unlikely) 15%
E No effect 5%
![Page 31: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/31.jpg)
Tenets Of Safety-Critical Software
• Reduce code size• Consider testability in design• Deterministic in time• Deterministic in memory
– No dynamic memory allocation after startup
![Page 32: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/32.jpg)
Analysis of Suitability for DO178B/C
• Verocel analyzed the prototype source code• Code is deterministic• Code is testable• Conforms to coding styles that make testing
easier• Uses robustness checks and logging messages
• RTI Connext Micro currently going through Certification
![Page 33: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/33.jpg)
TOOLING INTEGRATION WITH DDS
![Page 34: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/34.jpg)
Example
![Page 35: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/35.jpg)
Types are defined as Bus Objects
![Page 36: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/36.jpg)
04/08/2023
![Page 37: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/37.jpg)
Using Artisan Studio with RTI DDS
• Model a DDS system with UML• Participants, Entities and Types
• Generate representative XML file• Use XML App Creation from RTI
![Page 38: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/38.jpg)
NI Labview Integration with RTI DDS
• Build LabView Application using DDS building blocks
• Attach LabView logic block to live data
• Connect Distributed LabView applications
![Page 39: 7 DDS Innovations to Improve your Next Distributed System](https://reader036.vdocuments.us/reader036/viewer/2022081413/54696f61af795946718b52f0/html5/thumbnails/39.jpg)
DownloadConnextFree TrialNOW
www.rti.com/downloads