← Prev in month ← Prev in thread

Re: [sca-assembly] ISSUE 6 - alternate proposal - Version 2 !

From
Mike Edwards <>
Date
2007-11-13T14:41:19+00:00
ID
Thread
Re: [sca-assembly] ISSUE 6 - alternate proposal - Version 2 !
Dave,

I've been pondering this some more and I think there
is a need to go

further than your proposal text.

The main issue here is to define what it means for
a reference to have one

or more target services configured, either through wiring or through 

promotion:

a) Wiring through promotion by a composite reference
element

b) Wiring through the use of value of @target on the enclosing reference

element

c) Identification of a target service through the @uri attribute on the

binding element

d) Identification of a target service through binding-specific attributes

and child elements, as defined in

the specification for the specific binding

e) autowire

....and that is the order of precedence....

In order to deal with all this, I think that we must
introduce a new

subsection into the specification, to follow line 330:

3.0.1 Specifying the Target Service(s) for a Reference

A reference may define one or more target services
which satisfy the

reference.  The target service(s) may be

defined in the following ways:

1) Through a value specified in the @target attribute
of the reference

element

2) Through a target URI specified in the @uri attribute
of a binding

element which is a child of the reference element

3) Through the setting of one or more values for binding-specific

attributes and/or child elements of a binding element

which is a child of the reference element

4) Through the specification of @autowire="true"
for the reference (or

through inheritance of that value from the component or composite 

containing the reference)

5) Through the promotion of a component reference
by a composite reference

of the composite containing the component (the target service is then 

identified by the configuration of the composite reference).

Some combinations of these different methods are not
allowed:

If @autowire="true" applies to the reference,
the autowire procedure is 

only used to find a target service if no target is
identified by any of the

other ways listed above.  It is not an error
if autowire="true" applies to

a reference and a target is also defined through some
other means.

If a reference has a value specified for one or more
target services in its

@target attribute, the child binding elements,

of that reference MUST NOT identify target services using the @uri

attribute or using binding specific attributes or elements.

If a binding element has a value specified for a target
service using its

@uri attribute, the binding element MUST NOT identify

target services using binding specific attributes or elements.

It is possible that a particular binding type MAY
require that the address

of a target service uses more than a simple URI.  In such

cases, the @uri attribute MUST NOT be used to identify the target service
-

instead, binding specific attributes and/or child

elements must be used.

Where the reference has a value specified in its @target
attribute, all the

binding types identified by the child binding elements

are available for use on each wire created implied by the @target

attribute.

3.0.1.1 Multiplicity and the Valid Number of Target
Services for a

Reference

For references with multiplicity 0..1 or 0..n, it
is valid for the

reference to have no target service defined.

For references with multiplicity 0..1 or 1..1, it
is an error for the

reference to have more than 1 target service defined.

For references with multiplicity 1..1 or 1..n, it
is an error for the

reference to have no target service defined.

For references with multiplicity 0..n or 1..n, it
is valid for the

reference to have 1 or more target services defined.

The assembler of a composite MUST ensure that references
are properly

configured according to these rules.

For the error cases identified above, an error MUST
be generated by the SCA

runtime before the reference is invoked

by the component implementation.

For the cases where it is valid for the reference
to have no target service

specified, the component implementation language

specification defines the programming model for interacting with an

untargetted reference.

Where a component reference is promoted by a composite
reference, the

promotion is treated from a multiplicity perspective

as providing 0 or more target services for the component reference,

depending upon the further configuration of the composite

reference.  These target services are in addition to any target services

identified on the component reference itself, subject to

the rules relating to multiplicity described in this section

----------------------------------------------------------------------

Replace lines 274 - 280 with the following:

"A reference may identify one or more target
services which satisfy the

reference.  This can be done in a

number of ways, which are fully described in section "3.0.1 Specifying
the

Target Service(s) for a Reference".

Replace lines 1424 - 1430 with the following: 

"A reference may identify one or more target
services which satisfy the

reference.  This can be done in a

number of ways, which are fully described in section "3.0.1 Specifying
the

Target Service(s) for a Reference".

Replace lines 2372 - 2383 with the following:

uri  - has the following semantic

The uri attribute can be omitted.

For the binding of a reference, the uri attribute
defines the

target URI of the reference.  This can be either the

componentName/serviceName for a wire to an endpoint
within the SCA

       domain, or the accessible address of some service

endpoint either inside or outside the SCA domain (where
the

       addressing scheme is defined by the type of the binding).

The circumstances under which the uri attribute can
be used are

       defined in section 3.0.1 Specifying the Target Service(s)
for a 

Reference

Yours,  Mike.

Strategist - Emerging Technologies, SCA & SDO.

Co Chair OASIS SCA Assembly TC.

IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.

Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431

Email:  

Unless stated otherwise above:

IBM United Kingdom Limited - Registered in England and Wales with number
741598. 

Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
← Prev in month ← Prev in thread