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

Re: Version attribute for WSDL

From: Prasad Yendluri <pyendluri@webmethods.com>
Date: Fri, 20 Feb 2004 14:38:20 -0800
Message-ID: <40368C5C.4090601@webmethods.com>
To: www-ws-desc@w3.org
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>
To: 	Prasad Yendluri <pyendluri@webmethods.com>, <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> 	
> >To: 	David Orchard <dorchard@bea.com> 
> <mailto:dorchard@bea.com> , <paul.downey@bt.com> 
> <mailto:paul.downey@bt.com> , <tomj@macromedia.com> 
> <mailto:tomj@macromedia.com> , <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> 
> .  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> .  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 Friday, 20 February 2004 17:38:21 UTC

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