Upload
shanna-eaton
View
226
Download
0
Embed Size (px)
Citation preview
Lawrence Livermore National Laboratory
Gary Kumfert
UCRL-PRES-235389
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
Top Ten Reasons Why The CCA Specification Is NOT Ready for 1.0
11 October, 2007
2UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
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
3UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
10. Need to Implement CCA Review Board & Maturity Model
4UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
10. Need to Implement CCA Review Board & Maturity Model
Motion 53 on Quorum • Passed Unanimously on May 8, 2007
1. Establishes a multi-stage specification maturity process
2. Institutes ad hoc task forces with charters, lifespan, documentation trail and named chair
3. 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
5UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Stages Of Specification Maturity
10. Need to Implement CCA Review Board & Maturity Model
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
Env & Toolkit Groups
Initiatives & Internal Apps
Tutorial & Outreach
TaskForce IdeaDraft
CandidateFinal
6UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
7UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
9. SIDL Spec Should Not Be PreProcessed By Autoconf
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
@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@
...
cca-spec-babel/cca.sidl.in
8UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
9UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
8. Exceptions Need Redesign
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
enum CCAExceptionType {
Unexpected=-1, Nonstandard=1, PortNotDefined=2,
PortAlreadyDefined=3, ..., NetworkError=12 }
interface CCAException extends sidl.BaseException {
CCAExceptionType getCCAExceptionType();
}cca-spec-babel/cca.sidl.in
10UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
7. Need EventService, CommandLineService, & MPIService
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
11UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
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
12UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
6. Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes
7. Need EventService, CommandLineService, & MPIService
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
13UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
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
14UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
5. Parameter Port Is Too Complex
6. Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes
7. Need EventService, CommandLineService, & MPIService
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
15UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
5. Parameter Port Is Too Complex
158 methods Entire CCA 0.8.2 specification• 66 methods – core spec• 92 methods – ports
63 methods are just for ParameterPort & friends.
01
111122
385
4112
12
171233
3523
11
0 10 20 30 40
PortCCAException
ServicesComponent
ComponentReleaseComponentID
TypeMismatchExceptionTypeMap
AbstractFrameworkConnectionID
ComponentClassDescriptionGoPort
ConnectionEventConnectionEventListenerConnectionEventService
BuilderServiceComponentRepository
ServiceProviderServiceRegistry
BasicParameterPortParameterPort
ParameterPortFactoryParameterGetListenerParameterSetListener
# Methods Per SIDL Interface
Core
Spec
16UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
4. Need Concept of a SubAssembly
5. Parameter Port Is Too Complex
6. Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes
7. Need EventService, CommandLineService, & MPIService
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
17UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
4. Need Concept of a Subassembly. Including Multiplicities, Nests, & Interconnects
Provides a Recursive Composability Model for Components
Component 2
Port 3 Port C
Component 1
Port 2 Port B
Port 1 Port A
Component 2
Port 5
Port 4 Port D
SubAssembly 1
SubAssembly 1
Port 3 Port D
Port 1 Port A
Two views of
the same thing
18UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
3. Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide
4. Need Concept of a SubAssembly
5. Parameter Port Is Too Complex
6. Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes
7. Need EventService, CommandLineService, & MPIService
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
19UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
3. Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide
/** ... This version of the Port is so simple that mere mortal component writers could implement it...
*/
Describing BasicParamterPort
/** ...
* ::gov::cca::Services_Interface *svc = 0;
* svc = fwk->getServices( “instance0”, “AppDriver”, 0);
*/
A supposed C++ example in AbstractFramework’s doc-comment.
40 Line Introduction to ParameterPort
Doccomments appearas: • plain text • Javadoc • HTML.
createInstance( ... gov.TypeMap properties);
setComponentProperties( ..., gov.TypeMap map); }
Inconsistent naming conventions (e.g. from BuilderServices)
20UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
2. CCA Conformance is Under-Defined
3. Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide
4. Need Concept of a SubAssembly
5. Parameter Port Is Too Complex
6. Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes
7. Need EventService, CommandLineService, & MPIService
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
21UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
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
•
2. CCA Conformance is Under Defined
“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.
22UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
1. CCA Manual
2. CCA Conformance is Under-Defined
3. Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide
4. Need Concept of a SubAssembly
5. Parameter Port Is Too Complex
6. Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes
7. Need EventService, CommandLineService, & MPIService
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model
23UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
1. CCA Manual
THE COMMON COMPONENT
ARCHITECTURE
Completely revised for1.0 standards compliance
IN A NUTSHELLThe Official Guide
O’SMILEY
1 st Edition
Over a dozen copies in print
Fission Ares and Crag Pottswith A. Lotta Uddavolks
24UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
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)
25UCRL-PRES-235389 Gary Kumfert, LLNL
Lawrence Livermore National Laboratory
Top 10 Reasons: Why CCA Is Not Ready For 1.0
1. CCA Manual
2. CCA Conformance is Under-Defined
3. Comments Are Long, Inconsistent, Out-of-Sync, Occasionally Wrong, & Sometimes Even Snide
4. Need Concept of a SubAssembly
5. Parameter Port Is Too Complex
6. Replace Parameter{Get,Set}Listener & ConnectionEventService With EventService When It Passes
7. Need EventService, CommandLineService, & MPIService
8. Exceptions Need Redesign
9. SIDL Spec Should Not Be Preprocessed by Autoconf
10. Need to Implement CCA Review Board & Maturity Model