developing mission-critical avionics and defense systems with ada and dds
TRANSCRIPT
Developing Mission-Critical Avionics and Defense Systems with Ada and DDSThe Connectivity Platform for the Industrial Internet of Things™
2
Application-Level ConnectivityIntra-System and Inter-System
©2015 Real-Time Innovations, Inc.
Sensors
Communications
FusionActuators
Control
Displays
Recording
3
Operating System
Traditional Approach
• Apps written directly to IPC mechanism• Limited separation between application,
connectivity and integration logic©2015 Real-Time Innovations, Inc.
App or Component
App or Component
Hardware
Operating System
App or Component
App or Component
Hardware
Sockets (TCP or UDP), bus
Shared memory or OS message queues
4
Challenge #1: Expensive to DevelopRequire Bespoke Connectivity Logic
• Addressing• Discovery / presence / health• Startup order dependencies• Reliability over unreliable transports
(e.g., multicast)• Heterogeneous interoperability
• Reconnections• Failover• State synchronization• Timing control and visibility• Bridging across nets, xports
©2015 Real-Time Innovations, Inc.
Application
OS & Transport
Connectivity
Application
OS & Transport
Connectivity
5
Challenge #2: Expensive to Redeploy Apps
• Tied to IPC mechanism’s semantics and proximity assumptions
©2015 Real-Time Innovations, Inc.
UDP Socke
ts
TCP Socke
ts
POSIX
Queues
Shared
memory
Queuing
ports
Sampling
ports
Proximity Intra-partition ● ● ● ● ● ●Inter-partition ● ● ● ●Inter-node ● ● AFDX AFDX
Distribution One-to-one ● ● ● Impl ● ●One-to-many mcast ImplMany-to-one ● ● ImplMany-to-many mcast Impl
Reliability Reliable ● Impl ●
6
Challenge #3: Costs Increase over TimeOften Use Point-to-Point Integration
• Changing or adding components affects others• Necessitates integration work, re-certification• Systems become more stovepipe, brittle and
expensive to maintain over time• O(n2) complexity
©2015 Real-Time Innovations, Inc.
©2015 Real-Time Innovations, Inc. 7
Data Distribution Service (DDS) Standard
• Managed by Object Management Group (OMG)• Handles connectivity heavy lifting• Replaces custom code, simplifies app logic
DDS APIApplication
Operating System
Application
Operating System
xport1 xportn… xport1 xportn…DDS Library DDS Library
DDS-RTPS Wire Interoperability Protocol:• Interoperable across programming languages, operating systems, CPU families• Interoperates with other Connext DDS products for mixed-criticality environments• Reliable or best effort delivery, even over unreliable transports
Pluggable transport interface:Supports multiple concurrent
Standard semantics:• Data-Centric Publish-Subscribe• Transport independent
8
Publish/Subscribe for Loose Coupling
• Apps can be added and changed w/o changes to other deployed components• Easy to test; RTI provides record and replay services
©2015 Real-Time Innovations, Inc.
DDS Software Data Bus
Sens
or D
ata
Control App
Com
man
ds
Stat
us
Sensor
Sens
or D
ata
Actuator
Com
man
ds
Stat
us
Sensor
Sens
or D
ata
Display App
Sens
or D
ata
Stat
us
Why Distribution Middleware?
8.0 Training
5.0 Communications
2.0 Sensors
3.0 Fusion4.0 BMC2
7.0 Visualization
6.0 Sensor Control
1.0 Common Services
Grouping the modules into functional clusters does nothing to change that reality and ease software integration
Hawkeye has functionally oriented software modules
Each module talks to many other modules
RIP TRK MSIWAC TDA
ESM SAFERDR IFF
SEN DSCL4 L16L11
HMI ACIS
DIA NAV IPCCMCPMUX
FIL TDM
Adding new functionality cascades integration re-work across many other modules
CEC
8.0 Training
5.0 Communications
2.0 Sensors
3.0 Fusion4.0 BMC2
7.0 Visualization
6.0 Sensor Control
1.0 Common Services
RIP TRKCEC MSIWAC RAIDERTDA
DWC
CHAT
ESM SAFERDR IFF
SEN DSCDistributed Data Fram
ework
IPv6L4 L16L11
HMI ACIS T4O
DIA NAV IPCCMCPMUX
FIL TDM aADNS TIS
1.0 Common Services
Changing the communication between the modules can ease integration, when the new ‘Publish Subscribe’ approach is used – each module publishes its output w/o regard to who is receiving it, in contrast to the point-to-point approach of traditional inter-process communication
It’s about an architecture that can assimilate evolving functionality, rather than remaining set in time
10
Data-Centric Publish-Subscribe
• Similar to using a database• Apps publish and subscribe to data objects• DDS maintains shared state for system robustness
– Applications maintain consistent view– Late joining applications get current snapshot, desired history– Not necessary to persist or reliably deliver all messages
PublishSubscribe
Squawk Long Lat Alt
1234 37.4 -122.0
500.0
7654 40.7 -74.0 250.0
Line Flight Dest Arv
UA 567 SFO 7:32
AA 432 LAX 9:15
Squawk Line Flight
1234 UA 567
7654 AA 432
©2015 Real-Time Innovations, Inc.
11
Facilitates Modular, Open Architectures• Well-defined interfaces between components
– Standard data-centric publish-subscribe paradigm– Well-defined data model using OMG Interface Definition Language (IDL) or XML– Code generation from data model for type safety– Standard network protocol and serialization
• DDS widely used for FACE, UCS, OMS, others• RTI provides FACE Transport Services Segment (TSS) reference implementation
©2015 Real-Time Innovations, Inc.
DDS Application
Operating System
FACE Unit of Portability (UoP)
Operating System
xport1 xportn… xport1 xportn…DDS Library DDS Library
DDS-RTPS Wire Interoperability Protocol
FACE TSS• FACE type-specific Transport
Services (TS) API• Generated from FACE
Platform Data Model by RTI IDL compiler
Use with New and Existing Systems
New and Updated AppsExisting, Unmodified Apps and
(Sub)Systems
DDS-RTPS Interoperability Protocol
DDS App
DDS Library
DDS App
DDS Library
Transport Transport
Non-DDSApp
DDS Routing Service
Adapter
Non-DDSApp
DDS Routing Service
Adapter
OS & Transport OS & Transport
DDSAPI
13
Connext DDS Inherently Well-Suited toSafety-Critical Systems
• Non-stop availability– Decentralized architecture– No single point of failure– Support for redundant networks– Automatic failover between redundant publishers– Dynamic upgrades
• No central server or services• Version-independent interoperability protocol
• Control over real-time Quality of Service• Visibility into missed deadlines and presence• Proven in thousands of mission critical systems• RTI’s Connext DDS Cert is DO-178C Level A certifiable
©2015 Real-Time Innovations, Inc.
14
Example: US Army Asset Tracking System
Legacy Capability:• 500K lines of code• 8 yrs to develop• 21 servers• Achieved: 20K tracked
updates/sec, reliability and uptime challenges
With Connext DDS:• 50K lines of code—order
of magnitude less• 1 yr to develop—8x less• 1 laptop—20x less• Achieved: 250K+ tracked
updates/sec, no single point of failure
“This would not have been possible with any other known technology.”—Network Ops Center Technical Lead
©2015 Real-Time Innovations, Inc.
15
Secure CertMicroProfessional
RTI’s Connext DDS Product Family
DDS Interoperability Protocol
Full DDS Libraries
Routing Service
Database Integration
DDSSubset
DDS SubsetDO-178C Certifiable
Admin Console
Monitoring
Microsoft Excel
Recording
Replay
Wireshark
Persistence
Prototyper
Queuing
General Purpose& Real-Time Apps
Remote Apps Existing Apps and Devices
Adapter
Small Footprint Apps
High Assurance Apps
JMS API
Security Plugins
Add-ons
©2015 Real-Time Innovations, Inc.
16
Ada Support
• Ada 2012• AdaCore GNAT Pro• Generate type-specific Ada interface from IDL
and XML type descriptions• Fully interoperable with other DDS apps
– C, C++, C#, Java– Lua, Python, JavaScript (node.js)– LabVIEW, Simulink
©2015 Real-Time Innovations, Inc.
17
Example Using RTI Shapes Demohttp://www.rti.com/downloads/shapes-demo.html
©2015 Real-Time Innovations, Inc.
18
Interface Definition (IDL)
©2015 Real-Time Innovations, Inc.
enum ShapeFillKind { SOLID_FILL, TRANSPARENT_FILL, HORIZONTAL_HATCH_FILL, VERTICAL_HATCH_FILL};
struct ShapeType{ string<128> color; //@key long x; long y; long shapesize;};//@Extensibility EXTENSIBLE_EXTENSIBILITY
struct ShapeTypeExtended : ShapeType { ShapeFillKind fillKind; float angle;};//@Extensibility EXTENSIBLE_EXTENSIBILITY
Publish DataInstance : ShapeTypeExtended_Access;Instance_Handle : aliased Standard.DDS.InstanceHandle_T := Standard.DDS.HANDLE_NIL;… Instance := ShapeTypeExtended_TypeSupport.Create_Data (TRUE);Instance_Handle := ShapeTypeExtended_Writer.Register_Instance (Instance);
-- Assign values to the sampleStandard.DDS.Copy (Instance.parent.color, Standard.DDS.To_DDS_String ("BLUE"));Instance.parent.x := 100;Instance.parent.y := 100;Instance.parent.shapesize := 30;Instance.fillKind := SOLID_FILL;Instance.angle := 0.0;-- Write sampleShapeTypeExtended_Writer.Write (Instance_Data => Instance, Handle => Instance_Handle'Unchecked_Access);
Receive DataThe_Reader : constant access constant ShapeTypeExtended_DataReader.Ref := ShapeTypeExtended_DataReader.Ref_Access (Reader);Data_Seq : aliased ShapeTypeExtended_Seq.Sequence;Info_Seq : aliased Standard.DDS.SampleInfo_Seq.Sequence;…begin The_Reader.Take (Data_Seq'Access, Info_Seq'Access, …) ;exception when Standard.DDS.NO_DATA => return;end;
for I in 1 .. ShapeTypeExtended_Seq.Get_Length (Data_Seq'Access) loop if SampleInfo_Seq.Get_Reference (Info_Seq'Access, Standard.DDS.Natural (I)).Valid_Data then
ShapeType_IDL_File.ShapeTypeExtended_TypeSupport.Print_Data (ShapeTypeExtended_Seq.Get_Reference (Data_Seq'Access, I)); end if;end loop;The_Reader.Return_Loan (Data_Seq'Access, Info_Seq'Access);
21
Connext DDS Summary
• Standards compliant• Reduces lifecycle costs
– Development– Integration– Ongoing maintenance and evolution
• Supports real-time and mission-critical systems• Well integrated with AdaCore
©2015 Real-Time Innovations, Inc.
rti.com/downloads
Start using DDS Today!Download the FREE complete RTI Connext DDS Pro package for Windows and Linux:
• Leading implementation of DDS• Includes C, C++, C#/.NET and Java APIs• Contact RTI for Ada• Tools to monitor, debug, test, visualize and
prototype distributed applications and systems• Adapters to integrate with existing applications and
IT systems