Download - 7 DDS Innovations to Improve your Next Distributed System

Transcript
Page 1: 7 DDS Innovations to Improve your Next Distributed System

DDS Innovations

Bert Farabaugh (FAE Manager)Real-Time Innovations

Page 2: 7 DDS Innovations to Improve your Next Distributed System

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

TYPE EXTENSIBILITY

Page 4: 7 DDS Innovations to Improve your Next Distributed System

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

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

Type Extensibility ExampleBase Type Extended Type

Page 7: 7 DDS Innovations to Improve your Next Distributed System

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

NEW JAVA & C++ PSM’S

Page 9: 7 DDS Innovations to Improve your Next Distributed System

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

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

SECURITY PROFILE FOR DDS

Page 12: 7 DDS Innovations to Improve your Next Distributed System

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

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

DDS HTTP REST INTEGRATION

Page 15: 7 DDS Innovations to Improve your Next Distributed System

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

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

REQUEST / REPLY COMMUNICATIONS PATTERN

Page 18: 7 DDS Innovations to Improve your Next Distributed System

Request-Reply

Requestor Replier

RequestRequest

Topic

ReplyTopic Reply

18

Page 19: 7 DDS Innovations to Improve your Next Distributed System

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

Single-Request Multiple-Reply

Requestor Replier

Replies

321

Sequence ID

Request

20

Page 21: 7 DDS Innovations to Improve your Next Distributed System

Multiple Repliers

Requester

Replier A

Replier C

Replier B

Request

Reply

21

Page 22: 7 DDS Innovations to Improve your Next Distributed System

Combining Patterns

Requestor Replier

RequestRequest

Topic

ReplyTopic Reply

Subscriber

Subscriber

Wire Tap

Page 23: 7 DDS Innovations to Improve your Next Distributed System

MICRO DDS

Page 24: 7 DDS Innovations to Improve your Next Distributed System

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

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

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

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

04/08/2023

MICRO DDS CERTIFICATION

Page 29: 7 DDS Innovations to Improve your Next Distributed System

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

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

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

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

TOOLING INTEGRATION WITH DDS

Page 34: 7 DDS Innovations to Improve your Next Distributed System

Example

Page 35: 7 DDS Innovations to Improve your Next Distributed System

Types are defined as Bus Objects

Page 36: 7 DDS Innovations to Improve your Next Distributed System

04/08/2023

Page 37: 7 DDS Innovations to Improve your Next Distributed System

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

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

DownloadConnextFree TrialNOW

www.rti.com/downloads