OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: NEW ISSUE: multiplicity is too complex


TARGET: SCA Assembly spec CD03 rev2 [1]

DESCRIPTION:
The concept of reference multiplicity is too complex. It's hard to measure complexity as the degree of complexity is often directly proportional to the level of past experience, which is going to be different fro each person. In my experience, it is useful to measure complexity by counting the number of concepts that must be mastered inorder to to understand the thing or concept being studied. Therefore, the fewer concepts we have, the easier this will be to understand, and therefore the more useful it will be for developers and assemblers.

The concepts that need to be understood in the space of multiplicity are: reference, reference targets, multiplicity itself, promotion, componentType, wiredByImpl, autoWire, bindings, binding URI targets, wire targets, wire deployment (i.e. @replace on <wire/>). Did I miss any?

The following is the state of the current assembly spec (with the resolution of ASSEMBLY-136):

1) Composite references MUST specify @multiplicity, there is no default. This is a consummability concern.
2) The @nonOverrideable attribute has the worst name of all time. This is a consummability concern.
3) wiredByImpl is effectively multiplicity 0..0, but it has a different name and is therefore a different concept. Why?
4) It's possible to configure a reference with multiplicity 1..1 and yet not specify any targets, but requires the reference to be promoted. So the '1..' part of 1..1 doesn't mean 1, it means sometimes 1. Unless you're using autowire in which case 1 does mean 1 again.
5) In the context of multiplicity, there are three ways to specify reference targets (a) component/reference/@target, (b) composite/reference/@target and (c) binding/@uri. Three ways is always more complicated than one way.
6) multiplicity itself is composed of two concepts; the minimum and maximum number of reference targets that can be specified.
7) With @autowire, a 0..1 reference might get a target from autowire processing or from the component above in promotion.
8) ...others should feel free to append their favorite contradiction here as well and we can collect them into this issue.

I am as aware as anyone of how we got here and have been part of creating this mess along with the rest of you (you know who you are). Now's the time to clean this up.

PROPOSAL:
None at this time.


[1] http://www.oasis-open.org/committees/download.php/33563/sca-assembly-1.1-spec-cd03-Rev2.pdf

Dave Booz
STSM, BPM and SCA Architecture
Co-Chair OASIS SCA-Policy TC and SCA-J TC
"Distributed objects first, then world hunger"
Poughkeepsie, NY (845)-435-6093 or 8-295-6093
e-mail:booz@us.ibm.com



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]