W3C home > Mailing lists > Public > www-ws-desc@w3.org > May 2003

RE: /service/@targetResource ?

From: Jonathan Marsh <jmarsh@microsoft.com>
Date: Fri, 30 May 2003 09:12:46 -0700
Message-ID: <1113DDB24D4A2841951BFDF86665EE1906691E55@RED-MSG-10.redmond.corp.microsoft.com>
To: <www-ws-desc@w3.org>

One problem we tried to address at the FTF was distinguishing in the
WSDL between three cases not previously distinguishable:

1) When a set of endpoints represent "alternative" bindings for the same
interface acting on the same "thing" (e.g. SOAP and HTTP bindings as two
ways to access the interface).
2) When a set of endpoints represent different interfaces to the same
"thing" (e.g. normal interface and a management interface).
3) When endpoints are related in some other way (e.g. your use case, I
think).

The terminology we developed is that a "service" is an interface on a
thing, that can be accessed through various mechanisms.  Thus the term
"service" and the "<service>" element have been clarified to cover case
(1).  This is of course extremely useful for tooling.

For case (2), we provided a mechanism for identifying the "thing" using
a web-friendly concept - a URI which we now call the "targetResource".
While not as directly related to tooling, this provides, for example, a
hook for discovery.

We have not provided any mechanism for describing case (3) yet.
Services can be grouped within a single WSDL file, with no semantics
suggested by that grouping.  Likewise, resources related in case (2)
need not be in the same WSDL.  There were some proposals to add a place
for another URI describing various relationships but the Working Group
did not find this too compelling, as it can be addressed by a variety of
external ways.

I don't see why Philippe's first proposal doesn't address your specific
example.

> -----Original Message-----
> From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]
On
> Behalf Of Sedukhin, Igor S
> Sent: Thursday, May 29, 2003 6:09 PM
> To: Philippe Le Hegaret
> Cc: www-ws-desc@w3.org
> Subject: RE: /service/@targetResource ?
> 
> 
> Philippe,
> 
> Your solution to my example won't work. Both services have different
> bindings and different requirements. E.g. one requires WS-Security and
> reliable messaging (A1) and the other does not (B1). I need to still
have
> two partial bindings on the aggregated service. Those two won't bind
the
> whole inherited interface, but rather respective inherited parts (B1
and
> A1). The interface F will not be bound to an endpoint.
> The two services solution is even worse. I want to offer one service
to my
> parther. I'll give him URL to the WSDL and Qname of the service. The
rest
> is mechanics. I'll define an SLA and security in regards to that
partner
> for that ONE service. This is not a crazy scenario and I want it to be
> natural.
> 
> <service name="C">
>  <endpoint name="a" interface="A" binding="SOAPHTTP.restricted">
>    <http:address href='http://www.example.com/A'/>
>  </endpoint>
>  <endpoint name="b" interface="B" binding="SOAPHTTP">
>    <http:address href='http://www.example.com/B'/>
>  </endpoint>
> </service>
> 
> So then in the program at the partner's side I can do something like
> 	C.a.mymethodA(...)
> 	C.b.mymethodB(...)
> Where a and b would be implementations of the interface A and B
> respectively.
> 
> This decision to constrain is like twisting arms. Yes we all know that
it
> is possible to write programs in a language without loops and model
them
> with gotos. Why does WSDL have to be similar?
> 
> targetResource is such a foreign construct that I have doubts anyone
would
> ever figure out what to set it to. It will be one of those things that
> noone has any idea how to deal with in the implementations. It would
be
> better left to extensions or to something like properties/features.
Base
> WSDL may not be a good place to model relationships between services
and
> resources that way. It is getting very hairy...
> 
> -- Igor Sedukhin .. (igor.sedukhin@ca.com)
> -- (631) 342-4325 .. 1 CA Plaza, Islandia, NY 11788
> 
> 
> -----Original Message-----
> From: Philippe Le Hegaret [mailto:plh@w3.org]
> Sent: Thursday, May 29, 2003 5:43 PM
> To: Sedukhin, Igor S
> Cc: www-ws-desc@w3.org
> Subject: RE: /service/@targetResource ?
> 
> 
> On Thu, 2003-05-29 at 16:52, Sedukhin, Igor S wrote:
> > What is the difference between targetResource and target namespace
of
> > the <service> element? Aren't they identifying "functionality" and
all
> > the other things related to the service "semantics"? Why two
> > identifiers are so necessary?
> 
> targetResource doesn't identify a functionality but a resource. It is
> orthogonal to the target namespace. Two services may use the same
target
> namespace and still work on a different resource. Two services could
> provide access to the same resource using two differents interfaces.
In
> such case, you can express the relation between the two services using
the
> targetResource attribute.
> 
> Your previous example:
> >  There is a service A that has an endpoint that binds the interface
> > A1. There is a service B and interface B1 similarily. Those are
> > internal services. I'd like to offer service C that is an aggregate
> > of two functionalities to a partner. I may have an intermediary that
> > may merely represent an aggregate. So, in the WSDL I'd have service
C
> > that has two endpoints, one binds interface A1 and another binds
B1.
> > Both may or may not share the same address.
> 
> transform into:
> 
> <service name="C.1"
>      interface="A1"
>      targetResource="http://www.example.com/C">
>  <endpoint ... >
>    <http:address href='http://www.example.com/myService'/>
>  </endpoint>
> </service>
> <service name="C.2"
>      interface="B1"
>      targetResource="http://www.example.com/C">
>  <endpoint ... >
>    <http:address href='http://www.example.com/myService'/>
>  </endpoint>
> </service>
> 
> or you can also create an interface F, that inherits from A1 and B1:
> 
> <service name="C.3"
>      interface="F">
>  <endpoint ... >
>    <http:address href='http://www.example.com/myService'/>
>  </endpoint>
> </service>
> 
> Philippe
> 
> 
> >
> >
> > -- Igor Sedukhin .. (igor.sedukhin@ca.com)
> > -- (631) 342-4325 .. 1 CA Plaza, Islandia, NY 11788
> >
> >         -----Original Message-----
> >         From: Arthur Ryman [mailto:ryman@ca.ibm.com]
> >         Sent: Wednesday, May 14, 2003 11:11 AM
> >         To: www-ws-desc@w3.org
> >         Subject: /service/@targetResource ?
> >
> >
> >         In the discussion with the architecture group today, there
> >         seemed to be confusion between a service and the resource is
> >         acts on. The architecture group defines a Web service to
have
> >         something that has a URI, but that URI is not the same as
the
> >         resource that the Web service acts on.
> >
> >         For example, a bank might have a personal banking Web
service.
> >         The account Web service acts on the bank.
> >
> >         We can build a URI from the QName of the personal banking
Web
> >         service, e.g.
> >         http://xml.fredsbank.com#service(PersonalBanking). The bank
> >         itself might have the URI http://fredsbank.com.
> >
> >         We agreed to add an optional @resource attribute to
<service>.
> >         I suggest it would be clearer to rename that attribute to
> >         @targetResource to make it clear that the service acts on
that
> >         resource as opposed to it being the URI of the Web service.
> >
> >         Arthur Ryman
> 
> 
Received on Friday, 30 May 2003 12:13:02 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:24 GMT