SlideShare a Scribd company logo
1 of 25
Download to read offline
Model Driven, Component Based
Development for CBDDS
IDL to C++11
Johnny Willemsen
jwillemsen@remedy.nl
This presentation is based on material from
Northrop Grumman
Component Based DDS
(CBDDS)
CBDDS is an integrated suite using seven OMG
open standards
• LwCCM, DDS, DDS4CCM, AMI4CCM, CORBA,
IDL, and D&C
Supports architecture development at a higher level
of abstraction
Encapsulation of event queue/dispatch, threading
model, boilerplate code, application lifecycle
management, extensions and connection
management in a “container”
CCM Generic Interaction Support (GIS) encapsulates
DDS or any other middleware functionality inside a
“connector” with APIs defined by local IDL interfaces
Copyright © 20132
Advantages CBDDS
DDS4CCM APIs for DDS access are middleware
agnostic and vendor independent
CBDDS extends DDS to fill in the holes needed to
define a complex, full featured DRE architecture with
open standard vs. custom solutions
Copyright © 20133
Why CBDDS
NGC adopted CBDDS to meet a larger set of goals
and requirements
• CBDDS addresses all five architectural tenets
DDS by itself only fully addresses two of NGC
five guiding tenets (OA & EDA)
• Future OMG RPC4DDS spec anticipated to add
SOA support
• New MDA tooling is much more useful for CBDDS,
but can help DDS-only users as well
High performance not compromised to improve
modularity, reuse and portability, as well as
functionality, scalability and time/cost of development
CBDDS adds structure, which is the very definition of
architecture Copyright © 20134
• 5 Guiding Architectural Tenets:
• OA Open Architecture (MOSA)
• MDA Model Driven Architecture
• CBA Component Based Architecture
• SOA Service Oriented Architecture
• EDA Event Driven Architecture (DOA)
MDA Tooling
Multiple MDA Tools have been funded
Component Based Architecture (CBA) captured
as a PIM
Maps to a CBDDS IDL and D&C PSM
Key auto-generated OA artifacts drive the overall
process (IDL 3.5, D&C 4.0)
Copyright © 20135
CBD Software Lifecycle
Copyright © 20136
IDL CDP CDD
• Zeligsoft CX
• Artisan Studio • Eclipse
• Zeligsoft CX
• Artisan Studio
Design Tool IDE Tool
Deployment
Planning Tool
System Software
Design & Component
Definition
Component Interface
Design
Component
Packaging &
Assembly
Component
Deployment,
Integration & Reuse
Component Software
Design
Component
Implementation
1 2 5 643
Architecture
&System
Design
System
Integration,
Test&
Verification
SNA CBD Software Lifecycle Process
Key
Artifacts
CPP, H SO
• IDE: Integrated Development Environment
• CBD: Component Based Development
• SNA: Scalable Node Architecture
• IDL: Interface Definition Language (OMG)
• CDP: Component Deployment Plan
• CDD: Component Domain Descriptor
Agile process iterations early & often, incrementally building up from an early executable “skeleton” architecture
OMG IDL Elements
IDL offers vendor, programming language, and
middleware independent format
• OMG standards mapping IDL to C++, C++11, Java,
Python, C, Ruby, etc.
A given middleware standard implementation
provides an IDL to language compiler
• Model generated IDL -> IDL compiler generated
source = large percentage of design code base
• NGC’s SNA SDK currently uses tao_idl and
rtiddsgen IDL compilers (others in future)
Copyright © 20137
MDA tool modular IDL 3.5
convention
Generate 5 fundamental file types for components,
connectors, messages, interfaces and basic type
definitions
Taxonomy of 5 modular file types support
component/port reuse and modularity (vs. all IDL in
one project IDL file)
IDL import & export feature of all CBDDS MDA tools
enables basic model interchange using IDL
Modular structure leveraged to auto-generate
makefiles for entire component-based projects
Run CCM IDL compiler on all types, only run DDS
IDL compiler on *_defn.idl & *_msg.idl files
Copyright © 20138
Component Assembly
Example
C&C style Component Assembly diagrams offer a
“software schematic” view of your run-time structural
architecture
• Shows system run-time composition using standard
“software parts”
• Similar to hardware schematics connecting standard
hardware parts
• Connections drawn in an MDA modeling tool are
automatically established during the deployment
launch phase by the D&C deployment framework –
big time/code savings to developers
Copyright © 20139
Component Assembly
Example
Copyright © 201310 Copyright © 2013
Service (Facet)
Client (Receptacle)
Sync or Async (AMI4CCM)
Basic Port Types Extended Port Types
DDS_Write, DDS_Update
DDS_Listen, DDS_Read,
DDS_StateListen, DDS_Get
PSAT_Write
PSAT_Listen
SPDM PSAT_Base::PSAT_Write
SPDM PSAT_Base::PSAT_Listen Discover (Data or Services)
AI_Save
Domain and Deployment
Example
Allocation style Domain & Deployment diagrams capture
QoS, config & aspects of system resource utilization for
resource allocation and concurrency
A Deployment “diagram” maps:
• Each component instance to a component server process
(+ container)
• Processes to compute nodes (OS instances) defined
for a Domain
Copyright © 201311
Domain and Deployment
Example
Copyright © 201312
CBDDS Tools Allow Domain
Customization (1)
Publish Subscribe Attachment Transfer (PSAT)
connector
• High performance, general purpose & location
independent pub-sub transport of wideband data
with DDS signaling
Signal Processing Data Model (SPDM) connector
• PSAT extension to support transport of OMG
VSIPL++ or VSIPL (Vector, Signal and Image
Processing Library) blocks and views for signal and
image processing applications
Copyright © 201313
CBDDS Tools Allow Domain
Customization (2)
Application Instrumentation (AI) connector
• CBDDS PSM simplification of the DDS PSM,
providing a very easy to use encapsulation of in-
development OMG AI standard for binary data
instrumentation
Discovery connector
• Directory services access to support dynamic, run-
time registration, discovery/lookup and binding of
component service endpoints and topic data
Copyright © 201314
Example Model with Domain
Specific Connectors
Copyright © 201315
Service (Facet)
Client (Receptacle)
Sync or Async (AMI4CCM)
Basic Port Types Extended Port Types
DDS_Write, DDS_Update
DDS_Listen, DDS_Read,
DDS_StateListen, DDS_Get
PSAT_Write
PSAT_Listen
SPDM PSAT_Base::PSAT_Write
SPDM PSAT_Base::PSAT_Listen Discover (Data or Services)
AI_Save
NGC Teton Project Status (1)
SNA Platform used on 14 programs and up to 20
IRAD efforts
• Some efforts are large and complex - 100's of
components, deep assembly trees, many nodes
Emerging themes common include…
• Significant productivity gains during design, reduced
I&T efforts (shift of focus from I&T to design)
• Complexity & SLOC reductions (up to 56%)
• Very high stability in executing systems
• Shortened overall development times (= lower
development costs)
• Excellent and extremely quick application framework
portability between disparate target hardware
architectures Copyright © 201316
NGC Teton Project Status (2)
CBDDS is helping to advance and improve MDA for
software engineering in general
• CBDDS ADL proving to be an excellent means of
capturing, viewing and sharing high level software
architectures between disparate teams
• Early efforts to extend and integrate with NGC
systems engineering SysML community
• CDP deployment plans are powerful, yet complex,
and definitely require a tool to generate them
Side benefit: forces teams to keep model up to date
– vs. gen documentation, abandon it & start coding
Copyright © 201317
IDL to C++11
Copyright © 201318
Why a new language mapping?
IDL to C++ language mapping is impossible to
change because
• Multiple implementations are on the market (open
source and commercial)
• A huge amount of applications have been developed
An updated IDL to C++ language mapping would
force vendors and users to update their products
The standardization of a new C++ revision in 2011
(ISO/IEC 14882:2011, called C++11) gives the
opportunity to define a new language mapping
• C++11 features are not backward compatible with
C++03 or C++99
• A new C++11 mapping leaves the existing mapping
intact
Copyrig
ht ©19
Goals
Simplify mapping for C++
Make use of the new C++11 features to
• Reduce amount of application code
• Reduce amount of possible errors made
• Gain runtime performance
• Speedup development and testing
• Faster time to market
• Reduced costs
• Reduced training time
Copyrig
ht ©20
Basic types
Copyrig
ht ©21
IDL C++11 Default value
short int16_t 0
long int32_t 0
long long int64_t 0
unsigned short uint16_t 0
unsigned long uint32_t 0
unsigned long long uint64_t 0
float float 0.0
double double 0.0
long double long double 0.0
char char 0
wchar wchar_t 0
boolean bool false
octet uint8_t 0
Some basic concepts
Strings map to std::string
Enums map to strongly types C++11 enums
IDL interfaces map to so called reference type
• References are fully reference counted, no manual
reference counting anymore
Struct/union map to C++ classes with a set of
accessors
Set of IDL traits available for template meta
programming
No name concatenation but a set of traits that have
to be used
Copyrig
ht ©22
Middleware agnostic
IDL to C++11 is middleware agnostic
Supports DDS, CORBA, and CCM
Greatly simplifies development of DDS, CORBA, and
CCM based applications
23
Copyrig
ht ©
Want to know more?
Check the ORBzone.org, the community site for
CORBA, CCM, and related technologies
Check the Remedy IT provided examples at
http://osportal.remedy.nl
Tutorial and IDL to C++/C++11 comparison available
at http://www.slideshare.net/RemedyIT
Contact us, see http://www.theaceorb.nl or
http://www.remedy.nl
24
Copyrig
ht ©
Questions?
Copyright © 201325

More Related Content

What's hot

MODELS2013_MDHPCL_Presentation
MODELS2013_MDHPCL_PresentationMODELS2013_MDHPCL_Presentation
MODELS2013_MDHPCL_Presentation
Dionny Santiago
 
James Bowman's Resume' (personal)
James Bowman's Resume' (personal)James Bowman's Resume' (personal)
James Bowman's Resume' (personal)
James Bowman III
 
ManojKumar_Resume_Exp_Telecom_4.5_Yrs
ManojKumar_Resume_Exp_Telecom_4.5_YrsManojKumar_Resume_Exp_Telecom_4.5_Yrs
ManojKumar_Resume_Exp_Telecom_4.5_Yrs
manoj sagar
 
Maniteja_Professional_Resume
Maniteja_Professional_ResumeManiteja_Professional_Resume
Maniteja_Professional_Resume
Vaddi Maniteja
 

What's hot (20)

MODELS2013_MDHPCL_Presentation
MODELS2013_MDHPCL_PresentationMODELS2013_MDHPCL_Presentation
MODELS2013_MDHPCL_Presentation
 
Distributed Application Development (Introduction)
Distributed Application Development (Introduction)Distributed Application Development (Introduction)
Distributed Application Development (Introduction)
 
Diwakar Nag
Diwakar NagDiwakar Nag
Diwakar Nag
 
Introduction to c
Introduction to cIntroduction to c
Introduction to c
 
Basic C# and .net
Basic C# and .netBasic C# and .net
Basic C# and .net
 
Resume July 2015
Resume July 2015Resume July 2015
Resume July 2015
 
Evolution from LwCCM to UCM
Evolution from LwCCM to UCMEvolution from LwCCM to UCM
Evolution from LwCCM to UCM
 
Fyp presentation-final
Fyp presentation-finalFyp presentation-final
Fyp presentation-final
 
James Bowman's Resume' (personal)
James Bowman's Resume' (personal)James Bowman's Resume' (personal)
James Bowman's Resume' (personal)
 
Resume_new
Resume_newResume_new
Resume_new
 
ManojKumar_Resume_Exp_Telecom_4.5_Yrs
ManojKumar_Resume_Exp_Telecom_4.5_YrsManojKumar_Resume_Exp_Telecom_4.5_Yrs
ManojKumar_Resume_Exp_Telecom_4.5_Yrs
 
Class 2013 presentation
Class 2013 presentationClass 2013 presentation
Class 2013 presentation
 
resume
resumeresume
resume
 
Build tools
Build toolsBuild tools
Build tools
 
ctchou-resume
ctchou-resumectchou-resume
ctchou-resume
 
Introduction of A Lightweight Stage-Programming Framework
Introduction of A Lightweight Stage-Programming FrameworkIntroduction of A Lightweight Stage-Programming Framework
Introduction of A Lightweight Stage-Programming Framework
 
Project SOLOS
Project SOLOSProject SOLOS
Project SOLOS
 
kapil_2_3years
kapil_2_3yearskapil_2_3years
kapil_2_3years
 
Maniteja_Professional_Resume
Maniteja_Professional_ResumeManiteja_Professional_Resume
Maniteja_Professional_Resume
 
ctchou-resume
ctchou-resumectchou-resume
ctchou-resume
 

Similar to Model Driven, Component Based Development for CBDDS and IDL to C++11

Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
ghodgkinson
 
Swarn Singh_CV_SSE
Swarn Singh_CV_SSESwarn Singh_CV_SSE
Swarn Singh_CV_SSE
Swarn Singh
 

Similar to Model Driven, Component Based Development for CBDDS and IDL to C++11 (20)

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...
 
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
 
AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...
 
AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...AXCIOMA, the internals, the component framework for distributed, real-time, a...
AXCIOMA, the internals, the component framework for distributed, real-time, a...
 
System Design on Zynq using SDSoC
System Design on Zynq using SDSoCSystem Design on Zynq using SDSoC
System Design on Zynq using SDSoC
 
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
 
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
 
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
 
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
 
Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
ECAD-MCAD Presentation 2011
ECAD-MCAD Presentation 2011ECAD-MCAD Presentation 2011
ECAD-MCAD Presentation 2011
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsAXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systems
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsAXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systems
 
Component Technologies for Fractionated Satellites
Component Technologies for Fractionated SatellitesComponent Technologies for Fractionated Satellites
Component Technologies for Fractionated Satellites
 
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
 
KIRANKUMAR_MV
KIRANKUMAR_MVKIRANKUMAR_MV
KIRANKUMAR_MV
 
Swarn Singh_CV_SSE
Swarn Singh_CV_SSESwarn Singh_CV_SSE
Swarn Singh_CV_SSE
 
SYCL 2020 Specification
SYCL 2020 SpecificationSYCL 2020 Specification
SYCL 2020 Specification
 

More from Remedy 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 Connectors
Remedy IT
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters Most
Remedy IT
 

More from Remedy IT (18)

Remedy IT Company presentation
Remedy IT Company presentationRemedy IT Company presentation
Remedy IT Company presentation
 
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
 
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
 
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
 
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
 
Remedy IT Flyer_introduction
Remedy IT Flyer_introductionRemedy IT Flyer_introduction
Remedy IT Flyer_introduction
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Model Driven, Component Based Development for CBDDS and IDL to C++11

  • 1. Model Driven, Component Based Development for CBDDS IDL to C++11 Johnny Willemsen jwillemsen@remedy.nl This presentation is based on material from Northrop Grumman
  • 2. Component Based DDS (CBDDS) CBDDS is an integrated suite using seven OMG open standards • LwCCM, DDS, DDS4CCM, AMI4CCM, CORBA, IDL, and D&C Supports architecture development at a higher level of abstraction Encapsulation of event queue/dispatch, threading model, boilerplate code, application lifecycle management, extensions and connection management in a “container” CCM Generic Interaction Support (GIS) encapsulates DDS or any other middleware functionality inside a “connector” with APIs defined by local IDL interfaces Copyright © 20132
  • 3. Advantages CBDDS DDS4CCM APIs for DDS access are middleware agnostic and vendor independent CBDDS extends DDS to fill in the holes needed to define a complex, full featured DRE architecture with open standard vs. custom solutions Copyright © 20133
  • 4. Why CBDDS NGC adopted CBDDS to meet a larger set of goals and requirements • CBDDS addresses all five architectural tenets DDS by itself only fully addresses two of NGC five guiding tenets (OA & EDA) • Future OMG RPC4DDS spec anticipated to add SOA support • New MDA tooling is much more useful for CBDDS, but can help DDS-only users as well High performance not compromised to improve modularity, reuse and portability, as well as functionality, scalability and time/cost of development CBDDS adds structure, which is the very definition of architecture Copyright © 20134 • 5 Guiding Architectural Tenets: • OA Open Architecture (MOSA) • MDA Model Driven Architecture • CBA Component Based Architecture • SOA Service Oriented Architecture • EDA Event Driven Architecture (DOA)
  • 5. MDA Tooling Multiple MDA Tools have been funded Component Based Architecture (CBA) captured as a PIM Maps to a CBDDS IDL and D&C PSM Key auto-generated OA artifacts drive the overall process (IDL 3.5, D&C 4.0) Copyright © 20135
  • 6. CBD Software Lifecycle Copyright © 20136 IDL CDP CDD • Zeligsoft CX • Artisan Studio • Eclipse • Zeligsoft CX • Artisan Studio Design Tool IDE Tool Deployment Planning Tool System Software Design & Component Definition Component Interface Design Component Packaging & Assembly Component Deployment, Integration & Reuse Component Software Design Component Implementation 1 2 5 643 Architecture &System Design System Integration, Test& Verification SNA CBD Software Lifecycle Process Key Artifacts CPP, H SO • IDE: Integrated Development Environment • CBD: Component Based Development • SNA: Scalable Node Architecture • IDL: Interface Definition Language (OMG) • CDP: Component Deployment Plan • CDD: Component Domain Descriptor Agile process iterations early & often, incrementally building up from an early executable “skeleton” architecture
  • 7. OMG IDL Elements IDL offers vendor, programming language, and middleware independent format • OMG standards mapping IDL to C++, C++11, Java, Python, C, Ruby, etc. A given middleware standard implementation provides an IDL to language compiler • Model generated IDL -> IDL compiler generated source = large percentage of design code base • NGC’s SNA SDK currently uses tao_idl and rtiddsgen IDL compilers (others in future) Copyright © 20137
  • 8. MDA tool modular IDL 3.5 convention Generate 5 fundamental file types for components, connectors, messages, interfaces and basic type definitions Taxonomy of 5 modular file types support component/port reuse and modularity (vs. all IDL in one project IDL file) IDL import & export feature of all CBDDS MDA tools enables basic model interchange using IDL Modular structure leveraged to auto-generate makefiles for entire component-based projects Run CCM IDL compiler on all types, only run DDS IDL compiler on *_defn.idl & *_msg.idl files Copyright © 20138
  • 9. Component Assembly Example C&C style Component Assembly diagrams offer a “software schematic” view of your run-time structural architecture • Shows system run-time composition using standard “software parts” • Similar to hardware schematics connecting standard hardware parts • Connections drawn in an MDA modeling tool are automatically established during the deployment launch phase by the D&C deployment framework – big time/code savings to developers Copyright © 20139
  • 10. Component Assembly Example Copyright © 201310 Copyright © 2013 Service (Facet) Client (Receptacle) Sync or Async (AMI4CCM) Basic Port Types Extended Port Types DDS_Write, DDS_Update DDS_Listen, DDS_Read, DDS_StateListen, DDS_Get PSAT_Write PSAT_Listen SPDM PSAT_Base::PSAT_Write SPDM PSAT_Base::PSAT_Listen Discover (Data or Services) AI_Save
  • 11. Domain and Deployment Example Allocation style Domain & Deployment diagrams capture QoS, config & aspects of system resource utilization for resource allocation and concurrency A Deployment “diagram” maps: • Each component instance to a component server process (+ container) • Processes to compute nodes (OS instances) defined for a Domain Copyright © 201311
  • 13. CBDDS Tools Allow Domain Customization (1) Publish Subscribe Attachment Transfer (PSAT) connector • High performance, general purpose & location independent pub-sub transport of wideband data with DDS signaling Signal Processing Data Model (SPDM) connector • PSAT extension to support transport of OMG VSIPL++ or VSIPL (Vector, Signal and Image Processing Library) blocks and views for signal and image processing applications Copyright © 201313
  • 14. CBDDS Tools Allow Domain Customization (2) Application Instrumentation (AI) connector • CBDDS PSM simplification of the DDS PSM, providing a very easy to use encapsulation of in- development OMG AI standard for binary data instrumentation Discovery connector • Directory services access to support dynamic, run- time registration, discovery/lookup and binding of component service endpoints and topic data Copyright © 201314
  • 15. Example Model with Domain Specific Connectors Copyright © 201315 Service (Facet) Client (Receptacle) Sync or Async (AMI4CCM) Basic Port Types Extended Port Types DDS_Write, DDS_Update DDS_Listen, DDS_Read, DDS_StateListen, DDS_Get PSAT_Write PSAT_Listen SPDM PSAT_Base::PSAT_Write SPDM PSAT_Base::PSAT_Listen Discover (Data or Services) AI_Save
  • 16. NGC Teton Project Status (1) SNA Platform used on 14 programs and up to 20 IRAD efforts • Some efforts are large and complex - 100's of components, deep assembly trees, many nodes Emerging themes common include… • Significant productivity gains during design, reduced I&T efforts (shift of focus from I&T to design) • Complexity & SLOC reductions (up to 56%) • Very high stability in executing systems • Shortened overall development times (= lower development costs) • Excellent and extremely quick application framework portability between disparate target hardware architectures Copyright © 201316
  • 17. NGC Teton Project Status (2) CBDDS is helping to advance and improve MDA for software engineering in general • CBDDS ADL proving to be an excellent means of capturing, viewing and sharing high level software architectures between disparate teams • Early efforts to extend and integrate with NGC systems engineering SysML community • CDP deployment plans are powerful, yet complex, and definitely require a tool to generate them Side benefit: forces teams to keep model up to date – vs. gen documentation, abandon it & start coding Copyright © 201317
  • 19. Why a new language mapping? IDL to C++ language mapping is impossible to change because • Multiple implementations are on the market (open source and commercial) • A huge amount of applications have been developed An updated IDL to C++ language mapping would force vendors and users to update their products The standardization of a new C++ revision in 2011 (ISO/IEC 14882:2011, called C++11) gives the opportunity to define a new language mapping • C++11 features are not backward compatible with C++03 or C++99 • A new C++11 mapping leaves the existing mapping intact Copyrig ht ©19
  • 20. Goals Simplify mapping for C++ Make use of the new C++11 features to • Reduce amount of application code • Reduce amount of possible errors made • Gain runtime performance • Speedup development and testing • Faster time to market • Reduced costs • Reduced training time Copyrig ht ©20
  • 21. Basic types Copyrig ht ©21 IDL C++11 Default value short int16_t 0 long int32_t 0 long long int64_t 0 unsigned short uint16_t 0 unsigned long uint32_t 0 unsigned long long uint64_t 0 float float 0.0 double double 0.0 long double long double 0.0 char char 0 wchar wchar_t 0 boolean bool false octet uint8_t 0
  • 22. Some basic concepts Strings map to std::string Enums map to strongly types C++11 enums IDL interfaces map to so called reference type • References are fully reference counted, no manual reference counting anymore Struct/union map to C++ classes with a set of accessors Set of IDL traits available for template meta programming No name concatenation but a set of traits that have to be used Copyrig ht ©22
  • 23. Middleware agnostic IDL to C++11 is middleware agnostic Supports DDS, CORBA, and CCM Greatly simplifies development of DDS, CORBA, and CCM based applications 23 Copyrig ht ©
  • 24. Want to know more? Check the ORBzone.org, the community site for CORBA, CCM, and related technologies Check the Remedy IT provided examples at http://osportal.remedy.nl Tutorial and IDL to C++/C++11 comparison available at http://www.slideshare.net/RemedyIT Contact us, see http://www.theaceorb.nl or http://www.remedy.nl 24 Copyrig ht ©