CR 33 compatibility

Here is the compatibility analysis for the two options in our proposal. 
Thansk to Anish who did almost all the work.

Paco

======================================
Option 1 (3 new extensions):

1) Older client, older service
No change.

2) Older client, newer service

Newer service will have WSDL extensions that would not be understood by 
the older client.
a) wsdl:required='false' on the extensions: Older client will act as if 
no WSDL markers are present. I.e., older client will not be aware that 
the service supports WS-Addressing.
b) wsdl:requried='true' on the extensions: Older clients will barf and 
not process the WSDL.

3) Newer client, older service
Newer client will not understand the older WSDL extensions present on 
the service.
a) wsdl:required='false' on the extensions: Newer client will act as if 
no WSDL markers are present. I.e., newer client will not be aware that 
the service supports WS-Addressing.
b) wsdl:requried='true' on the extensions: Newer client will barf and 
not process the WSDL.

4) Newer client, Newer service
Client will understand and correctly process the WSDL describing the 
service.



Option 2 (2 new extension + reuse wsaw:UsingAddressing):

There are two possibilities here: UsingAddressing is in the old NS or in 
a new NS. If it is in a new NS, wrt compatibility the situation is no 
different than option 1. If it is in the old NS, then:

1) Older client, older service
No change.

2) Older client, newer service

Newer service may have WSDL extensions that would not be understood by 
the older client.
a) wsdl:required='false' on the new extensions: Older client will act as 
if no WSDL markers are present. I.e., older client will not be aware 
that the service supports WS-Addressing.
b) wsdl:requried='true' on the new extensions: Older clients will barf 
and not process the WSDL.

When the wsaw:UsingAddressing is present the older client will 
understand the extension and behave as expected, which implies no 
statement regarding the requirement or prohibition of using the anonymous 
URI.
Client will only find if there is a problem at runtime, after receiving a 
fault.

3) Newer client, older service
Newer client will not understand the older WSDL extensions 
(wsaw:Anonymous) present on the service. Since wsdl:required is not 
allowd on wsaw:Anonymous, the newer client will never barf. Newer client 
will understand and process the wsaw:UsingAddressing extension 
correctly, but will ignore additional information present in 
wsaw:Anonymous.
Errors may show up at runtime. 

4) Newer client, Newer service
Client will understand and correctly process the WSDL describing the 
service.

Received on Wednesday, 25 October 2006 19:04:55 UTC