Originally posted by Vijay Kumar:
3) Solicit-response Operation 4) Notification Operation. I just want to implement the fourth one.
Type 3 and 4
cannot be implemented if HTTP is the transport protocol due to the inherent limitations of HTTP - the HTTP-client can contact the HTTP-server - the HTTP-server
cannot contact the HTTP-client, it can only respond to the HTTP client's requests.
The WSDL specification makes no assumption about the transport protocol used and therefore is oblivious to the inherent limitations. Just because the WSDL lets you specify a messaging pattern doesn't automatically imply that the specified transport protocol can support that messaging pattern. The binding element in the WSDL specifies what transport protocol (and message format � it doesn�t have to be SOAP) you are using to implement your portType. In the binding for an HTTP-based web service you will see something like this:
However other transport protocols can be specified, e.g.:
The WSDL transmission primitives are expressed by the combination and order of the input and output messages in each operation definition within the portType:
One way: input Request-Response: input, output Solicit-Response: output, input Notification: output For a SOAP over HTTP binding:
One way: not directly supported as there is always a HTTP request-response pair. However this is simply solved by sending a SOAP-request in the HTTP-request, while leaving the HTTP-response empty (i.e. it does not contain a SOAP-response). Request-Response: Supported. The HTTP-request carries the SOAP-request, the HTTP-response contains the SOAP-response. Solicit-Response: NOT SUPPORTED. There is no way for the HTTP-server to initiate contact with the HTTP-client. Notification: NOT SUPPORTED. There is no way for the HTTP-server to initiate contact with the HTTP-client. So the WSDL will let you specify a portType (interface) that the
transport in your binding cannot handle.
With HTTP-based web services it is necessary to
mimic the type 3 and 4 transmission primitives indirectly either by using a separate standard like WSCL or by using the patterns outlined in
Pattern 3: Request/reply operations with polling and
Pattern 4: Request/Reply operations with posting. WSCL and Pattern 4 require that
both participating parties are web services -
not merely web service client and web service.
[ May 25, 2007: Message edited by: Peer Reynders ]