Model Driven, Component BasedDevelopment for CBDDSIDL to C++11Johnny Willemsenjwillemsen@remedy.nlThis presentation is bas...
Component Based DDS(CBDDS)CBDDS is an integrated suite using seven OMGopen standards• LwCCM, DDS, DDS4CCM, AMI4CCM, CORBA,...
Advantages CBDDSDDS4CCM APIs for DDS access are middlewareagnostic and vendor independentCBDDS extends DDS to fill in the ...
Why CBDDSNGC adopted CBDDS to meet a larger set of goalsand requirements• CBDDS addresses all five architectural tenetsDDS...
MDA ToolingMultiple MDA Tools have been fundedComponent Based Architecture (CBA) capturedas a PIMMaps to a CBDDS IDL and D...
CBD Software LifecycleCopyright © 20136IDL CDP CDD• Zeligsoft CX• Artisan Studio • Eclipse• Zeligsoft CX• Artisan StudioDe...
OMG IDL ElementsIDL offers vendor, programming language, andmiddleware independent format• OMG standards mapping IDL to C+...
MDA tool modular IDL 3.5conventionGenerate 5 fundamental file types for components,connectors, messages, interfaces and ba...
Component AssemblyExampleC&C style Component Assembly diagrams offer a“software schematic” view of your run-time structura...
Component AssemblyExampleCopyright © 201310 Copyright © 2013Service (Facet)Client (Receptacle)Sync or Async (AMI4CCM)Basic...
Domain and DeploymentExampleAllocation style Domain & Deployment diagrams captureQoS, config & aspects of system resource ...
Domain and DeploymentExampleCopyright © 201312
CBDDS Tools Allow DomainCustomization (1)Publish Subscribe Attachment Transfer (PSAT)connector• High performance, general ...
CBDDS Tools Allow DomainCustomization (2)Application Instrumentation (AI) connector• CBDDS PSM simplification of the DDS P...
Example Model with DomainSpecific ConnectorsCopyright © 201315Service (Facet)Client (Receptacle)Sync or Async (AMI4CCM)Bas...
NGC Teton Project Status (1)SNA Platform used on 14 programs and up to 20IRAD efforts• Some efforts are large and complex ...
NGC Teton Project Status (2)CBDDS is helping to advance and improve MDA forsoftware engineering in general• CBDDS ADL prov...
IDL to C++11Copyright © 201318
Why a new language mapping?IDL to C++ language mapping is impossible tochange because• Multiple implementations are on the...
GoalsSimplify mapping for C++Make use of the new C++11 features to• Reduce amount of application code• Reduce amount of po...
Basic typesCopyright ©21IDL C++11 Default valueshort int16_t 0long int32_t 0long long int64_t 0unsigned short uint16_t 0un...
Some basic conceptsStrings map to std::stringEnums map to strongly types C++11 enumsIDL interfaces map to so called refere...
Middleware agnosticIDL to C++11 is middleware agnosticSupports DDS, CORBA, and CCMGreatly simplifies development of DDS, C...
Want to know more?Check the ORBzone.org, the community site forCORBA, CCM, and related technologiesCheck the Remedy IT pro...
Questions?Copyright © 201325
Upcoming SlideShare
Loading in …5
×

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

1,384 views

Published on

This presentation will show the advantages of a CBDDS solution compared to a plain DDS based architecture. It also highlights some of the concepts of the new IDL to C++11 Language Mappping

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,384
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Model Driven, Component BasedDevelopment for CBDDSIDL to C++11Johnny Willemsenjwillemsen@remedy.nlThis presentation is based on material fromNorthrop Grumman
  2. 2. Component Based DDS(CBDDS)CBDDS is an integrated suite using seven OMGopen standards• LwCCM, DDS, DDS4CCM, AMI4CCM, CORBA,IDL, and D&CSupports architecture development at a higher levelof abstractionEncapsulation of event queue/dispatch, threadingmodel, boilerplate code, application lifecyclemanagement, extensions and connectionmanagement in a “container”CCM Generic Interaction Support (GIS) encapsulatesDDS or any other middleware functionality inside a“connector” with APIs defined by local IDL interfacesCopyright © 20132
  3. 3. Advantages CBDDSDDS4CCM APIs for DDS access are middlewareagnostic and vendor independentCBDDS extends DDS to fill in the holes needed todefine a complex, full featured DRE architecture withopen standard vs. custom solutionsCopyright © 20133
  4. 4. Why CBDDSNGC adopted CBDDS to meet a larger set of goalsand requirements• CBDDS addresses all five architectural tenetsDDS by itself only fully addresses two of NGCfive guiding tenets (OA & EDA)• Future OMG RPC4DDS spec anticipated to addSOA support• New MDA tooling is much more useful for CBDDS,but can help DDS-only users as wellHigh performance not compromised to improvemodularity, reuse and portability, as well asfunctionality, scalability and time/cost of developmentCBDDS adds structure, which is the very definition ofarchitecture 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. 5. MDA ToolingMultiple MDA Tools have been fundedComponent Based Architecture (CBA) capturedas a PIMMaps to a CBDDS IDL and D&C PSMKey auto-generated OA artifacts drive the overallprocess (IDL 3.5, D&C 4.0)Copyright © 20135
  6. 6. CBD Software LifecycleCopyright © 20136IDL CDP CDD• Zeligsoft CX• Artisan Studio • Eclipse• Zeligsoft CX• Artisan StudioDesign Tool IDE ToolDeploymentPlanning ToolSystem SoftwareDesign & ComponentDefinitionComponent InterfaceDesignComponentPackaging &AssemblyComponentDeployment,Integration & ReuseComponent SoftwareDesignComponentImplementation1 2 5 643Architecture&SystemDesignSystemIntegration,Test&VerificationSNA CBD Software Lifecycle ProcessKeyArtifactsCPP, 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 DescriptorAgile process iterations early & often, incrementally building up from an early executable “skeleton” architecture
  7. 7. OMG IDL ElementsIDL offers vendor, programming language, andmiddleware independent format• OMG standards mapping IDL to C++, C++11, Java,Python, C, Ruby, etc.A given middleware standard implementationprovides an IDL to language compiler• Model generated IDL -> IDL compiler generatedsource = large percentage of design code base• NGC’s SNA SDK currently uses tao_idl andrtiddsgen IDL compilers (others in future)Copyright © 20137
  8. 8. MDA tool modular IDL 3.5conventionGenerate 5 fundamental file types for components,connectors, messages, interfaces and basic typedefinitionsTaxonomy of 5 modular file types supportcomponent/port reuse and modularity (vs. all IDL inone project IDL file)IDL import & export feature of all CBDDS MDA toolsenables basic model interchange using IDLModular structure leveraged to auto-generatemakefiles for entire component-based projectsRun CCM IDL compiler on all types, only run DDSIDL compiler on *_defn.idl & *_msg.idl filesCopyright © 20138
  9. 9. Component AssemblyExampleC&C style Component Assembly diagrams offer a“software schematic” view of your run-time structuralarchitecture• Shows system run-time composition using standard“software parts”• Similar to hardware schematics connecting standardhardware parts• Connections drawn in an MDA modeling tool areautomatically established during the deploymentlaunch phase by the D&C deployment framework –big time/code savings to developersCopyright © 20139
  10. 10. Component AssemblyExampleCopyright © 201310 Copyright © 2013Service (Facet)Client (Receptacle)Sync or Async (AMI4CCM)Basic Port Types Extended Port TypesDDS_Write, DDS_UpdateDDS_Listen, DDS_Read,DDS_StateListen, DDS_GetPSAT_WritePSAT_ListenSPDM PSAT_Base::PSAT_WriteSPDM PSAT_Base::PSAT_Listen Discover (Data or Services)AI_Save
  11. 11. Domain and DeploymentExampleAllocation style Domain & Deployment diagrams captureQoS, config & aspects of system resource utilization forresource allocation and concurrencyA Deployment “diagram” maps:• Each component instance to a component server process(+ container)• Processes to compute nodes (OS instances) definedfor a DomainCopyright © 201311
  12. 12. Domain and DeploymentExampleCopyright © 201312
  13. 13. CBDDS Tools Allow DomainCustomization (1)Publish Subscribe Attachment Transfer (PSAT)connector• High performance, general purpose & locationindependent pub-sub transport of wideband datawith DDS signalingSignal Processing Data Model (SPDM) connector• PSAT extension to support transport of OMGVSIPL++ or VSIPL (Vector, Signal and ImageProcessing Library) blocks and views for signal andimage processing applicationsCopyright © 201313
  14. 14. CBDDS Tools Allow DomainCustomization (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 datainstrumentationDiscovery connector• Directory services access to support dynamic, run-time registration, discovery/lookup and binding ofcomponent service endpoints and topic dataCopyright © 201314
  15. 15. Example Model with DomainSpecific ConnectorsCopyright © 201315Service (Facet)Client (Receptacle)Sync or Async (AMI4CCM)Basic Port Types Extended Port TypesDDS_Write, DDS_UpdateDDS_Listen, DDS_Read,DDS_StateListen, DDS_GetPSAT_WritePSAT_ListenSPDM PSAT_Base::PSAT_WriteSPDM PSAT_Base::PSAT_Listen Discover (Data or Services)AI_Save
  16. 16. NGC Teton Project Status (1)SNA Platform used on 14 programs and up to 20IRAD efforts• Some efforts are large and complex - 100s ofcomponents, deep assembly trees, many nodesEmerging themes common include…• Significant productivity gains during design, reducedI&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 (= lowerdevelopment costs)• Excellent and extremely quick application frameworkportability between disparate target hardwarearchitectures Copyright © 201316
  17. 17. NGC Teton Project Status (2)CBDDS is helping to advance and improve MDA forsoftware engineering in general• CBDDS ADL proving to be an excellent means ofcapturing, viewing and sharing high level softwarearchitectures between disparate teams• Early efforts to extend and integrate with NGCsystems engineering SysML community• CDP deployment plans are powerful, yet complex,and definitely require a tool to generate themSide benefit: forces teams to keep model up to date– vs. gen documentation, abandon it & start codingCopyright © 201317
  18. 18. IDL to C++11Copyright © 201318
  19. 19. Why a new language mapping?IDL to C++ language mapping is impossible tochange because• Multiple implementations are on the market (opensource and commercial)• A huge amount of applications have been developedAn updated IDL to C++ language mapping wouldforce vendors and users to update their productsThe standardization of a new C++ revision in 2011(ISO/IEC 14882:2011, called C++11) gives theopportunity to define a new language mapping• C++11 features are not backward compatible withC++03 or C++99• A new C++11 mapping leaves the existing mappingintactCopyright ©19
  20. 20. GoalsSimplify 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 timeCopyright ©20
  21. 21. Basic typesCopyright ©21IDL C++11 Default valueshort int16_t 0long int32_t 0long long int64_t 0unsigned short uint16_t 0unsigned long uint32_t 0unsigned long long uint64_t 0float float 0.0double double 0.0long double long double 0.0char char 0wchar wchar_t 0boolean bool falseoctet uint8_t 0
  22. 22. Some basic conceptsStrings map to std::stringEnums map to strongly types C++11 enumsIDL interfaces map to so called reference type• References are fully reference counted, no manualreference counting anymoreStruct/union map to C++ classes with a set ofaccessorsSet of IDL traits available for template metaprogrammingNo name concatenation but a set of traits that haveto be usedCopyright ©22
  23. 23. Middleware agnosticIDL to C++11 is middleware agnosticSupports DDS, CORBA, and CCMGreatly simplifies development of DDS, CORBA, andCCM based applications23Copyright ©
  24. 24. Want to know more?Check the ORBzone.org, the community site forCORBA, CCM, and related technologiesCheck the Remedy IT provided examples athttp://osportal.remedy.nlTutorial and IDL to C++/C++11 comparison availableat http://www.slideshare.net/RemedyITContact us, see http://www.theaceorb.nl orhttp://www.remedy.nl24Copyright ©
  25. 25. Questions?Copyright © 201325

×