I034: Re: Issue 019: WSDL Version Neutrality

[ Subject changed to reflect new issue number ]

* Jonathan Marsh <jmarsh@microsoft.com> [2004-11-17 11:48-0800]
> > Because WSDL 1.1 and 2.0 have different component models, we will not
> > escape the chore of writing a specific section for each of those. As
> > WSDL 2.0 already defines URIs to identify each component, which will
> > be included in our media type registration, I think that it would be a
> > bad thing to have another URI to refer to essentially the same thing.
> > 
> > That way, if a developer gets a SOAP message, she can look at the
> > action, paste it into a (Web, WSDL, UDDI, etc.) browser and get the
> > right snippet of XML if it's the implicit WSDL 2.0 URI using the
> > component designator.
> 
> That's not guarantee, as I'm sure you know.  There is nothing that says
> that you are required to make WSDL available at the target namespace
> (though it is recommended by the WSDL 2.0 spec as a good idea, IMO
> mostly to justify the syntax choices we made in the face of murky
> architecture).  There is nothing that lets me know from looking at the
> message whether the URI is really a component designator or not (all I
> know is that it's an action value).

Agreed. Though, if you give me a URI and I'm curious about it, I'll
drop it into my browser and I may get lucky.

> Neither is there anything that says that if you dereference a URI from
> the WSDL 1.1 default algorithm that you won't get some useful
> information. It seems to be standard practice at the W3C to recommend
> that you provide dereferencable documentation for any interesting URI,
> and I think action qualifies.

Agreed.

> So the benefits you seek are not guaranteed, nor are they precluded by
> using a different algorithm.  If you concede that this line of argument
> is not an irresistible argument in favor of Component Designators, I'll
> concede that Component Designators have a slight advantage over the
> current algorithm in this regard, and we can move on to weigh other
> factors.

Sure. I guess my whole point is not to reinvent the wheel. Since I'm
offline, I'll paraphrase what I think the Web architecture says about
identifiers: their value increases with their reuse.

[..]
> > As you pointed out, this is only a migration argument. From an
> > architectural standpoint, and recognizing that eventually people will
> > describe their services in WSDL 2.0 and not necessarily in WSDL 1.1 -
> > or just for backwards compatibility purposes - it's much cleaner to
> > use the component designator URI as the implicit value for WSDL 2.0
> > IMO.
> > 
> > Maybe if others agree with me, and if we also want to ease migration,
> > we should actually change the algorithm for 1.1 to match 2.0's. My
> > only concern is that we would define a fragment identifier for a
> > text/xml document. I _think_ it would be OK if we call out that, for
> > WSDL 1.1, those fragments identifiers would be meaningless and that
> > the URI would only make sense in the context of the [action] property.
> 
> The fragility and architecturally suspect nature of fragment identifiers
> worries me.  You point out one of the pitfalls, but I fear there may be
> others.  I've had to go to the TAG twice with fragment identifier issues
> before and I hope not to do it again.  My experience says avoid fragment
> identifiers if all else is equal.  (I know that's not a logical
> argument, just background of where I'm coming from.)

If we're talking of potentially making the action URI dereferenceable
as you are suggesting above, I actually think that fragment
identifiers work well for this purpose: assuming a document sits at
the target namespace URI, I retrieve it, and then I do my lookup in it
using the fragment identifier rules. And I have the rest of the
document to get the additional information I would be interested in,
too.

> > > And of course, this doesn't prevent one from using the WSDL 2.0
> > > Component Designator URIs if one wants to specify them explicitly --
> > > even for a WSDL 1.1 service, though one should be aware that the
> context
> > > of that URI is "action" not "component identification".
> > 
> > It seems that we disagree on the purpose of the URI. You see a clear
> > separation between action and component identification, while I don't
> > see why it needs to be the case: it's just an identifier pointing to
> > the same thing.
> 
> While a component designator can always be used as an action, an action
> cannot always be used as a component designator.  In the current
> WS-Addressing spec, actions are not required to be unique across
> operations (though in the default case they just so happen to be).  That
> leads me to believe they are not "the same thing."  Reusing component
> designators in this different context might reinforce that
> misperception.

I actually see value for having this the way it is in terms of unique
identification, but this may get us back to the operation name mapping
requirement debate.

Cheers,

Hugo

-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Friday, 19 November 2004 12:10:59 UTC