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: [sca-assembly] NEW ISSUE: Default URI construction rules aren't consistentwith compatible service evolution


Target: SCA Assembly Model Specification, section 7.2.1 (Constructing 
Hierarchical URIs)

Description:

For wiring and createSelfReference(), it is always possible to
identify services by the fully qualified component/service name.
In addition, if there is only one service on the component, it is
possible to specify the component name alone as a shorthand.

So far so good.  Now consider the case of how URIs are
constructed for these services.  The definition in the spec is
inconsistent with how this works for wiring and
createSelfReference() as described above.  The difference
is that you either get a fully qualified component/service name
or you get a shorthand component name only.

The either/or/only part of the last sentence has very undesirable
consequences in the following scenario:
 1. A component has a single service A exposed via the shorthand URI.
 2. Other bindings or non-SCA clients refer to it using the shorthand URI.
 3. Another service B is added to the component.  Now both A and B
    are exposed via fully qualified URIs.
 4. Everyone who was referring to A by the shorthand URI is now broken.

It's just as bad in the reverse scenario:
 1. A component has a two services A and B exposed via fully qualified 
URIs.
 2. Other bindings or non-SCA clients refer to A using a fully qualified 
URI.
 3. Service B is removed from the component.  Now A is only exposed via
    a shorthand URI.
 4. Everyone who was referring to A by the fully qualified URI is now 
broken.

The problem can be solved by always exposing services by the fully 
qualified
URI.  In the case where there's a single service on a component, it would
be possible to also provide an "unsafe" alias shorthand URI that cannot be
relied on for forward compatibility, but I can't see that it's worth 
adding
this complexity for so little benefit.

Proposal:

Delete lines 2443 through 2447 inclusive.  The deleted text is:

Where a component has only a single service, the default value of the 
Service Binding URI is null,
so that the effective URI is:
Base Domain URI for a scheme / Component URI 
This shortened form of the URI is consistent with the shortened form for 
the wire target URI used
when wiring references to services

    Simon

Simon C. Nash, IBM Distinguished Engineer
Member of the IBM Academy of Technology
Tel. +44-1962-815156  Fax +44-1962-818999





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








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