OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrf message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Proposed write-up for WSRF app notes


Hi all,

During the last conf call, I took an action item to write up a proposed
addition to the App Notes to explain a way to offer Web services that
compose portTypes other than the copy/paste approach currently described
in the App Notes. This email contains my proposal. This proposal also
implies some rewording in 3.1 of the App Notes to make 3.1 overall
independent of the approach taken and list two approaches (so, remove
the concept of most-derived interface from the introduction section of
3.1): the copy/paste one as represented by 3.1.1.1 to 3.1.1.3 and the
service-level composition as presented below. Note that the editors
should probably extract the resourceProp document aggregation
instructions out of the copy/paste method of portType aggregation as the
resource properties document aggregation is actually shared between the
copy/paste and the service-level methods of portType aggregation. Also,
this would require modifying the last paragraph of section 1.1.1 of
WS-RP to talk about services that implement more than one portType
rather than using cut/paste for manual aggregation.




Service-level aggregation

WSDL 1.1 defines a service element as a sequence of ports. A service
that implements multiple portTypes can be represented in WSDL by a
service element containing ports implementing the portTypes implemented
by the service. This section defines how to do so in an interoperable
way. It is important to note that this mechanism (just like the
copy/paste mechanism also describe in this document) is only available
if all the operations in all the portTypes implemented by a given
service use a different element QName for their input message.

Here is an example of a WSDL document created using this approach. This
example corresponds to the case where the described service implements
both a portType of local name A and targetnamespace http://foo.com and a
portType of localname B and targetnamespace http://bar.com.

<definition targetnamespace="http://myNS.com/";
   xmlns:tns="http://myNS.com/";
   xmlns:foo="http://foo.com";
   xmlns:bar="http://bar.com";
 
xmlns:wsrp="http://docs.oasis-open.org/wsrf/2005/03/wsrf-WS-ResourceProp
erties-1.2-draft-06.wsdl">

   <import namespace="http://foo.com"/>
   <import namespace="http://bar.com"/>
   <import
namespace="http://docs.oasis-open.org/wsrf/2005/03/wsrf-WS-ResourcePrope
rties-1.2-draft-06.wsdl"/>

   <binding name="bindingA" type="foo:A">
      ...
   </binding>

   <binding name="bindingB" type="bar:B">
      ...
   </binding>

   <binding name="bindingWSRP" type="wsrp:GetResourcePropertyDocument">
      ...
   </binding>

   <service name="myService">

      <port name="PortA" binding="tns:bindingA">
         <soap:address location="http://myServer/myEndpoint"/>
      </port>
      <port name="PortB" binding="tns:bindingB">
         <soap:address location="http://myServer/myEndpoint"/>
      </port>
      <port name="PortWSRP" binding="tns:bindingWSRP">
         <soap:address location="http://myServer/myEndpoint"/>
      </port>
   </service>

</definition>

Here are the best practices defined to allow the service-level
aggregation of interfaces. These best practices are recommended whenever
a service element contains a port implementing a WSRF-defined portType
(in this example the "wsrp:GetResourcePropertyDocument" portType):

- The fact that several ports are part of the same service element means
that they provide access to the same WS-Resource.

- All the resource properties defined by any of the portTypes
implemented by the ports in the service are resource properties of the
WS-Resource. The aggregate resource properties document is created using
the rules for resource properties documents specified in the copy/paste
aggregation method.

- In the case where resource properties are defined but no operation is
defined by the associated portType, this is simply represented by a
binding for an empty portType and a port for this service. As described
by WS-ResourceProperties, the resource properties document defined by
this portType is provided by the portType.

- The best practice to create an EPR that addresses such a Web service
is to make use of the optional "wsa:ServiceName" element to provide the
QName of the service element but not to use the optional PortName
attribe of the ServiceName element.

Regards,

William



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]