W3C home > Mailing lists > Public > www-ws-desc@w3.org > February 2004

RE: Version attribute for WSDL

From: Jonathan Marsh <jmarsh@microsoft.com>
Date: Wed, 25 Feb 2004 10:48:18 -0800
Message-ID: <DF1BAFBC28DF694A823C9A8400E71EA202B533DE@RED-MSG-30.redmond.corp.microsoft.com>
To: <www-ws-desc@w3.org>
David's point about not actually munging the namespace URI is important
- the actual namespace URI may not be under the control of the author of
the WSDL.  This is true even within the W3C - WGs can "suggest" that the
W3C webmaster allocate a particular namespace URI but the webmaster has
the ultimate say.  We don't want to introduce a spec that forces
namespace URIs to be constructed in a way that violates the conventions
a domain owner may have in effect.

 

________________________________

From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org] On
Behalf Of David Orchard
Sent: Monday, February 23, 2004 6:32 PM
To: Prasad Yendluri; www-ws-desc@w3.org
Subject: RE: Version attribute for WSDL

 

What I had suggested before was that given an existing namespace
(http://foo.com/myws/2), one could combine the ns and a version
attribute into a URI to do differentiation in the following ways:

 

- Using "/" - thus the version URIs could be http://foo.com/myws/2/1 and
http://foo.com/myws/2/1/1.  

- using ";" - they could be http://foo.com/myws/2;1 and
http://foo.com/myws/2;1/1

- using "#" - http://foo.com/myws/2#1 and http://foo.com/myws/2#1/1

- using query params as defined by the HTML spec -
http://foo.com/myws/2?version=2.1

 

In none of these cases would the URI be dereferencable, so there's no
worry about the issue that the frag-id isn't sent to the server.

 

I personally tend to like the "/" as it reinforces the hierachical
nature of the names.  I think we've had a lot of implied concern over
creating URIs by adding things in the path, but I'm don't see the
problem.   

 

Dave

	-----Original Message-----
	From: www-ws-desc-request@w3.org
[mailto:www-ws-desc-request@w3.org]On Behalf Of Prasad Yendluri
	Sent: Monday, February 23, 2004 5:34 PM
	To: www-ws-desc@w3.org
	Subject: Re: Version attribute for WSDL

	Hi William,
	
	I agree this is a potential way to approach this, assuming
client will look for special patterns in the namespace URI etc. I am not
convinced however, moving everything to a new namespace for minor change
is desirable. I see a namespace change to be a major one.
	
	Regards, Prasad
	
	------- Original Message -------- 

Subject: 

RE: Version attribute for WSDL

Date: 

Mon, 23 Feb 2004 11:39:12 -0800

From: 

Vambenepe, William N <vbp@hp.com> <mailto:vbp@hp.com> 

To: 

Prasad Yendluri <pyendluri@webmethods.com>
<mailto:pyendluri@webmethods.com> , <www-ws-desc@w3.org>
<mailto:www-ws-desc@w3.org> 

	 

	Not necessarily.

	 

	If the consumer is aware of the rules we set up for building the
"versioned" URI, it can examine the namespace URI and find out that this
URI is not the one it is expecting but is one that is compatible with
the one it is expecting.

	 

	For example, if the client has been built based on a WSDL in
namespace

	http://vambenepe.com/myWebService/version/2/1

	and it finds a service that implements a WSDL defined in
namespace

	http://vambenepe.com/myWebService/version/2/1/1

	then, if the client understands our normative rules for creating
versioned namespace URI and if these rules say that any WSDL construct
defined in a namespace ending with version/2/1/1 must be backward
compatible with the same constructs defined in the same namespace except
ending with version/2/1, then the client knows is can invoke this
service.

	 

	If the client is unaware of these rules, then yes, it can only
use services implementing WSDL descriptions in the exact same namespace.
This is graceful degradation.

	 

	The same semantic (about major/minor changes, forward/backward
compatibility, etc...) that you can express in a "version" attribute can
be expressed using rules on namespace URI. WSDL consumers that would
support the "version" attribute could just as easily support these rules
as applied to the namespace URI. And for those that don't want to be
bothered with this support for versioning, putting the info in the
namespace URI allows them to keep working the way they do today. While
with the version attribute you force people to either support it or take
the risk of nasty stuff happening.

	 

	William

		-----Original Message-----
		From: www-ws-desc-request@w3.org
[mailto:www-ws-desc-request@w3.org] On Behalf Of Prasad Yendluri
		Sent: Friday, February 20, 2004 2:38 PM
		To: www-ws-desc@w3.org
		Subject: Re: Version attribute for WSDL

		William,
		
		The difficulty is that backward compatible versioning is
not possible with this. 
		That is, applications that worked with the earlier
version no longer work this version,
		as this is a "different interface" rather than a minor
version of one.
		
		This approach is always available for changes that have
no backward compatibility baggage associated but,
		I believe the impetus behind the solution being sought
is the backward compatibility aspect, where vendors can make 
		changes without having to worry about impacting current
users and not having required to publish an entirely 
		new WSDL in new a namepace each time a minor revision is
needed etc.
		
		Regards, Prasad
		
		-------- Original Message -------- 

Subject: 

RE: Version attribute for WSDL

Resent-Date: 

Thu, 19 Feb 2004 22:53:45 -0500 (EST)

Resent-From: 

www-ws-desc@w3.org

Date: 

Thu, 19 Feb 2004 19:53:33 -0800

From: 

Vambenepe, William N <vbp@hp.com> <mailto:vbp@hp.com> 

To: 

Prasad Yendluri <pyendluri@webmethods.com>
<mailto:pyendluri@webmethods.com> , <www-ws-desc@w3.org>
<mailto:www-ws-desc@w3.org> 

		 

		This is indeed what I am asking. What problems do you
see? A different
		interface (no matter how different) gets a different
QName. So we don't
		mess up anything and start to see interactions fail that
we thought
		should work, or requests having a different effect from
what was
		expected. This is a difficult area, let's play it self.
Having
		established this safe foundation, we can now look at
ways to offer
		additional features when the interfaces are indeed
versions of one
		another, by having a convention on how to build a the
namespace URI of a
		new interface based on the namespace URI of the older
version. If people
		want to take advantage of this convention, great. If
they don't then
		they don't have to worry about it and their code won't
suddenly break
		because they forgot to check the "version" and follow
whatever rules we
		define about minor/major versions.
		 
		What I don't like about the approach that uses a new
"version" attribute
		is that it puts additional constraints and a heavy
burden on people who
		don't care about versioning. The approach I propose
allows people who
		don't care about expressing versioning to ignore it and
be safe.
		 
		William
		 
		> -----Original Message-----
		> From: www-ws-desc-request@w3.org 
		> [mailto:www-ws-desc-request@w3.org] On Behalf Of
Prasad Yendluri
		> Sent: Thursday, February 19, 2004 2:24 PM
		> To: www-ws-desc@w3.org
		> Subject: Re: Version attribute for WSDL
		> 
		> 
		> 
		> William,
		> 
		> >Prasad, I don't see what the problem is with creating
a new 
		> namespace URI by using a >previous namespace URI as a
base.
		> 
		> There is no issue with creating a new URI that
represents a version with 
		> the namespace URI as the base. However if you are
asking that we make 
		> that the new namespace URI (@targetNamespace on the
definitions element) 
		> of the versioned WSDL effectively using the namespace
attribute to 
		> version,  I do see a problem. I was not sure however
if  that is what 
		> you are proposing..
		> 
		> Regards, Prasad
		> 
		> > -----Original Message----- 
		> > From: www-ws-desc-request@w3.org on behalf of 
		> Vambenepe, William N 
		> > Sent: Thu 2/19/2004 11:28 AM 
		> > To: Prasad Yendluri; www-ws-desc@w3.org 
		> > Cc: 
		> > Subject: RE: Version attribute for WSDL
		> > 
		> > 
		> > David, in your proposal, you suggest to create a URI

		> based on the namespace URI of the "older" interface.
That 
		> sounds good, but where does this URI go? First I
assumed you 
		> meant it goes in an attribute of type anyURI that we
would 
		> add to interface, and I replied to you that this URI
should 
		> go as the namespace URI for the "newer" interface
instead. 
		> Then I re-read your text and I thought maybe this is
what you 
		> meant all along. Now I am confused again. Can you
please 
		> clarify where in the WSDL you would put the
"versioned" URI? 
		> As the namespace of the "newer" interface or not.
		> >  
		> > Prasad, I don't see what the problem is with
creating a 
		> new namespace URI by using a previous namespace URI as
a base.
		> >  
		> > William
		> >  
		> >
		> >        -----Original Message-----
		> >        From: www-ws-desc-request@w3.org 
		> [mailto:www-ws-desc-request@w3.org] On Behalf Of
Prasad Yendluri
		> >        Sent: Tuesday, February 17, 2004 5:31 PM
		> >        To: www-ws-desc@w3.org
		> >        Subject: Re: Version attribute for WSDL
		> >        
		> >        
		> >
		> >
		> >        David Orchard wrote:
		> >        
		> >
		> >                Creating a URI from the namespace
name 
		> and version is not messing with the namespace URI. 
		> >                
		> >
		> >        I did not suggest that at all. My response is

		> based on William's note below, the text around "Yes, I
fully 
		> agree with doing this in the URI that represents the 
		> namespace." I interpreted that to mean changing the
namespace 
		> URI. If we are not, I have no issue (on that).
		> >        
		> >        
		> >
		> >                It's about having a normative way of 
		> generating a URI from a base URI, in this case an NS
URI, and 
		> a secondary resource identifier, in this case a
version 
		> identifier.  We could use #, ;, / to separate.  Just
depends 
		> on whether you want the server to see the secondary
resource 
		> identifier or not.  This seems like a new symbol space
to me...
		> >                 
		> >                This is all completely valid and 
		> expected within the web and web services
architecture..
		> >                 
		> >                Dave
		> >                -----Original Message-----
		> >                From: www-ws-desc-request@w3.org 
		> [mailto:www-ws-desc-request@w3.org]On Behalf Of Prasad
Yendluri
		> >                Sent: Tuesday, February 17, 2004 4:53
PM
		> >                To: www-ws-desc@w3.org
		> >                Subject: Re: Version attribute for
WSDL
		> >                
		> >                
		> >
		> >                        Messing with the namespace
URI 
		> (and effectively changing namespace) for versioning
seems 
		> undesirable to me. 
		> >                        I like to keep version a 
		> separate attribute distinct from the namespace and
actually I 
		> prefer that it be a +ve numerical.
		> >                        A higher value representing a

		> younger (subsequent) version than the lower valued
one. Also IMO we 
		> >                        must clearly define the 
		> semantics of this attribute lest we end up creating
another 
		> area of confusion. 
		> >                        The following semantics look
good to me.
		> >                        
		> >                        The version attribute
indicates 
		> a "minor" revision of the definition or
		> >                        interface. Specifically, a 
		> "minor" revision indicates that a client using
		> >                        a WSDL with a version
attribute 
		> less-than the current value is expected
		> >                        to continue to function.
		> >                        In essence I am for Tom's
(2nd) 
		> proposal below except the approach suggested in
example 2. 
		> When an incompatible change is made, 
		> >                        it should be left up to the 
		> WSDL writer to decide how to change the namespace URI
rather 
		> the spec dictating it.
		> >                        
		> >                        I don't quite understand the 
		> issue with defaulting the version to "1" if not set 
		> explicitly however...
		> >                        
		> >                        Regards, Prasad
		> >                       
		> >                        -------- Original Message
-------- 
		> >Subject:        RE: Version attribute for WSDL 
		> >Resent-Date:    Fri, 13 Feb 2004 18:49:15 -0500 (EST)

		> >Resent-From:    www-ws-desc@w3.org     
		> >Date:   Fri, 13 Feb 2004 15:48:53 -0800       
		> >From:   Vambenepe, William N <vbp@hp.com>
<mailto:vbp@hp.com>  <mailto:vbp@hp.com> <mailto:vbp@hp.com>         
		> >To:     David Orchard <dorchard@bea.com>
<mailto:dorchard@bea.com>  
		> <mailto:dorchard@bea.com> <mailto:dorchard@bea.com>  ,
<paul.downey@bt.com> <mailto:paul.downey@bt.com>  
		> <mailto:paul.downey@bt.com>
<mailto:paul.downey@bt.com>  , <tomj@macromedia.com>
<mailto:tomj@macromedia.com>  
		> <mailto:tomj@macromedia.com>
<mailto:tomj@macromedia.com>  , <www-ws-desc@w3.org>
<mailto:www-ws-desc@w3.org>  
		> <mailto:www-ws-desc@w3.org>
<mailto:www-ws-desc@w3.org>      
		> >
		> >                        My mistake, I thought you
were 
		> suggesting doing URI tricks inside a
		> >                        "version" attribute that
would 
		> be of type URI. Yes, I fully agree with
		> >                        doing this in the URI that 
		> represents the namespace. This is what I
		> >                        meant in a previous email: 
		> "maybe what we need instead is an optional
		> >                        convention on how to build 
		> interface QNames that convey versioning
		> >                        information. Whether that 
		> convention belongs in the WSDL spec is another
		> >                        question...""
		> >                        
		> >                        So +1 from me that this is
the 
		> right approach. I am not sure this group
		> >                        needs to specify that, but
it's 
		> fine by me if many people want it in our
		> >                        spec.
		> >                        
		> >                        William
		> >                        
		> >                        > -----Original Message-----
		> >                        > From:
www-ws-desc-request@w3.org 
		> >                        > 
		> [mailto:www-ws-desc-request@w3.org] On Behalf Of
Vambenepe, William N
		> >                        > Sent: Friday, February 13, 
		> 2004 12:41 PM
		> >                        > To: David Orchard; 
		> paul.downey@bt.com; tomj@macromedia.com; 
		> >                        > www-ws-desc@w3.org
		> >                        > Subject: RE: Version 
		> attribute for WSDL
		> >                        > 
		> >                        > 
		> >                        > > I wonder if we could play

		> some magic trick and say that the 
		> >                        > > minor version is a
relative 
		> URI from the namespace name, and 
		> >                        > > then the "match" could be

		> of the strings.  A nice use of URIs 
		> >                        > > for comparison imo.
		> >                        > 
		> >                        > Why not play that trick on 
		> the URI part of the QName of the interface?
		> >                        > 
		> >                        > William
		> >                        > 
		> >                        > > -----Original
Message-----
		> >                        > > From:
www-ws-desc-request@w3.org 
		> >                        > > 
		> [mailto:www-ws-desc-request@w3.org] On Behalf Of David
Orchard
		> >                        > > Sent: Friday, February
13, 
		> 2004 12:13 PM
		> >                        > > To: paul.downey@bt.com; 
		> tomj@macromedia.com; www-ws-desc@w3.org
		> >                        > > Subject: RE: Version 
		> attribute for WSDL
		> >                        > > 
		> >                        > > 
		> >                        > > Ah Paul,
		> >                        > > 
		> >                        > > I had earlier thought
about 
		> using URIs for the "minor" 
		> >                        > > version # and the problem

		> of multiple nested versions and you 
		> >                        > > are probably right about 
		> the problem of increasing minor versions.  
		> >                        > > 
		> >                        > > Tell me though, is 3.3 
		> compatible with 3.2.1.1?  I would 
		> >                        > > assume they would have to
be.
		> >                        > > 
		> >                        > > I wonder if we could play

		> some magic trick and say that the 
		> >                        > > minor version is a
relative 
		> URI from the namespace name, and 
		> >                        > > then the "match" could be

		> of the strings.  A nice use of URIs 
		> >                        > > for comparison imo.
		> >                        > > 
		> >                        > > Dave
		> >                        > > 
		> >                        > > > -----Original
Message-----
		> >                        > > > From:
www-ws-desc-request@w3.org 
		> >                        > > 
		> [mailto:www-ws-desc-request@w3.org]On
		> >                        > > > Behalf Of
paul.downey@bt.com
		> >                        > > > Sent: Friday, February 
		> 13, 2004 10:02 AM
		> >                        > > > To: dorchard@bea.com; 
		> tomj@macromedia.com; www-ws-desc@w3.org
		> >                        > > > Subject: RE: Version 
		> attribute for WSDL
		> >                        > > > 
		> >                        > > > 
		> >                        > > > 
		> >                        > > > I like this too, 
		> especially the defaulting on extension.
		> >                        > > > 
		> >                        > > > My small concern is
using 
		> the integer to indicate the relationship
		> >                        > > > between versions 
		> precludes branches, unless we allowed a  SCCS/RCS/CVS 
		> >                        > > > style numbering system,
e.g:
		> >                        > > > 
		> >                        > > > 1 -> 2 -> 3 -> 4 -> 5 
		> >                        > > >           |
		> >                        > > >           +-> 3.1 ->
3.2 -> 3.3 
		> >                        > > >                      |
		> >                        > > >
+-> 3.2.1
		> >                        > > >
|
		> >                        > > >

		> +-> 3.2.1.1 
		> >                        > > > 
		> >                        > > > i imagined the proper
W3C 
		> way would be to use a URI for the 
		> >                        > > > version and 
		> >                        > > > relate them using
syllogisms ?
		> >                        > > > 
		> >                        > > > Paul
		> >                        > > > 
		> >                        > > > 
		> >                        > > > -----Original
Message-----
		> >                        > > > From:
www-ws-desc-request@w3.org 
		> >                        > > 
		> [mailto:www-ws-desc-request@w3.org]On Behalf Of David
Orchard
		> >                        > > > Sent: 13 February 2004
17:47
		> >                        > > > To: 'Tom Jordahl'; 
		> www-ws-desc@w3.org
		> >                        > > > Subject: RE: Version 
		> attribute for WSDL
		> >                        > > > 
		> >                        > > > 
		> >                        > > > I like this as a 
		> strawman.  And the idea of not inheriting the version
		> >                        > > > attribute makes a
certain 
		> sense too, as it requires the "extender" to make a
		> >                        > > > conscious decision.  
		> Though defaulting to "1" does have the problem that
the
		> >                        > > > extender might not be 
		> compatible.  If there were some way in the "extension"
		> >                        > > > of knowing that the 
		> extensions could be ignored, then "1" makes sense.
		> >                        > > > 
		> >                        > > > cheers,
		> >                        > > > Dave
		> >                        > > > 
		> >                        > > > > -----Original
Message-----
		> >                        > > > > From: 
		> www-ws-desc-request@w3.org 
		> >                        > > > 
		> [mailto:www-ws-desc-request@w3.org]On Behalf Of Tom
Jordahl
		> >                        > > > > Sent: Friday,
February 
		> 13, 2004 7:06 AM
		> >                        > > > > To:
'www-ws-desc@w3.org'
		> >                        > > > > Subject: RE: Version 
		> attribute for WSDL
		> >                        > > > >
		> >                        > > > >
		> >                        > > > > I guess I understand 
		> the desire to have "real" versioning support in WSDL
		> >                        > > > > 2.0.  I do too. But
my 
		> proposal came out of the F2F, where we had a long,
		> >                        > > > > and I believe 
		> fruitless, discussion about all of this.
		> >                        > > > >
		> >                        > > > > I do not believe we
can 
		> have a section in our specification about versioning
		> >                        > > > > and say "if you want 
		> versioning, change the namespace". With a small
		> >                        > > > > addition to the
syntax, 
		> we can give users some help in managing change in
		> >                        > > > > their web services.
		> >                        > > > >
		> >                        > > > > I am willing to apply

		> semantics to the version attribute if this group
		> >                        > > > > thinks that they can 
		> move forward in a productive way.  How about these
		> >                        > > > > changes as a straw
man 
		> for discussion:
		> >                        > > > >
		> >                        > > > >  - The version 
		> attribute is part of the infoset (a.k.a. the component
model)
		> >                        > > > >
		> >                        > > > >  - The version 
		> attribute has type xsd:positiveInteger
		> >                        > > > >
		> >                        > > > >  - The version 
		> attribute has a default value of 1.
		> >                        > > > >
		> >                        > > > >  - The version 
		> attribute indicates a "minor" revision of the
definition or
		> >                        > > > >    interface. 
		> Specifically, a "minor" revision indicates that a
client using
		> >                        > > > >    a WSDL with a 
		> version attribute less-than the current value is
expected
		> >                        > > > >    to continue to
function.
		> >                        > > > >
		> >                        > > > >  - When an interface 
		> extends another interface, the version attribute of
the
		> >                        > > > >    interface is NOT 
		> inherited - it must be explicitly set on the
interface,
		> >                        > > > >    and if is not, the

		> interface has the default version attribute (1).
		> >                        > > > >
		> >                        > > > > Example 1: Version 1
of 
		> my interface has two operations. I release a new
		> >                        > > > > WSDL that adds a
third 
		> operation, and change the version attribute to 2.
		> >                        > > > > Clients who are using

		> the previous version of the WSDL continue to function.
		> >                        > > > >
		> >                        > > > > Example 2: My WSDL
has 
		> a purchase order type defined and a target namespace
		> >                        > > > > of 
		> "http://example.org/myservice"
<http://example.org/myservice>  > <http://example.org/myservice>
<http://example.org/myservice>  
		> .  I change my purchase order 
		> to include
		> >                        > > > > several new elements 
		> and rename some of the old ones.  Since this change
		> >                        > > > > will break 
		> compatibility, I change the target namespace to
		> >                        > > > > 
		> "http://example.org/myservice/v2"
<http://example.org/myservice/v2>  
		<http://example.org/myservice/v2>
<http://example.org/myservice/v2>  .  My service can now easily tell the
		>                          > > > > difference between
clients that
		are using the original WSDL
		>                          > > > > and the new one.
		>                          > > > >
		>                          > > > >
		>                          > > > > --
		>                          > > > > Tom Jordahl
		>                          > > > > Macromedia Server
Development
		>                          > > > >
		>   

	 
Received on Wednesday, 25 February 2004 13:48:25 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 07:15:02 UTC