Re: Terminology

Hi Jean-Jacques!  Good comments.  My responses are interspersed.

At 10:24 AM 7/4/2003 +0200, Jean-Jacques Moreau wrote:

>Good starting point. Some comments below.
>
>JJ.
>
>David Booth wrote:
>
>>wsdl:interface The (abstract) interface described by the
>><wsdl:interface> element. It is a collection of wsdl:operations.  The
>>wsdl:interface defines how a client can interact with a wsdl:service
>>through an agent that is accessed at a location identified by a
>>wsdl:endpoint.
>
>To me, mentionning endpoint here removes the distinction between the 
>abstract and concrete layers in WSDL.

Hmm.  It seems to me that it's important to say how the abstract and 
concrete are related though.


>>wsdl:service (a/k/a "Web service" or "service") The (abstract)
>>service described by the <wsdl:service> element. It is accessed
>>through a collection of endpoints, and (if we keep the
>>wsdl:@targetResource attribute) it may manipulate some other resource
>>that is identified by the wsdl:@targetResource.
>
>I think this last sentence should mention that manipulation happens 
>through the service's interface.
>
>Also, I think we should say a service provides the concrete implementation 
>for an interface, and is accessible via one or more endpoints.
>
>No mention of agent in this definition?

Good ideas.  How about the following rewording:

[[
wsdl:service (a/k/a "Web service" or "service")
The (conceptual) service described by the <wsdl:service> element.  A 
wsdl:service has an associated collection of wsdl:endpoints and a 
wsdl:interface.  The wsdl:endpoints specify the locations of one or more 
agents that (collectively) implement the wsdl:service.  The associated 
wsdl:interface defines the set of operations that these agents (and thus 
the wsdl:service) support.  These agents (and thus the wsdl:service) may 
also manipulate some other resource that is identified by the 
wsdl:@targetResource.
]]



>>wsdl:endpoint The (abstract) thing that is described by the
>><wsdl:endpoint> element. It provides a location for accessing a
>>particular agent that is accessible via particular protocols
>>described by its associated binding.
>
>s/binding/wsdl:binding/
>
> > This agent is NOT assumed to be
>>the same as the wsdl:service, since there may be several agents at
>>different wsdl:endpoints corresponding to the same wsdl:service.
>
>This is confusing with the first definition above: "a client can interact 
>with a wsdl:service through an agent".
>
>>(The wsdl:service is more abstract than the agent.)  However,
>>interacting with such an agent (through a wsdl:endpoint) implies that
>>you are interacing with the associated wsdl:service.
>
>Same comment as above.

How about the following rewording:

[[
wsdl:endpoint
The (conceptual) thing that is described by the
<wsdl:endpoint> element. It provides a location for accessing a
particular agent that is accessible via particular protocols
described by the wsdl:endpoint's associated wsdl:binding.
This agent is not synonymous with the wsdl:service, since there
may be several agents at different wsdl:endpoints that collectively
implement a single wsdl:service.
]]



>>wsdl:operation The (abstract) operation template described by the
>><wsdl:operation> element. It is a template for a single interaction
>>with the wsdl:service.
>
>I think operation should be defined in terms of messages, rather than just 
>interaction.

How about:

[[
wsdl:operation
The (abstract) operation template described by the
<wsdl:operation> element.  It is a template for a single interaction, 
composed of one or more wsdl:messages, with a wsdl:service.
]]



>We also possibly need an entry for a wsdl:message.

I actually purposely avoided this one because (a) there didn't seem to be 
confusion around it; and (b) it raises the issue of distinguishing between 
a message template and a message instance.  How about this:

[[
wsdl:message
The message template defined by the <wsdl:message> element.  Note that when 
people talk casually about "sending a wsdl:message", what they usually mean 
is "sending a wsdl:message *instance*".
]]



>>wsdl:binding The (abstract) association described by the
>><wsdl:binding> element. It associates an (abstract) interface with
>>transport and serialization details.
>
>OK.
>
>>wsdl:targetResource The (physical or conceptual) resource[2]
>>identified by the wsdl:@targetResource attribute.  Multiple
>>wsdl:services that refer to the same wsdl:targetResource are assumed
>>to "manipulate" the same resource, though what "manipulate" means is
>>application- defined.  The wsdl:targetResource is NOT assumed to be
>>the same entity as the wsdl:service, though in some cases it could be
>>the same entity.
>>References
>>1. Diagram: 
>>http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/wsdl12.html#serviceresfig1
>>
>>2. RFC2396 def of "resource": http://www.ietf.org/rfc/rfc2396.txt
>
>--
>David Booth
>W3C Fellow / Hewlett-Packard
>Telephone: +1.617.253.1273

Received on Monday, 7 July 2003 17:07:19 UTC