SlideShare a Scribd company logo
1 of 33
Download to read offline
AXCIOMA Internals
A LwCCM implementation supporting the IDL to C++11 language mapping
https://www.axcioma.com/
Johnny Willemsen
jwillemsen@remedy.nl
Advantages of IDL to C++11
The IDL to C++11 language mapping has the
following advantages compared to the IDL to C++
language mapping
• Easier to use
• Language mapping is much safer to use
• Improved runtime performance
• Reduced training time
• Reduced development and test time
• Faster time to market
Copyright © Remedy IT2
AXCIOMA Requirements
LwCCM implementation using the IDL to C++11
Language Mapping
Existing CIAO deployment plans should be reusable
with minimal changes
Reduced footprint compared to CIAO
Reduced dependency on CORBA
Optimized set of features compared to CIAO
• No support for CCM events
• No support for the IDL ‘supports’ keyword
• Component attributes are set to their initial value
using a D&C compliant deployment tool but not
changeable through CORBA
Copyright © Remedy IT3
Prerequisites AXCIOMA
C++ compiler supporting C++11
• GCC 4.7 or newer
• Visual Studio 2015
• Visual Studio 2017
• Intel C++ 2016
• Other C++ compilers have been tested but lack
features
Extensible IDL compiler supporting IDL2, IDL3, and
IDL3+
• RIDLC
Implementation of the IDL to C++11 language
mapping for all IDL type constructs
• TAOX11
4 Copyright © Remedy IT
RIDLC
Ruby based IDL compiler developed by Remedy IT
Front end with support for IDL2, IDL3, IDL3+, and
annotations compatible with DDS-XTypes
Supports pluggable and extensible backends
Current available backends
• IDL to Ruby
• IDL to C++
• IDL to C++11
A LwCCM C++11 backend is developed by extending
the IDL to C++11 backend
Frontend is available as Ruby Gem from
http://www.rubygems.org/gems/ridl
Copyright © Remedy IT5
TAOX11
Commercial CORBA implementation by Remedy IT
Compliant with the IDL to C++11 language mapping
Uses TAO core leveraging its portability and features
Uses RIDLC as IDL compiler
Extended suite of unit tests
See https://taox11.remedy.nl
Copyright © Remedy IT6
AXCIOMA Goals
Fix the API for component developers by using the
IDL to C++11 language mapping
Independent from the existing CIAO LwCCM
implementation
Existing CIAO deployment plans can be used with
minimum changes
Uses TAOX11 for the C++11 type system and
optional CORBA support
Uses RIDLC as extensible IDL compiler
Copyright © Remedy IT7
DAnCEX11 Requirements
Be able to deploy AXCIOMA components and
connectors
Provide a flexible and powerful deployment tooling
Support plugin support for various interception points
Copyright © Remedy IT8
Requirements DAnCEX11 LM
A new DAnCEX11 Locality Manager will be
developed
Same set of features as the DAnCE LM
New internal design and implementation
Will provide same plugin support as the DAnCE LM
Copyright © Remedy IT9
AXCIOMA
https://www.axcioma.com/
AXCIOMA Container Architecture
AXCIOMA container does not depend on CORBA for
its core functionality
AXCIOMA container is smaller in terms of LOC and
footprint compared to CIAO
Copyright © Remedy IT11
AXCIOMA Container
AXCIOMA container will provide services to the
components hosted
AXCIOMA installation handlers will create all
components
AXCIOMA architecture is way easier than the CIAO
architecture
Copyright © Remedy IT12
Component CORBA servant
Signature of the component CORBA servant entry
point as used by D&C will be updated with a different
return value
Name of the entry point will be kept the same which
means deployment plans don’t change
An AXCIOMA ExecutorLocator is returned which
provides access to all needed component related
entities:
• Component and facet executors
• Component context
• Component configuration values
Copyright © Remedy IT13
Executor Locator and
Configuration Values
ExecutorLocator is responsible for setting
component attributes to their initial value
Converts attribute names to concrete method
invocations onto the user implemented component
executor
Extracts the attribute value from their Any
encapsulation
Copyright © Remedy IT14
High level architecture
Copyright © Remedy IT15
Component Executor
Facet
Executor
Facet
Executor
User code
Executor Locator
Connector(s)
CIAOX11 Container & Deployment Interceptors
Component
Context
Facet
Executor
Generated
CIAOX11 Core
Clients
Component context
Caches object references for all receptacles of a
component
The CIAO SessionContext get_CCM_object is
removed
Simplified API because of the fact that the
connection_name is now used as Cookie, no
valuetypes anymore!
Copyright © Remedy IT16
Lifecycle operations
LwCCM defined lifecycle operations will go directly
from the container to the component executor using
the ExecutorLocator
Which operations are called on the component
executor is determined by the container, not by the
generated code
Copyright © Remedy IT17
Component CORBA servant
The component CORBA servant is used by D&C to
retrieve CORBA facet object references when remote
CORBA interfaces are used
The component CORBA servant is registered with the
POA using its unique D&C id
Retrieval of facet CORBA object references happens
through the POA using the unique component D&C id and
the facet name, the references are not cached in the
component CORBA servant
One CORBA component servant implementation will be
used for all user components, no user component specific
API will be available through CORBA
The component CORBA servant is not required for the
container to operate
The CORBA servant is handled within CORBA4CCM
Copyright © Remedy IT18
Connector CORBA servant
Connectors only provide local facets
Connectors don’t have CORBA mandatory parts, no
CORBA servants are needed
• A DDS4CCM connector will have no component and
facet CORBA servants
• Leads to a heavy reduction in code generation and
footprint for connectors
Copyright © Remedy IT19
CORBA4CCM connector
A CORBA4CCM connector is introduced to support
request/reply interaction between components
CORBA4CCM connector delegates all operations
and attribute access to the user provided facet
executor
No usage of inheritance for the C++11 facet CORBA
servants leads to reduced dependencies and
simplified compilation steps
Copyright © Remedy IT20
DDS4CCM
DDS4CCM connectors are implemented using
C++11
Use a similar C++ templated connector framework as
CIAO
Optimal integration requires a DDS vendor that
natively supports IDL to C++11 for
• Built in DDS entities and types
• User defined types as generated by TAOX11
• IDL defined type specific DataReader and
DataWriter
Copyright © Remedy IT21
RTI DDS integration
RTI DDS lacks support for IDL to C++11
AXCIOMA will provide C++11 API to the user and convert
internally to the RTI C++ API
• Makes the integration possible
• Can be adapted for other DDS vendors that lack C++11
support
• Templated design allows for full optimization when a DDS
vendor with native IDL to C++11 support is integrated
No usage of the RTI CORBA Compatibility Kit (CCK)
Runtime conversion of user data to the RTI C++ types
New set of RIDLC backends for generating the type
conversion
Copyright © Remedy IT22
AMI4CCM
AMI4CCM connectors are implemented using C++11
and generated by RIDLC
TAOX11 CORBA AMI support is used
CORBA AMI support is completely hidden inside the
AMI4CCM connector, no CORBA AMI is exposed to
the component developer
Copyright © Remedy IT23
Timer Support
Timer support is provided by the TT4CCM connector
TT4CCM shields application code from low level
middleware details
AXCIOMA does provide access to the TAOX11 ORB
through the LwCCM service registry and the TAOX11
ORB will provide access to its ACE Reactor
Future revisions of the LwCCM/UCM standard need
to address the lack of a timer concept in LwCCM
Copyright © Remedy IT24
Valuetypes
AXCIOMA modifies the LwCCM IDL to not use
valuetypes
• ConfigValue are changed to an IDL struct
• Cookie will be an IDL string simplifying the usage of
it
Not using valuetypes reduces footprint and
complexity
Copyright © Remedy IT25
Starter Executor Generation (1)
AXCIOMA uses RIDLC for generating the starter
code for the component and facet executors
Unique RIDLC regeneration blocks will be added to
the generated starter code
• A regeneration block is enclosed by a begin and end
marker
• Marker is unique for the file where it is used in
RIDLC will read in the existing file, store the blocks
and place them back upon regeneration
Copyright © Remedy IT26
Starter Executor Generation (2)
// Some example markers, the @@{__RIDL_REGEN_MARKER__} part can be changed through the commandline
// flags of RIDLC
//@@{__RIDL_REGEN_MARKER__} - BEGIN : Shapes_Receiver_Impl[src_includes]
#include "ace/OS_NS_time.h"
//@@{__RIDL_REGEN_MARKER__} - END : Shapes_Receiver_Impl[src_includes]
void
info_out_data_listener_exec_i::on_one_data (const ::ShapeType& datum, const ::CCM_DDS::ReadInfo&
info) override
{
//@@{__RIDL_REGEN_MARKER__} - BEGIN : info_out_data_listener_exec_i::on_one_data[_datum_info]
std::cout << “Received shape <“ << datum << std::endl;
//@@{__RIDL_REGEN_MARKER__} - END : info_out_data_listener_exec_i::on_one_data[_datum_info]
}
Receiver_exec_i::~Receiver_exec_i ()
{
//@@{__RIDL_REGEN_MARKER__} - BEGIN : Shapes_Receiver_Impl::Receiver_exec_i[destructor]
//@@{__RIDL_REGEN_MARKER__} - END : Shapes_Receiver_Impl::Receiver_exec_i[destructor]
}
Copyright © Remedy IT27
AXCIOMA Release
Copyright © Remedy IT28
AXCIOMA V2.0
Android, RHEL 6.x/7.x, Fedora >= 17, OpenSuSE >= 12.2,
CentOS 6.x/7.x, and Windows 32/64 using MinGW, Visual
Studio 2015, and Intel C++ 2016 as supported platforms
Support for components and connectors
CORBA support through CORBA4CCM
DDS4CCM Event and State connectors using RTI
Connext DDS 5.2.3
AMI4CCM support
TT4CCM support
Full suite of unit tests and examples
Full D&C compliant toolchain
Full documentation
Copyright © Remedy IT29
Resources
Copyright © Remedy IT30
External links
TAOX11
• https://taox11.remedy.nl/
IDL to C++11 specification
• http://www.omg.org/spec/CPP11
IDL to C++11 background and tutorials
• https://osportal.remedy.nl/projects/idl2cppx0
Copyright © Remedy IT31
Want to know?
Go to our AXCIOMA website at
https://www.axcioma.com
See our other presentations at
http://www.slideshare.net/RemedyIT
Ask for a free evaluation version, see
https://swsupport.remedy.nl
Copyright © Remedy IT32
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 IT33

More Related Content

What's hot

Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Oracle Developers
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody SoftwareBill Duncan
 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsManish Kapur
 
Fn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal ArifFn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal ArifOracle Developers
 
Oracle SOA Suite Everywhere
Oracle SOA Suite EverywhereOracle SOA Suite Everywhere
Oracle SOA Suite EverywhereRupesh Das
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureOracle Developers
 
Introduction to the Oracle Container Engine
Introduction to the Oracle Container EngineIntroduction to the Oracle Container Engine
Introduction to the Oracle Container EngineOracle Developers
 
Exploring the Functionality of the Rockwell Automation® Library of Process Ob...
Exploring the Functionality of the Rockwell Automation® Library of Process Ob...Exploring the Functionality of the Rockwell Automation® Library of Process Ob...
Exploring the Functionality of the Rockwell Automation® Library of Process Ob...Rockwell Automation
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsSpace Codesign
 
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...Oracle Developers
 
Service everywhere using oracle integration repository
Service everywhere using oracle integration repositoryService everywhere using oracle integration repository
Service everywhere using oracle integration repositoryPavan B
 
@avanttic_meetup Oracle Technology MAD_BCN: Oracle Cloud API Platform evoluc...
@avanttic_meetup Oracle Technology MAD_BCN:  Oracle Cloud API Platform evoluc...@avanttic_meetup Oracle Technology MAD_BCN:  Oracle Cloud API Platform evoluc...
@avanttic_meetup Oracle Technology MAD_BCN: Oracle Cloud API Platform evoluc...avanttic Consultoría Tecnológica
 
Application Modernisation with PKS
Application Modernisation with PKSApplication Modernisation with PKS
Application Modernisation with PKSPhil Reay
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevOracle Developers
 
Portlet Programming Using Jsr 168
Portlet Programming Using Jsr 168Portlet Programming Using Jsr 168
Portlet Programming Using Jsr 168Saikrishna Basetti
 
Oracle E-Business Suite R12.2.5 on Database 12c: Install, Patch and Administer
Oracle E-Business Suite R12.2.5 on Database 12c: Install, Patch and AdministerOracle E-Business Suite R12.2.5 on Database 12c: Install, Patch and Administer
Oracle E-Business Suite R12.2.5 on Database 12c: Install, Patch and AdministerAndrejs Karpovs
 

What's hot (20)

Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native Applications
 
Fn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal ArifFn meetup by Sardar Jamal Arif
Fn meetup by Sardar Jamal Arif
 
Oracle SOA Suite Everywhere
Oracle SOA Suite EverywhereOracle SOA Suite Everywhere
Oracle SOA Suite Everywhere
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud Infrastructure
 
Prasad_CTP
Prasad_CTPPrasad_CTP
Prasad_CTP
 
Introduction to the Oracle Container Engine
Introduction to the Oracle Container EngineIntroduction to the Oracle Container Engine
Introduction to the Oracle Container Engine
 
ABC’s Proposal
ABC’s ProposalABC’s Proposal
ABC’s Proposal
 
Exploring the Functionality of the Rockwell Automation® Library of Process Ob...
Exploring the Functionality of the Rockwell Automation® Library of Process Ob...Exploring the Functionality of the Rockwell Automation® Library of Process Ob...
Exploring the Functionality of the Rockwell Automation® Library of Process Ob...
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL Models
 
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
Reactive Java Programming: A new Asynchronous Database Access API by Kuassi M...
 
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor TopicJavantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
 
Service everywhere using oracle integration repository
Service everywhere using oracle integration repositoryService everywhere using oracle integration repository
Service everywhere using oracle integration repository
 
@avanttic_meetup Oracle Technology MAD_BCN: Oracle Cloud API Platform evoluc...
@avanttic_meetup Oracle Technology MAD_BCN:  Oracle Cloud API Platform evoluc...@avanttic_meetup Oracle Technology MAD_BCN:  Oracle Cloud API Platform evoluc...
@avanttic_meetup Oracle Technology MAD_BCN: Oracle Cloud API Platform evoluc...
 
Application Modernisation with PKS
Application Modernisation with PKSApplication Modernisation with PKS
Application Modernisation with PKS
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
 
Portlet Programming Using Jsr 168
Portlet Programming Using Jsr 168Portlet Programming Using Jsr 168
Portlet Programming Using Jsr 168
 
PlantPAx system - what's new and what's next
PlantPAx system - what's new and what's nextPlantPAx system - what's new and what's next
PlantPAx system - what's new and what's next
 
Oracle E-Business Suite R12.2.5 on Database 12c: Install, Patch and Administer
Oracle E-Business Suite R12.2.5 on Database 12c: Install, Patch and AdministerOracle E-Business Suite R12.2.5 on Database 12c: Install, Patch and Administer
Oracle E-Business Suite R12.2.5 on Database 12c: Install, Patch and Administer
 

Similar to AXCIOMA, the internals, the component framework for distributed, real-time, and embedded systems

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
 
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
 
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 ApproachReal-Time Innovations (RTI)
 
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
 
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
 
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
 
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
 
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
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix Rohit Kelapure
 
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...PT Datacomm Diangraha
 
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoOracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoMarketingArrowECS_CZ
 
introduction_to_rtsc.ppt
introduction_to_rtsc.pptintroduction_to_rtsc.ppt
introduction_to_rtsc.pptssuserdfaa10
 
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...
Edge 2016 Session 1886  Building your own docker container cloud on ibm power...Edge 2016 Session 1886  Building your own docker container cloud on ibm power...
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...Yong Feng
 
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
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integrationTrevor Dolby
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesSamuel Dratwa
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 
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
 
Container security within Cisco Container Platform
Container security within Cisco Container PlatformContainer security within Cisco Container Platform
Container security within Cisco Container PlatformSanjeev Rampal
 
DCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDocker, Inc.
 

Similar to AXCIOMA, the internals, the component framework for distributed, real-time, and embedded systems (20)

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
 
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
 
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
 
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
 
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
 
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
 
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
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix
 
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
Creating Microservices Application with IBM Cloud Private (ICP) - ICP Archite...
 
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoOracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
 
introduction_to_rtsc.ppt
introduction_to_rtsc.pptintroduction_to_rtsc.ppt
introduction_to_rtsc.ppt
 
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...
Edge 2016 Session 1886  Building your own docker container cloud on ibm power...Edge 2016 Session 1886  Building your own docker container cloud on ibm power...
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...
 
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
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
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...
 
Container security within Cisco Container Platform
Container security within Cisco Container PlatformContainer security within Cisco Container Platform
Container security within Cisco Container Platform
 
DCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDCEU 18: State of the Docker Engine
DCEU 18: State of the Docker Engine
 

More from Remedy IT

Remedy IT Company presentation
Remedy IT Company presentationRemedy IT Company presentation
Remedy IT Company presentationRemedy 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
 
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
 
Component Technologies for Fractionated Satellites
Component Technologies for Fractionated SatellitesComponent Technologies for Fractionated Satellites
Component Technologies for Fractionated SatellitesRemedy IT
 
UCM Initial Submission presentation
UCM Initial Submission presentationUCM Initial Submission presentation
UCM Initial Submission presentationRemedy 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
 
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
 

More from Remedy IT (17)

Remedy IT Company presentation
Remedy IT Company presentationRemedy IT Company presentation
Remedy IT Company presentation
 
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...
 
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
 
Component Technologies for Fractionated Satellites
Component Technologies for Fractionated SatellitesComponent Technologies for Fractionated Satellites
Component Technologies for Fractionated Satellites
 
UCM Initial Submission presentation
UCM Initial Submission presentationUCM Initial Submission presentation
UCM Initial Submission presentation
 
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
 
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
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

AXCIOMA, the internals, the component framework for distributed, real-time, and embedded systems

  • 1. AXCIOMA Internals A LwCCM implementation supporting the IDL to C++11 language mapping https://www.axcioma.com/ Johnny Willemsen jwillemsen@remedy.nl
  • 2. Advantages of IDL to C++11 The IDL to C++11 language mapping has the following advantages compared to the IDL to C++ language mapping • Easier to use • Language mapping is much safer to use • Improved runtime performance • Reduced training time • Reduced development and test time • Faster time to market Copyright © Remedy IT2
  • 3. AXCIOMA Requirements LwCCM implementation using the IDL to C++11 Language Mapping Existing CIAO deployment plans should be reusable with minimal changes Reduced footprint compared to CIAO Reduced dependency on CORBA Optimized set of features compared to CIAO • No support for CCM events • No support for the IDL ‘supports’ keyword • Component attributes are set to their initial value using a D&C compliant deployment tool but not changeable through CORBA Copyright © Remedy IT3
  • 4. Prerequisites AXCIOMA C++ compiler supporting C++11 • GCC 4.7 or newer • Visual Studio 2015 • Visual Studio 2017 • Intel C++ 2016 • Other C++ compilers have been tested but lack features Extensible IDL compiler supporting IDL2, IDL3, and IDL3+ • RIDLC Implementation of the IDL to C++11 language mapping for all IDL type constructs • TAOX11 4 Copyright © Remedy IT
  • 5. RIDLC Ruby based IDL compiler developed by Remedy IT Front end with support for IDL2, IDL3, IDL3+, and annotations compatible with DDS-XTypes Supports pluggable and extensible backends Current available backends • IDL to Ruby • IDL to C++ • IDL to C++11 A LwCCM C++11 backend is developed by extending the IDL to C++11 backend Frontend is available as Ruby Gem from http://www.rubygems.org/gems/ridl Copyright © Remedy IT5
  • 6. TAOX11 Commercial CORBA implementation by Remedy IT Compliant with the IDL to C++11 language mapping Uses TAO core leveraging its portability and features Uses RIDLC as IDL compiler Extended suite of unit tests See https://taox11.remedy.nl Copyright © Remedy IT6
  • 7. AXCIOMA Goals Fix the API for component developers by using the IDL to C++11 language mapping Independent from the existing CIAO LwCCM implementation Existing CIAO deployment plans can be used with minimum changes Uses TAOX11 for the C++11 type system and optional CORBA support Uses RIDLC as extensible IDL compiler Copyright © Remedy IT7
  • 8. DAnCEX11 Requirements Be able to deploy AXCIOMA components and connectors Provide a flexible and powerful deployment tooling Support plugin support for various interception points Copyright © Remedy IT8
  • 9. Requirements DAnCEX11 LM A new DAnCEX11 Locality Manager will be developed Same set of features as the DAnCE LM New internal design and implementation Will provide same plugin support as the DAnCE LM Copyright © Remedy IT9
  • 11. AXCIOMA Container Architecture AXCIOMA container does not depend on CORBA for its core functionality AXCIOMA container is smaller in terms of LOC and footprint compared to CIAO Copyright © Remedy IT11
  • 12. AXCIOMA Container AXCIOMA container will provide services to the components hosted AXCIOMA installation handlers will create all components AXCIOMA architecture is way easier than the CIAO architecture Copyright © Remedy IT12
  • 13. Component CORBA servant Signature of the component CORBA servant entry point as used by D&C will be updated with a different return value Name of the entry point will be kept the same which means deployment plans don’t change An AXCIOMA ExecutorLocator is returned which provides access to all needed component related entities: • Component and facet executors • Component context • Component configuration values Copyright © Remedy IT13
  • 14. Executor Locator and Configuration Values ExecutorLocator is responsible for setting component attributes to their initial value Converts attribute names to concrete method invocations onto the user implemented component executor Extracts the attribute value from their Any encapsulation Copyright © Remedy IT14
  • 15. High level architecture Copyright © Remedy IT15 Component Executor Facet Executor Facet Executor User code Executor Locator Connector(s) CIAOX11 Container & Deployment Interceptors Component Context Facet Executor Generated CIAOX11 Core Clients
  • 16. Component context Caches object references for all receptacles of a component The CIAO SessionContext get_CCM_object is removed Simplified API because of the fact that the connection_name is now used as Cookie, no valuetypes anymore! Copyright © Remedy IT16
  • 17. Lifecycle operations LwCCM defined lifecycle operations will go directly from the container to the component executor using the ExecutorLocator Which operations are called on the component executor is determined by the container, not by the generated code Copyright © Remedy IT17
  • 18. Component CORBA servant The component CORBA servant is used by D&C to retrieve CORBA facet object references when remote CORBA interfaces are used The component CORBA servant is registered with the POA using its unique D&C id Retrieval of facet CORBA object references happens through the POA using the unique component D&C id and the facet name, the references are not cached in the component CORBA servant One CORBA component servant implementation will be used for all user components, no user component specific API will be available through CORBA The component CORBA servant is not required for the container to operate The CORBA servant is handled within CORBA4CCM Copyright © Remedy IT18
  • 19. Connector CORBA servant Connectors only provide local facets Connectors don’t have CORBA mandatory parts, no CORBA servants are needed • A DDS4CCM connector will have no component and facet CORBA servants • Leads to a heavy reduction in code generation and footprint for connectors Copyright © Remedy IT19
  • 20. CORBA4CCM connector A CORBA4CCM connector is introduced to support request/reply interaction between components CORBA4CCM connector delegates all operations and attribute access to the user provided facet executor No usage of inheritance for the C++11 facet CORBA servants leads to reduced dependencies and simplified compilation steps Copyright © Remedy IT20
  • 21. DDS4CCM DDS4CCM connectors are implemented using C++11 Use a similar C++ templated connector framework as CIAO Optimal integration requires a DDS vendor that natively supports IDL to C++11 for • Built in DDS entities and types • User defined types as generated by TAOX11 • IDL defined type specific DataReader and DataWriter Copyright © Remedy IT21
  • 22. RTI DDS integration RTI DDS lacks support for IDL to C++11 AXCIOMA will provide C++11 API to the user and convert internally to the RTI C++ API • Makes the integration possible • Can be adapted for other DDS vendors that lack C++11 support • Templated design allows for full optimization when a DDS vendor with native IDL to C++11 support is integrated No usage of the RTI CORBA Compatibility Kit (CCK) Runtime conversion of user data to the RTI C++ types New set of RIDLC backends for generating the type conversion Copyright © Remedy IT22
  • 23. AMI4CCM AMI4CCM connectors are implemented using C++11 and generated by RIDLC TAOX11 CORBA AMI support is used CORBA AMI support is completely hidden inside the AMI4CCM connector, no CORBA AMI is exposed to the component developer Copyright © Remedy IT23
  • 24. Timer Support Timer support is provided by the TT4CCM connector TT4CCM shields application code from low level middleware details AXCIOMA does provide access to the TAOX11 ORB through the LwCCM service registry and the TAOX11 ORB will provide access to its ACE Reactor Future revisions of the LwCCM/UCM standard need to address the lack of a timer concept in LwCCM Copyright © Remedy IT24
  • 25. Valuetypes AXCIOMA modifies the LwCCM IDL to not use valuetypes • ConfigValue are changed to an IDL struct • Cookie will be an IDL string simplifying the usage of it Not using valuetypes reduces footprint and complexity Copyright © Remedy IT25
  • 26. Starter Executor Generation (1) AXCIOMA uses RIDLC for generating the starter code for the component and facet executors Unique RIDLC regeneration blocks will be added to the generated starter code • A regeneration block is enclosed by a begin and end marker • Marker is unique for the file where it is used in RIDLC will read in the existing file, store the blocks and place them back upon regeneration Copyright © Remedy IT26
  • 27. Starter Executor Generation (2) // Some example markers, the @@{__RIDL_REGEN_MARKER__} part can be changed through the commandline // flags of RIDLC //@@{__RIDL_REGEN_MARKER__} - BEGIN : Shapes_Receiver_Impl[src_includes] #include "ace/OS_NS_time.h" //@@{__RIDL_REGEN_MARKER__} - END : Shapes_Receiver_Impl[src_includes] void info_out_data_listener_exec_i::on_one_data (const ::ShapeType& datum, const ::CCM_DDS::ReadInfo& info) override { //@@{__RIDL_REGEN_MARKER__} - BEGIN : info_out_data_listener_exec_i::on_one_data[_datum_info] std::cout << “Received shape <“ << datum << std::endl; //@@{__RIDL_REGEN_MARKER__} - END : info_out_data_listener_exec_i::on_one_data[_datum_info] } Receiver_exec_i::~Receiver_exec_i () { //@@{__RIDL_REGEN_MARKER__} - BEGIN : Shapes_Receiver_Impl::Receiver_exec_i[destructor] //@@{__RIDL_REGEN_MARKER__} - END : Shapes_Receiver_Impl::Receiver_exec_i[destructor] } Copyright © Remedy IT27
  • 29. AXCIOMA V2.0 Android, RHEL 6.x/7.x, Fedora >= 17, OpenSuSE >= 12.2, CentOS 6.x/7.x, and Windows 32/64 using MinGW, Visual Studio 2015, and Intel C++ 2016 as supported platforms Support for components and connectors CORBA support through CORBA4CCM DDS4CCM Event and State connectors using RTI Connext DDS 5.2.3 AMI4CCM support TT4CCM support Full suite of unit tests and examples Full D&C compliant toolchain Full documentation Copyright © Remedy IT29
  • 31. External links TAOX11 • https://taox11.remedy.nl/ IDL to C++11 specification • http://www.omg.org/spec/CPP11 IDL to C++11 background and tutorials • https://osportal.remedy.nl/projects/idl2cppx0 Copyright © Remedy IT31
  • 32. Want to know? Go to our AXCIOMA website at https://www.axcioma.com See our other presentations at http://www.slideshare.net/RemedyIT Ask for a free evaluation version, see https://swsupport.remedy.nl Copyright © Remedy IT32
  • 33. 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 IT33