Proposed WSDL extensions for SOAP-over-UDP - Oasis

voraciousdrabΛογισμικό & κατασκευή λογ/κού

14 Δεκ 2013 (πριν από 3 χρόνια και 7 μήνες)

61 εμφανίσεις

7.

WSDL 1.1 binding extensions


Note: the following namespaces should be added to the table in section 1.3 of the document.

wsoap

http://schemas.xmlsoap.org/wsdl/soap/


wsoap12

http://schemas.xmlsoap.org/wsdl/soap12/



This specification introduces a new transport protocol for exchanging SOAP1.1/SOAP1.2 messages.
In
order to let services expose endpoints supporting the SOAP
-
over
-
UDP protocol, this specification
defines WSDL1.1 binding extensions for both SOAP1.1 and SOAP
1.2.

7.1

WSDL1.1 SOAP1.1 binding extension

In order to indicate that a SOAP1.1 binding is using the
unicast version of the
SOAP
-
over
-
UDP
protocol
, the following URI MUST be used as value of the
transport

attribute in the
wsoap:binding

element.


http://docs.oasis
-
open.org/ws
-
dd/soap/udp


In order to indicate that a SOAP1.1 binding is using the multicast version of the SOAP
-
over
-
UDP
protocol, the following URI MUST be used as value of the
transport

attribute in the
wsoap:binding

element.


http://docs.oasis
-
open.org/ws
-
dd/soap/udp
-
multicast


As specified in section 4.3 of this document, the multicast transmission only applies to
the single
message

of one
-
way and notification operations
,
and to the request message

in request
-
response
and

soli
cit
-
response message patterns.

Response

messages must be transmitted unicast.

In addition, because SOAP
-
over
-
UDP prescribes the use of WS
-
Addressing headers, a binding using
this transport:

-

S
HOULD indicate the required use of WS
-
Addressing using the mechan
isms described in [WS
-
Addressing 1.0


Metadata].

-

SHOULD NOT use the
soapAction

attribute in its
wsoap:operation

sub
-
elements.

Service ports using this binding MUST use SOAP
-
over
-
UDP addresses, as defined in section 6 of this
specification.

When the multic
ast binding is used, the address MUST specify a valid multicast group
address.

7.2

WSDL1.1 SOAP1.2 binding extension

In order to indicate that a SOAP1.2 binding is using the unicast

version of the SOAP
-
over
-
UDP
protocol, the following URI MUST be used as value of the
transport

attribute in the
wsoap
12
:binding

element.


http://docs.oasis
-
open.org/ws
-
dd/soap/udp”

In order to indicate that a SOAP1.2 binding is using the multicast versio
n of the SOAP
-
over
-
UDP
protocol, the following URI MUST be used as value of the
transport

attribute in the
wsoap
12
:binding

element.


http://docs.oasis
-
open.org/ws
-
dd/soap/udp
-
multicast”

As specified in section 4.3 of this document, the multicast transmissi
on only applies to the single
message of one
-
way and notification operations, and to the request message in request
-
response
and solicit
-
response message patterns. Response messages must be transmitted unicast.

In addition, because SOAP
-
over
-
UDP
requires

t
he use of WS
-
Addressing headers, a binding using this
transport:

-

SHOULD indicate the required use of WS
-
Addressing using the mechanisms described in [WS
-
Addressing 1.0


Metadata].

-

SHOULD NOT use the
soapAction

attribute in its
wsoap
12
:operation

sub
-
elemen
ts.

-

SHOULD
NOT
set the value of the
soapAction
Required

attribute to
true

in
all
its
wsoap
12
:operation

sub
-
elements.

This specification
also
overrides the implied value
defined in
[wsdl11soap12] when the
soapAction
Required

attribute is omitted and sets
it
to
false

when the SOAP
-
over
-
UDP transport is used
.

Service ports using this binding MUST use SOAP
-
over
-
UDP addresses, as defined in section 6 of this
specification.

When the multicast binding is used, the address MUST specify a valid multicast group
addres
s.

The following example shows a multicast SOAP
-
over
-
UDP binding
using SOAP 1.2
for a
n imaginary

discovery service
:

<wsdl:definitions

targetNamespace="http://
www.example.com
/discovery"


xmlns:tns="
http://
www.example.com
/discovery
"


xmlns:wsdl="ht
tp://schemas.xmlsoap.org/wsdl/"


xmlns:wsoap
12
="http://schemas.xmlsoap.org/wsdl/soap12/"


xmlns:xs="ht
tp://www.w3.org/2001/XMLSchema"
>



<wsdl:types>


<xs:schema>


<xs:import namespace="
http://www.example.com/discovery
"
/>


</xs:schema>


</ws
dl:types>



<wsdl:message name="HelloMessage" >


<wsdl:part name="parameters" element="tns:Hello" />


</wsdl:message>


<wsdl:message name="ByeMessage" >


<wsdl:part name="parameters" element="tns:Bye" />


</wsdl:message>


<wsdl:message name="Pro
beMessage" >


<wsdl:part name="parameters" element="tns:Probe" />


</wsdl:message>


<wsdl:message name="ProbeMatchMessage" >


<wsdl:part name="parameters" element="tns:ProbeMatches" />


</wsdl:message>


<wsdl:message name="ResolveMessage" >


<
wsdl:part name="parameters" element="tns:Resolve" />


</wsdl:message>


<wsdl:message name="ResolveMatchMessage" >


<wsdl:part name="parameters" element="tns:ResolveMatches" />


</wsdl:message>




<wsdl:portType name="TargetService">


<wsdl
:operation name="HelloOp" >


<wsdl:out
put message="tns:HelloMessage"




wsa:Action="
http://
www.example.com
/discovery
/Hello"/>


</wsdl:operation>


<wsdl:operation name="ByeOp" >


<wsdl:out
put message="tns:ByeMessage"





wsa:Action="
http://
www.example.com
/discovery
/Bye"/>


</wsdl:operation>


<wsdl:operation name="ProbeOp" >


<wsdl:input message="tns:ProbeMessage"



wsa:Action="
http://
www.example.com
/discovery
/Probe"/>


<wsdl:outp
ut message="tns:ProbeMatchMessage"




wsa:Action="
http://
www.example.com
/discovery
/ProbeMatches"/>


</wsdl:operation>


<wsdl:operation name="ResolveOp" >


<wsdl:input message="tns:ResolveMessage"



wsa:Action="
htt
p://
www.example.com
/discovery
/Resolve"/>


<wsdl:output message="tns:ResolveMatchMessage"






wsa:Action="
http://
www.example.com
/discovery
/ResolveMatches"/>


</wsdl:operation>


</wsdl:portType>



<wsdl:binding name="
AdHocBinding
" ty
pe="
TargetService
">



<wsoap
12
:binding style="document"


transport="
http://docs.oasis
-
op
en.org/ws
-
dd/soap/udp
-
multicast
" />


<wsp:Policy

xmlns:wsp="
http://www.w3.org/ns/ws
-
policy
"


xmlns:wsam="
http://www.w3.org/2007/05/addressing/metadata
"
>



<wsam:Addressing>


<wsp:Policy/>



</wsam:Addressing>


</wsp:Policy>



<wsdl:operation name="
HelloOp
">



<wsdl:out
put>


<wsoap
12
:body use="literal" />


</wsdl:out
put>



</wsdl:operation>



<wsdl:operation name="
ByeOp
">



<wsdl:out
put>


<wsoap
12
:body use="literal" />


</wsdl:out
put>



</wsdl:operation>



<wsdl:operation name="
ProbeOp
">


<wsdl:input>


<wsoap
12
:body use="literal" />


</wsdl:input>


<wsdl:output>


<wsoap
12
:body use="literal" />


</wsdl:output>



</wsdl:operation>



<wsdl:operation name="
ResolveOp
">


<wsdl:input>


<wsoap
12
:body use="literal" />


</wsdl:input>


<wsdl:output>


<wsoap
12
:body use="literal" />


</wsdl:output>



</wsdl:operation>


</wsdl:binding>


..<wsdl:service name="AdHocDiscoveryService">



<wsdl:port name="
AdHocPort
" binding="tns:
AdHoc
Binding">




<wsoap12:address

location="
soap.udp://239
.255.255.250:3702
" />




</wsdl:port>


</wsdl:service>


</wsdl:definitions>