SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
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 square 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
Postbus 81
6930 AB Westervoort
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

Contenu connexe

Tendances

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
 
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
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody SoftwareBill Duncan
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Softwaregjuljo
 
IBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation CustomizationIBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation Customizationgjuljo
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineeringScott Althouse
 
IBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt IntegrationIBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt Integrationgjuljo
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
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
 
Getting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaGetting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaFrank Braun
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and RhapsodyMartin Owen
 
Portlet Programming Using Jsr 168
Portlet Programming Using Jsr 168Portlet Programming Using Jsr 168
Portlet Programming Using Jsr 168Saikrishna Basetti
 
Aras Federation Web Services
Aras Federation Web ServicesAras Federation Web Services
Aras Federation Web ServicesProdeos
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studieshushu
 
j2ee Building components
j2ee Building components j2ee Building components
j2ee Building components adeppathondur
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Maarten Balliauw
 
Velocity-EHF for Android
Velocity-EHF for AndroidVelocity-EHF for Android
Velocity-EHF for Androidmichaeljfawcett
 

Tendances (20)

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
 
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...
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
IBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation CustomizationIBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation Customization
 
Prasad_CTP
Prasad_CTPPrasad_CTP
Prasad_CTP
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineering
 
IBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt IntegrationIBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt Integration
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
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
 
Getting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaGetting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in Ada
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
 
Portlet Programming Using Jsr 168
Portlet Programming Using Jsr 168Portlet Programming Using Jsr 168
Portlet Programming Using Jsr 168
 
COM+ & MSMQ
COM+ & MSMQCOM+ & MSMQ
COM+ & MSMQ
 
Aras Federation Web Services
Aras Federation Web ServicesAras Federation Web Services
Aras Federation Web Services
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
 
The Fluent Interface Pattern
The Fluent Interface PatternThe Fluent Interface Pattern
The Fluent Interface Pattern
 
j2ee Building components
j2ee Building components j2ee Building components
j2ee Building components
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
 
Velocity-EHF for Android
Velocity-EHF for AndroidVelocity-EHF for Android
Velocity-EHF for Android
 

En vedette

A real-time middleware and component model for a fractionated spacecraft
 A real-time middleware and component model for a fractionated spacecraft  A real-time middleware and component model for a fractionated spacecraft
A real-time middleware and component model for a fractionated spacecraft Remedy IT
 
OMG RealTime Workshop 2011 CCM presentation
OMG RealTime Workshop 2011 CCM presentationOMG RealTime Workshop 2011 CCM presentation
OMG RealTime Workshop 2011 CCM presentationRemedy IT
 
Evolution from LwCCM to UCM
Evolution from LwCCM to UCMEvolution from LwCCM to UCM
Evolution from LwCCM to UCMRemedy IT
 
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)Gerardo Pardo-Castellote
 
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)
 
UCM Initial Submission presentation
UCM Initial Submission presentationUCM Initial Submission presentation
UCM Initial Submission presentationRemedy IT
 
Siebel Enterprise Data Quality for Siebel
Siebel Enterprise Data Quality for SiebelSiebel Enterprise Data Quality for Siebel
Siebel Enterprise Data Quality for SiebelJeroen Burgers
 
Oracle Ucm General Presentation Linked In
Oracle Ucm General Presentation Linked InOracle Ucm General Presentation Linked In
Oracle Ucm General Presentation Linked InJan Echarlod
 
eProsima RPC over DDS - OMG June 2013 Berlin Meeting
eProsima RPC over DDS - OMG June 2013 Berlin MeetingeProsima RPC over DDS - OMG June 2013 Berlin Meeting
eProsima RPC over DDS - OMG June 2013 Berlin MeetingJaime Martin Losa
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robotsJaime Martin Losa
 
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
 
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
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsJaime Martin Losa
 

En vedette (13)

A real-time middleware and component model for a fractionated spacecraft
 A real-time middleware and component model for a fractionated spacecraft  A real-time middleware and component model for a fractionated spacecraft
A real-time middleware and component model for a fractionated spacecraft
 
OMG RealTime Workshop 2011 CCM presentation
OMG RealTime Workshop 2011 CCM presentationOMG RealTime Workshop 2011 CCM presentation
OMG RealTime Workshop 2011 CCM presentation
 
Evolution from LwCCM to UCM
Evolution from LwCCM to UCMEvolution from LwCCM to UCM
Evolution from LwCCM to UCM
 
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
DDS - The Proven Data Connectivity Standard for the Industrial IoT (IIoT)
 
MiroSurge: Research Platform for Robotic Surgery
MiroSurge: Research Platform for Robotic SurgeryMiroSurge: Research Platform for Robotic Surgery
MiroSurge: Research Platform for Robotic Surgery
 
UCM Initial Submission presentation
UCM Initial Submission presentationUCM Initial Submission presentation
UCM Initial Submission presentation
 
Siebel Enterprise Data Quality for Siebel
Siebel Enterprise Data Quality for SiebelSiebel Enterprise Data Quality for Siebel
Siebel Enterprise Data Quality for Siebel
 
Oracle Ucm General Presentation Linked In
Oracle Ucm General Presentation Linked InOracle Ucm General Presentation Linked In
Oracle Ucm General Presentation Linked In
 
eProsima RPC over DDS - OMG June 2013 Berlin Meeting
eProsima RPC over DDS - OMG June 2013 Berlin MeetingeProsima RPC over DDS - OMG June 2013 Berlin Meeting
eProsima RPC over DDS - OMG June 2013 Berlin Meeting
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robots
 
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
 
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
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
 

Similaire à 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 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
 
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
 
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
 
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
 
Brocade Software Networking (SDN NFV Day ITB 2016)
Brocade Software Networking (SDN NFV Day ITB 2016)Brocade Software Networking (SDN NFV Day ITB 2016)
Brocade Software Networking (SDN NFV Day ITB 2016)SDNRG ITB
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your FrontendRuben Teijeiro
 
Dev ops for z
Dev ops for z Dev ops for z
Dev ops for z bamadhu
 
Rhapsody Eclipse
Rhapsody EclipseRhapsody Eclipse
Rhapsody EclipseBill Duncan
 
C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2Hammad Rajjoub
 
C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2Hammad Rajjoub
 
黑豹 ch4 ddd pattern practice (2)
黑豹 ch4 ddd pattern practice (2)黑豹 ch4 ddd pattern practice (2)
黑豹 ch4 ddd pattern practice (2)Fong Liou
 
The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...Wannes Rams
 

Similaire à Integrating DDS into AXCIOMA, the component approach (20)

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
 
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
 
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...
 
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
 
Brocade Software Networking (SDN NFV Day ITB 2016)
Brocade Software Networking (SDN NFV Day ITB 2016)Brocade Software Networking (SDN NFV Day ITB 2016)
Brocade Software Networking (SDN NFV Day ITB 2016)
 
CNS Presentation
CNS PresentationCNS Presentation
CNS Presentation
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your Frontend
 
IBM Z for the Digital Enterprise - DevOps for Z
IBM Z for the Digital Enterprise - DevOps for Z IBM Z for the Digital Enterprise - DevOps for Z
IBM Z for the Digital Enterprise - DevOps for Z
 
Dev ops for z
Dev ops for z Dev ops for z
Dev ops for z
 
Rhapsody Eclipse
Rhapsody EclipseRhapsody Eclipse
Rhapsody Eclipse
 
C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2
 
C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2
 
黑豹 ch4 ddd pattern practice (2)
黑豹 ch4 ddd pattern practice (2)黑豹 ch4 ddd pattern practice (2)
黑豹 ch4 ddd pattern practice (2)
 
The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...
 

Plus de Remedy IT

Comparing IDL to C++ with IDL to C++11
Comparing IDL to C++ with IDL to C++11Comparing IDL to C++ with IDL to C++11
Comparing IDL to C++ with IDL to C++11Remedy IT
 
ACE/TAO/CIAO/DAnCE Maintenance overview
ACE/TAO/CIAO/DAnCE Maintenance overviewACE/TAO/CIAO/DAnCE Maintenance overview
ACE/TAO/CIAO/DAnCE Maintenance overviewRemedy IT
 
Remedy IT Revised Submission Presentation for the Unified Component Model (UC...
Remedy IT Revised Submission Presentation for the Unified Component Model (UC...Remedy IT Revised Submission Presentation for the Unified Component Model (UC...
Remedy IT Revised Submission Presentation for the Unified Component Model (UC...Remedy IT
 
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...Remedy IT
 
Component Technologies for Fractionated Satellites
Component Technologies for Fractionated SatellitesComponent Technologies for Fractionated Satellites
Component Technologies for Fractionated SatellitesRemedy IT
 
Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...
Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...
Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...Remedy IT
 
Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...
Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...
Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...Remedy IT
 
Request For Proposal Unified Component Model for Distributed, Real-Time and E...
Request For Proposal Unified Component Model for Distributed, Real-Time and E...Request For Proposal Unified Component Model for Distributed, Real-Time and E...
Request For Proposal Unified Component Model for Distributed, Real-Time and E...Remedy IT
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters MostRemedy IT
 
IDL to C++03 RFC
IDL to C++03 RFCIDL to C++03 RFC
IDL to C++03 RFCRemedy IT
 
F6COM: A Case Study in Extending Container Services through Connectors
F6COM: A Case Study in Extending Container Services through ConnectorsF6COM: A Case Study in Extending Container Services through Connectors
F6COM: A Case Study in Extending Container Services through ConnectorsRemedy IT
 
AMI4CCM, custom DDS connectors, and IDL to C++11
AMI4CCM, custom DDS connectors, and IDL to C++11AMI4CCM, custom DDS connectors, and IDL to C++11
AMI4CCM, custom DDS connectors, and IDL to C++11Remedy IT
 
Draft Request For Proposal Unified Component Model for Distributed, Real-Time...
Draft Request For Proposal Unified Component Model for Distributed, Real-Time...Draft Request For Proposal Unified Component Model for Distributed, Real-Time...
Draft Request For Proposal Unified Component Model for Distributed, Real-Time...Remedy IT
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters MostRemedy IT
 
Remedy IT Flyer_introduction
Remedy IT Flyer_introductionRemedy IT Flyer_introduction
Remedy IT Flyer_introductionRemedy IT
 

Plus de Remedy IT (15)

Comparing IDL to C++ with IDL to C++11
Comparing IDL to C++ with IDL to C++11Comparing IDL to C++ with IDL to C++11
Comparing IDL to C++ with IDL to C++11
 
ACE/TAO/CIAO/DAnCE Maintenance overview
ACE/TAO/CIAO/DAnCE Maintenance overviewACE/TAO/CIAO/DAnCE Maintenance overview
ACE/TAO/CIAO/DAnCE Maintenance overview
 
Remedy IT Revised Submission Presentation for the Unified Component Model (UC...
Remedy IT Revised Submission Presentation for the Unified Component Model (UC...Remedy IT Revised Submission Presentation for the Unified Component Model (UC...
Remedy IT Revised Submission Presentation for the Unified Component Model (UC...
 
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...
 
Component Technologies for Fractionated Satellites
Component Technologies for Fractionated SatellitesComponent Technologies for Fractionated Satellites
Component Technologies for Fractionated Satellites
 
Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...
Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...
Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...
 
Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...
Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...
Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...
 
Request For Proposal Unified Component Model for Distributed, Real-Time and E...
Request For Proposal Unified Component Model for Distributed, Real-Time and E...Request For Proposal Unified Component Model for Distributed, Real-Time and E...
Request For Proposal Unified Component Model for Distributed, Real-Time and E...
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters Most
 
IDL to C++03 RFC
IDL to C++03 RFCIDL to C++03 RFC
IDL to C++03 RFC
 
F6COM: A Case Study in Extending Container Services through Connectors
F6COM: A Case Study in Extending Container Services through ConnectorsF6COM: A Case Study in Extending Container Services through Connectors
F6COM: A Case Study in Extending Container Services through Connectors
 
AMI4CCM, custom DDS connectors, and IDL to C++11
AMI4CCM, custom DDS connectors, and IDL to C++11AMI4CCM, custom DDS connectors, and IDL to C++11
AMI4CCM, custom DDS connectors, and IDL to C++11
 
Draft Request For Proposal Unified Component Model for Distributed, Real-Time...
Draft Request For Proposal Unified Component Model for Distributed, Real-Time...Draft Request For Proposal Unified Component Model for Distributed, Real-Time...
Draft Request For Proposal Unified Component Model for Distributed, Real-Time...
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters Most
 
Remedy IT Flyer_introduction
Remedy IT Flyer_introductionRemedy IT Flyer_introduction
Remedy IT Flyer_introduction
 

Dernier

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
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
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
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
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
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
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Dernier (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
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
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
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
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

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 square 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 Postbus 81 6930 AB Westervoort 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