1 / 25

Top Ten Reasons Why The CCA Specification Is NOT Ready for 1.0 11 October, 2007

Gary Kumfert. Top Ten Reasons Why The CCA Specification Is NOT Ready for 1.0 11 October, 2007. Lawrence Livermore National Laboratory, P. O. Box 808, Livermore, CA 94551.

keola
Download Presentation

Top Ten Reasons Why The CCA Specification Is NOT Ready for 1.0 11 October, 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gary Kumfert Top Ten Reasons Why The CCA Specification Is NOT Ready for 1.0 11 October, 2007 Lawrence Livermore National Laboratory, P. O. Box 808, Livermore, CA 94551 This work performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344 UCRL-PRES-235389

  2. Motivation • Yes, this is a David Letterman-style “Top 10 List” • It is meant to be fun • But there are real issues that need to be addressed • Each item will... • have a 1-2 slide explanation • recommend actions • Expect many other issues to come out • all issues will be captured/tracked • on a wiki or Roundup or some combination

  3. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • Need to Implement CCA Review Board & Maturity Model

  4. 10. Need to Implement CCA Review Board & Maturity Model • Motion 53 on Quorum • Passed Unanimously on May 8, 2007 • Establishes a multi-stage specification maturity process • Institutes ad hoc task forces with charters, lifespan, documentation trail and named chair • Creates CCA Review Board (CCARB) to oversee quality of the specification and constitute & dissolve task forces • Motion 54 on Quorum now: • Approves CCARB nominated by the Chair • Posted & Seconded Oct 2, 2007 • Voting Ends Oct 23, 2007

  5. 10. Need to Implement CCA Review Board & Maturity Model Stages Of Specification Maturity • Completion Criteria: • Actually seat a CCARB • Have at least one task force go through entire process (Not EventServices, which is too far ahead) • Have CCARB & histogram of all task forces (past and present) accessible from cca-forum.org Tutorial & Outreach Final Initiatives & Internal Apps Candidate Draft Env & Toolkit Groups Idea TaskForce

  6. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  7. 9. SIDL Spec Should Not Be PreProcessed By Autoconf @GOVCCA_SIDL_START_0@ package gov { /** Common Component Architecture. ... */ package cca version @CCASPEC_VERSION@ { @GOVCCA_SIDL_START_3@ @GOVCCA_SIDL_START_4@ @GOVCCA_SIDL_START_5@ ... • Proposed Changes: • Abandon pre-Babel 1.0 compatibility • Abandon “variable version” specifications • Rename files to cca-v.v.v.sidl • Post all official versions prominently on cca-forum.org cca-spec-babel/cca.sidl.in

  8. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  9. 8. Exceptions Need Redesign enum CCAExceptionType { Unexpected=-1, Nonstandard=1, PortNotDefined=2, PortAlreadyDefined=3, ..., NetworkError=12 } interface CCAException extends sidl.BaseException { CCAExceptionType getCCAExceptionType(); } • Enumerated error codes are poor design • Classic C++-tran • Not extensible • CCAException clutters almost every method signature • Proposed Changes: • Develop a hierarchy of exception types that are meaningful • Incorporate Babel’s implicit sidl.RuntimeException • Let BabelRMI worry about the Network Errors cca-spec-babel/cca.sidl.in

  10. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • Need EventService, CommandLineService, & MPIService • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  11. 7. Need EventService, CommandLineService, & MPIService • These are all year 1 deliverables for TASCS • EventService – on track • Chair: Steve Parker • Blocked by CCARB formation • MPIService – stalled • Need a Chair • de facto implementations exist in frameworks • CommandLineService – stalled • Need a Chair • Needed by • MPIService (probably) • Python? possible see Babel Issue 530

  12. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes • Need EventService, CommandLineService, & MPIService • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  13. 6. Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService • We already have event-like services specific to • When port connections are made and broken • When parameters are set or read from ParameterPort • Proposed Changes • Simplify spec by making all events through EventService • Demonstrate EventService handling these system events in a framework before final approval

  14. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • Parameter Port Is Too Complex • Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes • Need EventService, CommandLineService, & MPIService • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  15. 5. Parameter Port Is Too Complex # Methods Per SIDL Interface • 158 methods Entire CCA 0.8.2 specification • 66 methods – core spec • 92 methods – ports • 63 methods are just for ParameterPort & friends. Core Spec

  16. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • Need Concept of a SubAssembly • Parameter Port Is Too Complex • Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes • Need EventService, CommandLineService, & MPIService • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  17. 4. Need Concept of a Subassembly. Including Multiplicities, Nests, & Interconnects • Provides a Recursive Composability Model for Components Port 1 Port A Port 2 Port B Component 1 Two views of the same thing Port 4 Port D Port 5 Component 2 Port 3 Port C Component 2 SubAssembly 1 Port 1 Port A Port 3 Port D SubAssembly 1

  18. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide • Need Concept of a SubAssembly • Parameter Port Is Too Complex • Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes • Need EventService, CommandLineService, & MPIService • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  19. 3. Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide 40 Line Introduction to ParameterPort Inconsistent naming conventions (e.g. from BuilderServices) createInstance( ... gov.TypeMap properties); setComponentProperties( ..., gov.TypeMap map); } A supposed C++ example in AbstractFramework’s doc-comment. • Doccomments appearas: • plain text • Javadoc • HTML. /** ... * ::gov::cca::Services_Interface *svc = 0; * svc = fwk->getServices( “instance0”, “AppDriver”, 0); */ Describing BasicParamterPort /** ... This version of the Port is so simple that mere mortal component writers could implement it... */

  20. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • CCA Conformance is Under-Defined • Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide • Need Concept of a SubAssembly • Parameter Port Is Too Complex • Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes • Need EventService, CommandLineService, & MPIService • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  21. 2. CCA Conformance is Under Defined • Finding right balance between “inclusive” and “technically meaningful.” • Distributed Frameworks • CCA-Lite • The Rogue Ruby Implementer • Proposed Changes: • Define some hierarchy of conformance • Commit to some consistent vernacular that audience will understand • “Compliance” to technical specification implies expectation of: • “interoperability” (e.g. IPv4, USB 1.1, 802.11g, etc.), or at least • “compatibility” (e.g. at source code level: MPI or POSIX). “CCA-Compliant” should not deviate from this norm.

  22. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • CCA Manual • CCA Conformance is Under-Defined • Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide • Need Concept of a SubAssembly • Parameter Port Is Too Complex • Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes • Need EventService, CommandLineService, & MPIService • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

  23. Completely revised for1.0 standards compliance 1st Edition Over a dozen copies in print THE COMMON COMPONENTARCHITECTURE IN A NUTSHELL The Official Guide Fission Ares and Crag Potts with A. Lotta Uddavolks O’SMILEY 1. CCA Manual

  24. So What Now? • Proposal • Gathering these 10, plus many others • CCARB should decide on Roundup, wiki, or both • More Info: • Understanding the CCA Specification through Decaf(in process of updating to CCA 0.8.2 & Babel 1.0)

  25. Top 10 Reasons: Why CCA Is Not Ready For 1.0 • CCA Manual • CCA Conformance is Under-Defined • Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide • Need Concept of a SubAssembly • Parameter Port Is Too Complex • Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes • Need EventService, CommandLineService, & MPIService • Exceptions Need Redesign • SIDL Spec Should Not Be Preprocessed by Autoconf • Need to Implement CCA Review Board & Maturity Model

More Related