SlideShare a Scribd company logo
1 of 31
Download to read offline
Integrating DDS into AXCIOMA,
the component approach
Johnny Willemsen (jwillemsen@remedy.nl)
CTO Remedy IT
http://www.remedy.nl
Remedy IT
Remedy IT is specialized in communication
middleware and component technologies
Strong focus on open standards based solutions
Actively involved in the Object Management Group,
chairing several OMG standardization efforts
Our customers are in various domains including
telecom, aerospace and defense, transportation,
industrial automation
For more information take a look at our website
www.remedy.nl
Copyright © Remedy IT2
What We Do
Global Service Delivery Partner for RTI Connext
DDS
Develop implementations of OMG open standards
• Commercial: TAOX11, AXCIOMA
• Open source: TAO, CIAO, R2CORBA
Deliver services related to OMG standards including
the CORBA, CCM, and DDS standard
Develop open standards as part of the Object
Management Group
Copyright © Remedy IT3
What is AXCIOMA?
AXCIOMA is a comprehensive software suite
combining eleven Object Management Group (OMG)
open standards
• LwCCM, DDS, DDS4CCM, AMI4CCM, CORBA,
IDL, IDL2C++11, RPC4DDS, DDS Security, DDS X-
Types, and D&C
AXCIOMA is based on
• Interoperable Open Architecture (IOA)
• Component Based Architecture (CBA)
• Service Oriented Architecture (SOA)
• Event Driven Architecture (EDA)
• Model Driven Architecture (MDA)
Copyright © Remedy IT4
AXCIOMA
AXCIOMA supports the design, development, and
deployment of a distributed component based
architecture
A component based architecture encapsulates and
integrates the following mechanisms in a “container”
• Threading model
• Lifecycle management
• Connection management
Copyright © Remedy IT5
What Is a Component?
Independent revisable unit of software with well
defined interfaces, called ports
Can be packaged as an independent deployable set
of files
Smallest decomposable unit that defines standard
ports is called a monolithic component
An component assembly is an aggregation of
monolithic components or other component
assemblies
Copyright © Remedy6
Component
Copyright © Remedy
Provides
(facet)
attributes
Component
Configuration
Life cycle
Uses
(receptacle)
attributes
Component
Assembly
Configuration
Life cycle
callbacks
7
IDL CODE DEPLOY
DATA
(types and interfaces)
INTERACTION
PATTERNS
BUSINESS
(connectors)
(components)
Uses Generate
Generate
Generate
Types and Interfaces
Interaction pattern
implementations
Component executor
starter code
Deployment
plan
Shared libraries
Deployment
tools
Implement business logic
Component Framework
Copyright © Remedy8
IDL CODE DEPLOY
DATA
(types and interfaces)
INTERACTION
PATTERNS
BUSINESS
(connectors)
(components)
Uses Generate
Generate
Generate
Types and Interfaces
Interaction pattern
implementations
Component executor
starter code
Deployment
plan
Shared libraries
Deployment
tools
Implement business logic
Component Framework
Copyright © Remedy9
IDL CODE DEPLOY
DATA
(types and interfaces)
INTERACTION
PATTERNS
BUSINESS
(connectors)
(components)
Uses Generate
Generate
Generate
Types and Interfaces
Interaction pattern
implementations
Component executor
starter code
Deployment
plan
Shared libraries
Deployment
tools
Implement business logic
Component Framework
Copyright © Remedy10
IDL CODE DEPLOY
DATA
(types and interfaces)
INTERACTION
PATTERNS
BUSINESS
(connectors)
(components)
Uses Generate
Generate
Generate
Types and Interfaces
Interaction pattern
implementations
Component executor
starter code
Deployment
plan
Shared libraries
Deployment
tools
Implement business logic
Component Framework
Copyright © Remedy11
IDL CODE DEPLOY
DATA
(types and interfaces)
INTERACTION
PATTERNS
BUSINESS
(connectors)
(components)
Uses Generate
Generate
Generate
Types and Interfaces
Interaction pattern
implementations
Component executor
starter code
Deployment
plan
Shared libraries
Deployment
tools
Implement business logic
Component Framework
Copyright © Remedy12
Compilation
IDL CODE DEPLOY
DATA
(types and interfaces)
INTERACTION
PATTERNS
BUSINESS
(connectors)
(components)
Uses Generate
Generate
Generate
Types and Interfaces
Interaction pattern
implementations
Component executor
starter code
Deployment
plan
Shared libraries
Deployment
tools
Implement business logic
Component Framework
Copyright © Remedy13
Compilation
Interaction Patterns
Define how components interact with the outside
world
• Request/Reply interaction
client, server, asynchronous client, and
asynchronous server
• Event interaction
supplier, push consumer, and pull consumer
• State interaction
observable, passive observer, push observer, pull
observer, and push state observer
All these interaction patterns can be realized using
DDS
Copyright © Remedy14
Our AXCIOMA DDS
Challenge
Integrate RTI Connext DDS into AXCIOMA
Provide the IDL to C++11 API to our users
Abstract and optimize DDS through the interaction
patterns
• Request/reply
• State
• Event
Copyright © Remedy IT15
IDL to C++11 Language
Mapping (I)
Copyright © Remedy
Simplified mapping for C++
• Make use of the standard C++ library as much as
possible
Make use of the C++11 features to
• Reduce amount of application code
• Reduce amount of possible coding errors by
providing a safer API
• Gain runtime performance
• Speedup development and testing
Faster time to market
Reduced costs
Reduced training time
16
IDL to C++11 Language
Mapping (II)
An IDL interface maps to so called reference types
Reference types are automatically reference counted
A nil reference type is represented as nullptr
A boolean operator for reference comparison is
available
Invoking an operation on a nil reference results in a
INV_OBJREF exception, no need whether object
references are valid throughout your business code
Copyright © Remedy17
DDSX11
RTI Connext DDS currently does not support the IDL
to C++11 language mapping
DDSX11 performs the bridging between the IDL to
C++11 and RTI Connext DDS C++ API
Hides all vendor API details from the programmer
Combination of
• IDL based code generation
• C++11 code generation
• Core support classes and templates
Copyright © Remedy IT18
DDSX11 Conversion traits
For DDSX11 the C++11 types are leading
For each IDL defined type we provide a trait with
helper methods to convert between C++ and C++11
• Basic type traits are part of the core
• Constructed type traits are generated by our RIDL
IDL compiler
Generated for a specific vendor
DDSX11 uses the traits and is unaware of the real
type
Copyright © Remedy IT19
DDSX11 Conversion traits
Conversion traits are currently optimized for RTI
Connext DDS using the ‘old’ C++ API
Traits can be generated differently for other vendors
or a different RTI version
At the moment the C++ and C++11 type are the
same the conversion traits are optimized away by the
compiler
• DDSX11 and user code doesn’t need to be changed
Copyright © Remedy IT20
Optimizing DDS Usage
DDS API is hidden from the programmer
Knowledge about how DDS setup is part of the
connector
The DDS usage knowledge is implemented and
optimized once
• Usage of domain participants (how many)
• Reuse of topics
• Clean shutdown of DDS
DDSX11 can use IDL4 annotations which are
converted to the DDS vendor specific setting
Copyright © Remedy IT21
Component and DDS
Execution Model
Components run in a single threaded, re-entrant
environment
Callbacks from DDS threads are going dispatched
onto our main thread
No locking in user code necessary
Additional Execution Models will be available for
more complex execution environments
Copyright © Remedy22
Testing
All our connector and framework functionality has to
be tested automatically
No need for special DDS test connectors
Special test components that trigger fault conditions
• Sometimes need to be combined with specific QoS
settings
On heavy loads sometimes DomainParticipant
discovery is missed
• Wait on DDS callbacks like publication_matched
before starting the real test code
Keep QoS and configuration as simple as possible
Copyright © Remedy23
Shapes Example
Copyright © Remedy
…
Controller
Request/Reply
interaction
Request/Reply
interaction
Publisher
Event
interaction
Event
interaction
Subscriber…
24
Generated ShapeType
Class
Copyright © Remedy25
class ShapeType
{
public:
ShapeType () = default;
~ShapeType () = default;
ShapeType (const ShapeType&) = default;
ShapeType (ShapeType&&) = default;
explicit inline ShapeType (
color_type color, int32_t x, int32_t y, int32_t shapesize);
ShapeType& operator= (const ShapeType&) = default;
ShapeType& operator= (ShapeType&&) = default;
…
// Getters and Setters
private:
// Struct members as private members
};
ShapeType shape {"GREEN", 0, 0, 15 };
std::cout << “Created ShapeType " << shape << std::endl;
ShapeType shape1 = shape;
ShapeType shape2 (shape1);
Component Executor
Class
Copyright © Remedy
/// Component Executor Implementation Class : Publisher_comp_exec_i
class Pubisher_comp_exec_i final
: public virtual IDL::traits<CCM_Publisher_comp>::base_type
{
public:
/// Constructor
Publisher_comp_exec_i ();
//@@{__RIDL_REGEN_MARKER__} - END :
Shapes_Publisher_comp_Impl::Publisher_comp_exec_i[ctor]
/// Destructor
virtual ~Publisher_comp_exec_i ();
/** @name Component port operations. */
//@{
/// Factory method and getter for the control facet
/// @return existing instance of facet if one exists, else creates it
virtual IDL::traits<Shapes::CCM_Control>::ref_type
get_control () override;
//@}
...
26
Facet Executor Class
Copyright © Remedy
Shapes::ReturnStatus
control_exec_i::setLocation (
uint16_t x,
uint16_t y)
{
Shapes::ReturnStatus status = Shapes::ReturnStatus::RETURN_ERROR;
auto cex = IDL::traits<Publisher_comp_exec_i>::narrow (
this->component_executor_.lock ());
if (cex)
status = cex->setLocation (x, y);
else
std::cout << "setLocation - failed to lock executor." << std::endl;
return status;
}
27
Write a DDS sample
Copyright © Remedy IT28
// Get the writer port which we use to write a DDS sample
IDL::traits< ::Shapes::ShapeType_conn::Writer>::ref_type writer =
this->context_->get_connection_info_write_data ();
// Write one sample squary for the given instance handle
writer->write_one (this->square_, this->instance_handle_);
Receive a DDS sample
Copyright © Remedy IT29
// Data is delivered through a callback
void
info_out_data_listener_exec_i::on_one_data (
const ::ShapeType& datum,
const ::CCM_DDS::ReadInfo&)
{
std::cout << "Received " << datum << std::endl;
}
Conclusion
DDS fits perfect into a component based approach
DDSX11 abstracts vendor differences and improves
portability of user code
Fully automated testing is possible but takes time to
implement
IDL to C++11 simplifies user code, increases
performance, and reduces time to implement
Copyright © Remedy IT30
Contact
Remedy IT
Melkrijder 11
3861 SG Nijkerk (Gld)
The Netherlands
tel.: +31(0)88 053 0000
e-mail: sales@remedy.nl
website: www.remedy.nl
Twitter: @RemedyIT
Slideshare: RemedyIT
Subscribe to our mailing list
Copyright © Remedy IT31

More Related Content

What's hot

The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsThe Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsReal-Time Innovations (RTI)
 
Space Rovers and Surgical Robots: System Architecture Lessons from Mars
Space Rovers and Surgical Robots: System Architecture Lessons from MarsSpace Rovers and Surgical Robots: System Architecture Lessons from Mars
Space Rovers and Surgical Robots: System Architecture Lessons from MarsReal-Time Innovations (RTI)
 
Managing Avionics Safety Certification for Unmanned Aircraft
Managing Avionics Safety Certification for Unmanned AircraftManaging Avionics Safety Certification for Unmanned Aircraft
Managing Avionics Safety Certification for Unmanned AircraftReal-Time Innovations (RTI)
 
The Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesThe Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesReal-Time Innovations (RTI)
 
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...Real-Time Innovations (RTI)
 
ISO 26262 Approval of Automotive Software Components
ISO 26262 Approval of Automotive Software ComponentsISO 26262 Approval of Automotive Software Components
ISO 26262 Approval of Automotive Software ComponentsReal-Time Innovations (RTI)
 
Fog Computing is the Future of the Industrial Internet of Things
Fog Computing is the Future of the Industrial Internet of ThingsFog Computing is the Future of the Industrial Internet of Things
Fog Computing is the Future of the Industrial Internet of ThingsReal-Time Innovations (RTI)
 
Weather Information System Airport and Decision Support (WISADS)
Weather Information System Airport and Decision Support (WISADS)Weather Information System Airport and Decision Support (WISADS)
Weather Information System Airport and Decision Support (WISADS)Real-Time Innovations (RTI)
 
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...Real-Time Innovations (RTI)
 
Learn About the FACE Standard for Avionics Software and a Ready-to-Go COTS Pl...
Learn About the FACE Standard for Avionics Software and a Ready-to-Go COTS Pl...Learn About the FACE Standard for Avionics Software and a Ready-to-Go COTS Pl...
Learn About the FACE Standard for Avionics Software and a Ready-to-Go COTS Pl...Real-Time Innovations (RTI)
 
The Inside Story: Leveraging the IIC's Industrial Internet Security Framework
The Inside Story: Leveraging the IIC's Industrial Internet Security FrameworkThe Inside Story: Leveraging the IIC's Industrial Internet Security Framework
The Inside Story: Leveraging the IIC's Industrial Internet Security FrameworkReal-Time Innovations (RTI)
 
How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...Real-Time Innovations (RTI)
 
Distributed Communication and Control for a Network of Melting Probes in Extr...
Distributed Communication and Control for a Network of Melting Probes in Extr...Distributed Communication and Control for a Network of Melting Probes in Extr...
Distributed Communication and Control for a Network of Melting Probes in Extr...Real-Time Innovations (RTI)
 
October Southern CA Road Shows - Build Safe and Secure Distributed Systems
October Southern CA Road Shows -  Build Safe and Secure Distributed SystemsOctober Southern CA Road Shows -  Build Safe and Secure Distributed Systems
October Southern CA Road Shows - Build Safe and Secure Distributed SystemsReal-Time Innovations (RTI)
 
Accelerating Safety and Security Certification with FACE™ COTS Solutions
Accelerating Safety and Security Certification with FACE™ COTS SolutionsAccelerating Safety and Security Certification with FACE™ COTS Solutions
Accelerating Safety and Security Certification with FACE™ COTS SolutionsReal-Time Innovations (RTI)
 
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...Real-Time Innovations (RTI)
 

What's hot (20)

The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsThe Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
 
How to Cut $2 Million of Your Safety Cert Costs
How to Cut $2 Million of Your Safety Cert CostsHow to Cut $2 Million of Your Safety Cert Costs
How to Cut $2 Million of Your Safety Cert Costs
 
Space Rovers and Surgical Robots: System Architecture Lessons from Mars
Space Rovers and Surgical Robots: System Architecture Lessons from MarsSpace Rovers and Surgical Robots: System Architecture Lessons from Mars
Space Rovers and Surgical Robots: System Architecture Lessons from Mars
 
Managing Avionics Safety Certification for Unmanned Aircraft
Managing Avionics Safety Certification for Unmanned AircraftManaging Avionics Safety Certification for Unmanned Aircraft
Managing Avionics Safety Certification for Unmanned Aircraft
 
The Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesThe Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car Architectures
 
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
 
ISO 26262 Approval of Automotive Software Components
ISO 26262 Approval of Automotive Software ComponentsISO 26262 Approval of Automotive Software Components
ISO 26262 Approval of Automotive Software Components
 
Fog Computing is the Future of the Industrial Internet of Things
Fog Computing is the Future of the Industrial Internet of ThingsFog Computing is the Future of the Industrial Internet of Things
Fog Computing is the Future of the Industrial Internet of Things
 
Weather Information System Airport and Decision Support (WISADS)
Weather Information System Airport and Decision Support (WISADS)Weather Information System Airport and Decision Support (WISADS)
Weather Information System Airport and Decision Support (WISADS)
 
What Does Interoperability Mean for the IoT?
What Does Interoperability Mean for the IoT?What Does Interoperability Mean for the IoT?
What Does Interoperability Mean for the IoT?
 
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
 
Learn About the FACE Standard for Avionics Software and a Ready-to-Go COTS Pl...
Learn About the FACE Standard for Avionics Software and a Ready-to-Go COTS Pl...Learn About the FACE Standard for Avionics Software and a Ready-to-Go COTS Pl...
Learn About the FACE Standard for Avionics Software and a Ready-to-Go COTS Pl...
 
The Inside Story: Leveraging the IIC's Industrial Internet Security Framework
The Inside Story: Leveraging the IIC's Industrial Internet Security FrameworkThe Inside Story: Leveraging the IIC's Industrial Internet Security Framework
The Inside Story: Leveraging the IIC's Industrial Internet Security Framework
 
DDS Enabling Open Architecture
DDS Enabling Open ArchitectureDDS Enabling Open Architecture
DDS Enabling Open Architecture
 
The Promise of Interoperability
The Promise of InteroperabilityThe Promise of Interoperability
The Promise of Interoperability
 
How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...
 
Distributed Communication and Control for a Network of Melting Probes in Extr...
Distributed Communication and Control for a Network of Melting Probes in Extr...Distributed Communication and Control for a Network of Melting Probes in Extr...
Distributed Communication and Control for a Network of Melting Probes in Extr...
 
October Southern CA Road Shows - Build Safe and Secure Distributed Systems
October Southern CA Road Shows -  Build Safe and Secure Distributed SystemsOctober Southern CA Road Shows -  Build Safe and Secure Distributed Systems
October Southern CA Road Shows - Build Safe and Secure Distributed Systems
 
Accelerating Safety and Security Certification with FACE™ COTS Solutions
Accelerating Safety and Security Certification with FACE™ COTS SolutionsAccelerating Safety and Security Certification with FACE™ COTS Solutions
Accelerating Safety and Security Certification with FACE™ COTS Solutions
 
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
 

Viewers also liked

MiroSurge: Research Platform for Robotic Surgery
MiroSurge: Research Platform for Robotic SurgeryMiroSurge: Research Platform for Robotic Surgery
MiroSurge: Research Platform for Robotic SurgeryReal-Time Innovations (RTI)
 
Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.Real-Time Innovations (RTI)
 
eProsima RPC over DDS - Connext Conf London October 2015
eProsima RPC over DDS - Connext Conf London October 2015 eProsima RPC over DDS - Connext Conf London October 2015
eProsima RPC over DDS - Connext Conf London October 2015 Jaime Martin Losa
 
Connected Car by Ashish Bhasin
Connected Car by Ashish BhasinConnected Car by Ashish Bhasin
Connected Car by Ashish BhasinAshish Bhasin
 
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...Real-Time Innovations (RTI)
 
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014Jaime Martin Losa
 

Viewers also liked (8)

MiroSurge: Research Platform for Robotic Surgery
MiroSurge: Research Platform for Robotic SurgeryMiroSurge: Research Platform for Robotic Surgery
MiroSurge: Research Platform for Robotic Surgery
 
Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.
 
eProsima RPC over DDS - Connext Conf London October 2015
eProsima RPC over DDS - Connext Conf London October 2015 eProsima RPC over DDS - Connext Conf London October 2015
eProsima RPC over DDS - Connext Conf London October 2015
 
Generic vehicle architecture
Generic vehicle architectureGeneric vehicle architecture
Generic vehicle architecture
 
Connected Car by Ashish Bhasin
Connected Car by Ashish BhasinConnected Car by Ashish Bhasin
Connected Car by Ashish Bhasin
 
Tech Mahindra - Connected Engineering
Tech Mahindra - Connected EngineeringTech Mahindra - Connected Engineering
Tech Mahindra - Connected Engineering
 
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
 
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
 

Similar to Integrating DDS into AXCIOMA - The Component Approach

Integrating DDS into AXCIOMA, the component approach
Integrating DDS into AXCIOMA, the component approachIntegrating DDS into AXCIOMA, the component approach
Integrating DDS into AXCIOMA, the component approachRemedy IT
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSRemedy IT
 
Model Driven, Component Based Development for CBDDS and IDL to C++11
Model Driven, Component Based Development for CBDDS and IDL to C++11Model Driven, Component Based Development for CBDDS and IDL to C++11
Model Driven, Component Based Development for CBDDS and IDL to C++11Remedy IT
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsAXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsRemedy IT
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsAXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsRemedy IT
 
AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...Remedy IT
 
AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...Remedy IT
 
CORBA Programming with TAOX11/C++11 tutorial
CORBA Programming with TAOX11/C++11 tutorialCORBA Programming with TAOX11/C++11 tutorial
CORBA Programming with TAOX11/C++11 tutorialRemedy IT
 
DDS Programming with IDL to C++11 tutorial
DDS Programming with IDL to C++11 tutorialDDS Programming with IDL to C++11 tutorial
DDS Programming with IDL to C++11 tutorialRemedy IT
 
CORBA Programming with TAOX11/C++11 tutorial
CORBA Programming with TAOX11/C++11 tutorialCORBA Programming with TAOX11/C++11 tutorial
CORBA Programming with TAOX11/C++11 tutorialRemedy IT
 
ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013Rupesh Kumar
 
Modernizing SCA through new Object Management Group (OMG) standards
Modernizing SCA through new Object Management Group (OMG) standardsModernizing SCA through new Object Management Group (OMG) standards
Modernizing SCA through new Object Management Group (OMG) standardsRemedy IT
 
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...Ramon Tebar
 
Modernizing SCA through new Object Management Group (OMG) standards
Modernizing SCA through new Object Management Group (OMG) standardsModernizing SCA through new Object Management Group (OMG) standards
Modernizing SCA through new Object Management Group (OMG) standardsRemedy IT
 
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...Amazon Web Services
 
News to Development Environments and for RDz for z/VSE
News to Development Environments and for RDz for z/VSENews to Development Environments and for RDz for z/VSE
News to Development Environments and for RDz for z/VSEIBM
 
Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Remedy IT
 
Remedy IT Company presentation
Remedy IT Company presentationRemedy IT Company presentation
Remedy IT Company presentationRemedy IT
 
Company Presentation RemedyIT
Company Presentation RemedyITCompany Presentation RemedyIT
Company Presentation RemedyITRemedy IT
 
IBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation CustomizationIBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation Customizationgjuljo
 

Similar to Integrating DDS into AXCIOMA - The Component Approach (20)

Integrating DDS into AXCIOMA, the component approach
Integrating DDS into AXCIOMA, the component approachIntegrating DDS into AXCIOMA, the component approach
Integrating DDS into AXCIOMA, the component approach
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDS
 
Model Driven, Component Based Development for CBDDS and IDL to C++11
Model Driven, Component Based Development for CBDDS and IDL to C++11Model Driven, Component Based Development for CBDDS and IDL to C++11
Model Driven, Component Based Development for CBDDS and IDL to C++11
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsAXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systems
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsAXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systems
 
AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...
 
AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...
 
CORBA Programming with TAOX11/C++11 tutorial
CORBA Programming with TAOX11/C++11 tutorialCORBA Programming with TAOX11/C++11 tutorial
CORBA Programming with TAOX11/C++11 tutorial
 
DDS Programming with IDL to C++11 tutorial
DDS Programming with IDL to C++11 tutorialDDS Programming with IDL to C++11 tutorial
DDS Programming with IDL to C++11 tutorial
 
CORBA Programming with TAOX11/C++11 tutorial
CORBA Programming with TAOX11/C++11 tutorialCORBA Programming with TAOX11/C++11 tutorial
CORBA Programming with TAOX11/C++11 tutorial
 
ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013
 
Modernizing SCA through new Object Management Group (OMG) standards
Modernizing SCA through new Object Management Group (OMG) standardsModernizing SCA through new Object Management Group (OMG) standards
Modernizing SCA through new Object Management Group (OMG) standards
 
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...
 
Modernizing SCA through new Object Management Group (OMG) standards
Modernizing SCA through new Object Management Group (OMG) standardsModernizing SCA through new Object Management Group (OMG) standards
Modernizing SCA through new Object Management Group (OMG) standards
 
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
 
News to Development Environments and for RDz for z/VSE
News to Development Environments and for RDz for z/VSENews to Development Environments and for RDz for z/VSE
News to Development Environments and for RDz for z/VSE
 
Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...Component Based Model Driven Development of Mission Critical Defense Applicat...
Component Based Model Driven Development of Mission Critical Defense Applicat...
 
Remedy IT Company presentation
Remedy IT Company presentationRemedy IT Company presentation
Remedy IT Company presentation
 
Company Presentation RemedyIT
Company Presentation RemedyITCompany Presentation RemedyIT
Company Presentation RemedyIT
 
IBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation CustomizationIBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation Customization
 

More from Real-Time Innovations (RTI)

Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...Real-Time Innovations (RTI)
 
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...Real-Time Innovations (RTI)
 
Slash Avionics Integration Costs with DO-178C Certifiable Connectivity Software
Slash Avionics Integration Costs with DO-178C Certifiable Connectivity SoftwareSlash Avionics Integration Costs with DO-178C Certifiable Connectivity Software
Slash Avionics Integration Costs with DO-178C Certifiable Connectivity SoftwareReal-Time Innovations (RTI)
 

More from Real-Time Innovations (RTI) (7)

A Tour of RTI Applications
A Tour of RTI ApplicationsA Tour of RTI Applications
A Tour of RTI Applications
 
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
 
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
 
Introduction to RTI DDS
Introduction to RTI DDSIntroduction to RTI DDS
Introduction to RTI DDS
 
Cyber Security for the Connected Car
Cyber Security for the Connected Car Cyber Security for the Connected Car
Cyber Security for the Connected Car
 
Advancing Active Safety for Next-Gen Automotive
Advancing Active Safety for Next-Gen AutomotiveAdvancing Active Safety for Next-Gen Automotive
Advancing Active Safety for Next-Gen Automotive
 
Slash Avionics Integration Costs with DO-178C Certifiable Connectivity Software
Slash Avionics Integration Costs with DO-178C Certifiable Connectivity SoftwareSlash Avionics Integration Costs with DO-178C Certifiable Connectivity Software
Slash Avionics Integration Costs with DO-178C Certifiable Connectivity Software
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

Integrating DDS into AXCIOMA - The Component Approach

  • 1. Integrating DDS into AXCIOMA, the component approach Johnny Willemsen (jwillemsen@remedy.nl) CTO Remedy IT http://www.remedy.nl
  • 2. Remedy IT Remedy IT is specialized in communication middleware and component technologies Strong focus on open standards based solutions Actively involved in the Object Management Group, chairing several OMG standardization efforts Our customers are in various domains including telecom, aerospace and defense, transportation, industrial automation For more information take a look at our website www.remedy.nl Copyright © Remedy IT2
  • 3. What We Do Global Service Delivery Partner for RTI Connext DDS Develop implementations of OMG open standards • Commercial: TAOX11, AXCIOMA • Open source: TAO, CIAO, R2CORBA Deliver services related to OMG standards including the CORBA, CCM, and DDS standard Develop open standards as part of the Object Management Group Copyright © Remedy IT3
  • 4. What is AXCIOMA? AXCIOMA is a comprehensive software suite combining eleven Object Management Group (OMG) open standards • LwCCM, DDS, DDS4CCM, AMI4CCM, CORBA, IDL, IDL2C++11, RPC4DDS, DDS Security, DDS X- Types, and D&C AXCIOMA is based on • Interoperable Open Architecture (IOA) • Component Based Architecture (CBA) • Service Oriented Architecture (SOA) • Event Driven Architecture (EDA) • Model Driven Architecture (MDA) Copyright © Remedy IT4
  • 5. AXCIOMA AXCIOMA supports the design, development, and deployment of a distributed component based architecture A component based architecture encapsulates and integrates the following mechanisms in a “container” • Threading model • Lifecycle management • Connection management Copyright © Remedy IT5
  • 6. What Is a Component? Independent revisable unit of software with well defined interfaces, called ports Can be packaged as an independent deployable set of files Smallest decomposable unit that defines standard ports is called a monolithic component An component assembly is an aggregation of monolithic components or other component assemblies Copyright © Remedy6
  • 7. Component Copyright © Remedy Provides (facet) attributes Component Configuration Life cycle Uses (receptacle) attributes Component Assembly Configuration Life cycle callbacks 7
  • 8. IDL CODE DEPLOY DATA (types and interfaces) INTERACTION PATTERNS BUSINESS (connectors) (components) Uses Generate Generate Generate Types and Interfaces Interaction pattern implementations Component executor starter code Deployment plan Shared libraries Deployment tools Implement business logic Component Framework Copyright © Remedy8
  • 9. IDL CODE DEPLOY DATA (types and interfaces) INTERACTION PATTERNS BUSINESS (connectors) (components) Uses Generate Generate Generate Types and Interfaces Interaction pattern implementations Component executor starter code Deployment plan Shared libraries Deployment tools Implement business logic Component Framework Copyright © Remedy9
  • 10. IDL CODE DEPLOY DATA (types and interfaces) INTERACTION PATTERNS BUSINESS (connectors) (components) Uses Generate Generate Generate Types and Interfaces Interaction pattern implementations Component executor starter code Deployment plan Shared libraries Deployment tools Implement business logic Component Framework Copyright © Remedy10
  • 11. IDL CODE DEPLOY DATA (types and interfaces) INTERACTION PATTERNS BUSINESS (connectors) (components) Uses Generate Generate Generate Types and Interfaces Interaction pattern implementations Component executor starter code Deployment plan Shared libraries Deployment tools Implement business logic Component Framework Copyright © Remedy11
  • 12. IDL CODE DEPLOY DATA (types and interfaces) INTERACTION PATTERNS BUSINESS (connectors) (components) Uses Generate Generate Generate Types and Interfaces Interaction pattern implementations Component executor starter code Deployment plan Shared libraries Deployment tools Implement business logic Component Framework Copyright © Remedy12 Compilation
  • 13. IDL CODE DEPLOY DATA (types and interfaces) INTERACTION PATTERNS BUSINESS (connectors) (components) Uses Generate Generate Generate Types and Interfaces Interaction pattern implementations Component executor starter code Deployment plan Shared libraries Deployment tools Implement business logic Component Framework Copyright © Remedy13 Compilation
  • 14. Interaction Patterns Define how components interact with the outside world • Request/Reply interaction client, server, asynchronous client, and asynchronous server • Event interaction supplier, push consumer, and pull consumer • State interaction observable, passive observer, push observer, pull observer, and push state observer All these interaction patterns can be realized using DDS Copyright © Remedy14
  • 15. Our AXCIOMA DDS Challenge Integrate RTI Connext DDS into AXCIOMA Provide the IDL to C++11 API to our users Abstract and optimize DDS through the interaction patterns • Request/reply • State • Event Copyright © Remedy IT15
  • 16. IDL to C++11 Language Mapping (I) Copyright © Remedy Simplified mapping for C++ • Make use of the standard C++ library as much as possible Make use of the C++11 features to • Reduce amount of application code • Reduce amount of possible coding errors by providing a safer API • Gain runtime performance • Speedup development and testing Faster time to market Reduced costs Reduced training time 16
  • 17. IDL to C++11 Language Mapping (II) An IDL interface maps to so called reference types Reference types are automatically reference counted A nil reference type is represented as nullptr A boolean operator for reference comparison is available Invoking an operation on a nil reference results in a INV_OBJREF exception, no need whether object references are valid throughout your business code Copyright © Remedy17
  • 18. DDSX11 RTI Connext DDS currently does not support the IDL to C++11 language mapping DDSX11 performs the bridging between the IDL to C++11 and RTI Connext DDS C++ API Hides all vendor API details from the programmer Combination of • IDL based code generation • C++11 code generation • Core support classes and templates Copyright © Remedy IT18
  • 19. DDSX11 Conversion traits For DDSX11 the C++11 types are leading For each IDL defined type we provide a trait with helper methods to convert between C++ and C++11 • Basic type traits are part of the core • Constructed type traits are generated by our RIDL IDL compiler Generated for a specific vendor DDSX11 uses the traits and is unaware of the real type Copyright © Remedy IT19
  • 20. DDSX11 Conversion traits Conversion traits are currently optimized for RTI Connext DDS using the ‘old’ C++ API Traits can be generated differently for other vendors or a different RTI version At the moment the C++ and C++11 type are the same the conversion traits are optimized away by the compiler • DDSX11 and user code doesn’t need to be changed Copyright © Remedy IT20
  • 21. Optimizing DDS Usage DDS API is hidden from the programmer Knowledge about how DDS setup is part of the connector The DDS usage knowledge is implemented and optimized once • Usage of domain participants (how many) • Reuse of topics • Clean shutdown of DDS DDSX11 can use IDL4 annotations which are converted to the DDS vendor specific setting Copyright © Remedy IT21
  • 22. Component and DDS Execution Model Components run in a single threaded, re-entrant environment Callbacks from DDS threads are going dispatched onto our main thread No locking in user code necessary Additional Execution Models will be available for more complex execution environments Copyright © Remedy22
  • 23. Testing All our connector and framework functionality has to be tested automatically No need for special DDS test connectors Special test components that trigger fault conditions • Sometimes need to be combined with specific QoS settings On heavy loads sometimes DomainParticipant discovery is missed • Wait on DDS callbacks like publication_matched before starting the real test code Keep QoS and configuration as simple as possible Copyright © Remedy23
  • 24. Shapes Example Copyright © Remedy … Controller Request/Reply interaction Request/Reply interaction Publisher Event interaction Event interaction Subscriber… 24
  • 25. Generated ShapeType Class Copyright © Remedy25 class ShapeType { public: ShapeType () = default; ~ShapeType () = default; ShapeType (const ShapeType&) = default; ShapeType (ShapeType&&) = default; explicit inline ShapeType ( color_type color, int32_t x, int32_t y, int32_t shapesize); ShapeType& operator= (const ShapeType&) = default; ShapeType& operator= (ShapeType&&) = default; … // Getters and Setters private: // Struct members as private members }; ShapeType shape {"GREEN", 0, 0, 15 }; std::cout << “Created ShapeType " << shape << std::endl; ShapeType shape1 = shape; ShapeType shape2 (shape1);
  • 26. Component Executor Class Copyright © Remedy /// Component Executor Implementation Class : Publisher_comp_exec_i class Pubisher_comp_exec_i final : public virtual IDL::traits<CCM_Publisher_comp>::base_type { public: /// Constructor Publisher_comp_exec_i (); //@@{__RIDL_REGEN_MARKER__} - END : Shapes_Publisher_comp_Impl::Publisher_comp_exec_i[ctor] /// Destructor virtual ~Publisher_comp_exec_i (); /** @name Component port operations. */ //@{ /// Factory method and getter for the control facet /// @return existing instance of facet if one exists, else creates it virtual IDL::traits<Shapes::CCM_Control>::ref_type get_control () override; //@} ... 26
  • 27. Facet Executor Class Copyright © Remedy Shapes::ReturnStatus control_exec_i::setLocation ( uint16_t x, uint16_t y) { Shapes::ReturnStatus status = Shapes::ReturnStatus::RETURN_ERROR; auto cex = IDL::traits<Publisher_comp_exec_i>::narrow ( this->component_executor_.lock ()); if (cex) status = cex->setLocation (x, y); else std::cout << "setLocation - failed to lock executor." << std::endl; return status; } 27
  • 28. Write a DDS sample Copyright © Remedy IT28 // Get the writer port which we use to write a DDS sample IDL::traits< ::Shapes::ShapeType_conn::Writer>::ref_type writer = this->context_->get_connection_info_write_data (); // Write one sample squary for the given instance handle writer->write_one (this->square_, this->instance_handle_);
  • 29. Receive a DDS sample Copyright © Remedy IT29 // Data is delivered through a callback void info_out_data_listener_exec_i::on_one_data ( const ::ShapeType& datum, const ::CCM_DDS::ReadInfo&) { std::cout << "Received " << datum << std::endl; }
  • 30. Conclusion DDS fits perfect into a component based approach DDSX11 abstracts vendor differences and improves portability of user code Fully automated testing is possible but takes time to implement IDL to C++11 simplifies user code, increases performance, and reduces time to implement Copyright © Remedy IT30
  • 31. Contact Remedy IT Melkrijder 11 3861 SG Nijkerk (Gld) The Netherlands tel.: +31(0)88 053 0000 e-mail: sales@remedy.nl website: www.remedy.nl Twitter: @RemedyIT Slideshare: RemedyIT Subscribe to our mailing list Copyright © Remedy IT31