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
DDS Innovations
Bert Farabaugh (FAE Manager)Real-Time Innovations
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
TYPE EXTENSIBILITY
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
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;}
Type Extensibility ExampleBase Type Extended Type
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
NEW JAVA & C++ PSM’S
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
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);}
SECURITY PROFILE FOR DDS
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
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
DDS HTTP REST INTEGRATION
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
Proposed REST Api• “Login” “Join Domain”• “Logout” “Leave Domain”• “CreateSubscription,”• “CreatePublication,” • “RemoveSubscription,”• “RemovePublication,”• “GetSubscriptions,”• “GetPublications,”• “AddNotificationEndpoint,”• “RemoveNotificationEndpoint,”• “GetNotificationEndpoints,”• “Read,”• “Write,”
REQUEST / REPLY COMMUNICATIONS PATTERN
Request-Reply
Requestor Replier
RequestRequest
Topic
ReplyTopic Reply
18
Correlation
ReplierRequests
Replies
3
3
2 1
21
Message ID
Correlation ID
1
1
Requestor
Correlation
19
Single-Request Multiple-Reply
Requestor Replier
Replies
321
Sequence ID
Request
20
Multiple Repliers
Requester
Replier A
Replier C
Replier B
Request
Reply
21
Combining Patterns
Requestor Replier
RequestRequest
Topic
ReplyTopic Reply
Subscriber
Subscriber
Wire Tap
MICRO DDS
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
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
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.
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()
04/08/2023
MICRO DDS CERTIFICATION
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
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%
Tenets Of Safety-Critical Software
• Reduce code size• Consider testability in design• Deterministic in time• Deterministic in memory
– No dynamic memory allocation after startup
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
TOOLING INTEGRATION WITH DDS
Example
Types are defined as Bus Objects
04/08/2023
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
NI Labview Integration with RTI DDS
• Build LabView Application using DDS building blocks
• Attach LabView logic block to live data
• Connect Distributed LabView applications
DownloadConnextFree TrialNOW
www.rti.com/downloads