- From: Yalcinalp, Umit <umit.yalcinalp@sap.com>
- Date: Wed, 15 Jun 2005 21:06:09 +0200
- To: "David Hull" <dmh@tibco.com>, "Anish Karmarkar" <Anish.Karmarkar@oracle.com>
- Cc: <public-ws-async-tf@w3.org>
Let me understand this better:
- wsaw:ResponseBinding is only applicable when wsaw:UsingAddressing is
engaged, right?
- There may be multiple ResponseBinding elements, each defining a
different binding option.
- If this element is not present, we assume the actual binding is in
effect for the responses.
- I would guess this proposal applies to only request-response. I could
not understand why this element would apply to specifically in-only case
per Section 3 of your document. Robust-in is another discussion.
- Does the ResponseBinding element provide the same kind of granularity
that WSDL binding section would provide? This is a WSDL question. If so,
how. If not, why not. Maybe you did not think about this, or I missed
the subleties.
Thanks.
--umit
> -----Original Message-----
> From: public-ws-async-tf-request@w3.org
> [mailto:public-ws-async-tf-request@w3.org] On Behalf Of David Hull
> Sent: Wednesday, Jun 15, 2005 11:41 AM
> To: Anish Karmarkar
> Cc: public-ws-async-tf@w3.org
> Subject: Re: Proposal for Async Extensions
>
>
> I left out wsdl:required here because I don't think it's really
> applicable. Including a particular <wsaw:ResponseBinding> advertises
> that you can send (non-anonymous) responses through that binding. If
> you want to say that you only support HTTP for responses, you include
> only the one response binding element. If you provide more than one
> response binding element, then you're saying you'll accept response
> endpoints using any of those bindings. In other words,
> there's no sense
> in providing more than one response element and singling out one as
> wsdl:required, and if there's only one response binding, then
> wsdl:required would be redundant.
>
> Does that make sense?
>
> Or (re-reading) did you mean that wsdl:required would mean that
> anonymous responses aren't allowed? If so, I would prefer to use some
> other marker for that situation. For example, what would this mean:
>
> <wsaw:ResponseBinding
> wsdl:required="true">http://www.w3.org/2003/05/soap/bindings/H
TTP/<wsaw:ResponseBinding>
> <wsaw:ResponseBinding
> wsdl:required="false">http://www.w3.org/@@@@/@@/soap/bindings/
some-other-binding/<wsaw:ResponseBinding>
>
> Anish Karmarkar wrote:
>
> > Question:
> >
> > The example binding in the write-up is:
> >
> > <binding name="operation name">
> > <wsaw:UsingAddressing required="true"/>
> >
> >
> <wsaw:ResponseBinding>http://www.w3.org/2003/05/soap/bindings/
HTTP/<wsaw:ResponseBinding>
> >
> > ...
> > </binding>
> >
> > i.e. wsdl:required="false" for the wsaw:ResponseBinding element.
> >
> > What happens if wsdl:required="true" attribute is present on
> > wsaw:ResponseBinding element? I assume that this means that
> a separate
> > HTTP connection MUST be used for the response. Right?
> >
> > -Anish
> > --
> >
> > David Hull wrote:
> >
> >> Attached please find a proposal for extensions for handling
> >> asynchronous behavior. This was an action item of mine from last
> >> Wednesday's call.
> >>
> >> I believe the attached proposal has several advantages
> over previous
> >> proposals, namely:
> >>
> >> * No new SOAP MEPs are needed to handle asynchronous
> messaging over
> >> two-way transports.
> >> * Given that messaging over a one-way transport simply
> means sending
> >> a message, which any binding must be able to do,
> there may be no
> >> need for a "one-way SOAP MEP" at all.
> >> * Little if any change is needed to the existing HTTP
> SOAP binding.
> >> * Acknowledgments may be explicitly correlated via
> [message id] and
> >> may carry any other needed information.
> >> * There are precise and complete rules for what combinations of
> >> addressing headers are allowed in what circumstances.
> >> * The [response binding] element covers the "Multiple
> Connection
> >> HTTP" use case as a special case.
> >> * Other bindings with backchannels are straightforward.
> >> * It includes Tony's Timeline explicitly, addressing
> concerns about
> >> when faults may or must be sent on the backchannel.
> We may want
> >> to tone down some of the statements made in this
> section, but this
> >> can be done without disturbing the rest of the rules.
> >> * It's short. Most of the bulk is illustrative examples. The
> >> normative material runs to a page or two.
> >>
> >>
> >>
> --------------------------------------------------------------
> ----------
> >>
> >> Extensions for Asynchronous Message Exchange
> >>
> >>
> >> 1 SOAP Bindings
> >>
> >>
> >> 1.1 Anonymous Response feature
> >>
> >> SOAP bindings MAY support the /anonymous response/ feature. Such a
> >> binding MUST provide a means of sending a reply directly to the
> >> sender of a given message, independent of the contents of the SOAP
> >> message itself.
> >>
> >>
> >> 1.1.1 Response Correlation property
> >>
> >> Bindings which support the anonymous response feature MAY provide a
> >> means of correlating responses with the message to which they are
> >> responding, independent of the contents of the SOAP
> message itself.
> >> In such a case, the value of the /response correlation/
> property for
> >> that binding is /true./ Otherwise it is /false/.
> >>
> >>
> >> 1.2 Marker message
> >>
> >> An endpoint receiving a SOAP message (other than an anonymous
> >> response) using a binding which supports the anonymous response
> >> feature MUST produce a SOAP response to the sender, as per the SOAP
> >> request-response MEP. If the endpoint does not respond
> with a fault
> >> or an application-level response, it MUST indicate that no further
> >> response will be sent on the anonymous response channel,
> by sending a
> >> message with an [action] property of
> >> http://www.w3.org/@@@@/@@/addressing/marker. This message MAY also
> >> have any other content, as appropriate.
> >>
> >>
> >>
> >> Bindings MAY provide optimized means of transferring
> particular forms
> >> of messages with this [action].
> >>
> >>
> >> 2 WSDL Extensions
> >>
> >>
> >> 2.1 Response Binding element
> >>
> >> WSDL binding elements MAY include zero or more [response binding]
> >> child elements. The value of such an element MUST be an
> IRI denoting
> >> a SOAP underlying transport binding. This infoset item is
> >> represented as an element with QName |wsaw:ResponseBinding|.
> >>
> >>
> >> 2.2 Using Addressing element
> >>
> >> WSDL binding elements MAY include zero or one [using addressing]
> >> child elements. If this element is present, the operation MUST
> >> follow the rules specified in the WS-Addressing Core, SOAP Binding
> >> and WSDL Binding specifications. This infoset item is
> represented as
> >> an element with QName |wsaw:UsingAddressing|.
> >>
> >>
> >> 3 Interaction with WS-Addressing
> >>
> >> The following uses the WSDL 2.0 names for MEPs, with the
> >> understanding that the same considerations apply in the context of
> >> WSDL 1.1. This section applies only to the in-only, robust in-only
> >> and in-out MEPs.
> >>
> >>
> >> 3.1 Supported Response Bindings
> >>
> >> For any given operation, the set of /supported response bindings/
> >> contains all, and exactly all, of the following IRIs:
> >>
> >> * The IRI
> |http://www.w3.org/@@@@/@@/addressing/anonymous|, if the
> >> transport binding for the operation supports the anonymous
> >> response feature.
> >> * The values of all [response endpoint] children of the binding
> >> element
> >>
> >> Unless the operation is in-only, this set MUST NOT be empty.
> >>
> >>
> >> 3.2 Compatibility of endpoints and supported
> response bindings
> >>
> >> For a given /in /message in a WSDL MEP the set of /response
> >> endpoints/ is
> >>
> >> * The empty set in an in-only MEP
> >> * The set {[fault endpoint]} in a robust in-only MEP.
> >> * The set {[fault endpoint], [response endpoint]} in
> an in-out MEP.
> >>
> >> All response endpoints for a message MUST be compatible
> with exactly
> >> one of the supported response binding IRIs for the operation. Note
> >> that this is automatically true for an in-only operation. An
> >> endpoint is compatible with a binding IRI if
> >>
> >> * The [address] of the endpoint and the binding IRI are both
> >> |http://www.w3.org/@@@@/@@/addressing/anonymous|
> >> * The binding specified by the binding IRI provides a means of
> >> sending a message to the [address] of the endpoint.
> >>
> >> An endpoint receiving a message with incompatibly
> specified response
> >> endpoints MUST attempt to fault if an anonymous response channel is
> >> available, as per section 3.3 below.
> >>
> >>
> >> 3.3 Faults and the anonymous response channel
> >>
> >> An endpoint supporting the anonymous response channel may encounter
> >> errors at various stages in processing the message.
> >>
> >> * If such an error occurs before the [fault endpoint]
> property is
> >> found to be valid, or the [fault endpoint] property
> is valid and
> >> has the [address]
> >> |http://www.w3.org/@@@@/@@/addressing/anonymous|,
> the endpoint
> >> MUST attempt to send an appropriate fault on the anonymous
> >> response channel.
> >> * Otherwise (i.e., the [fault endpoint] is valid and
> is not directed
> >> to the anonymous response channel)
> >> o If the error occurs while the responding
> endpoint is in the
> >> /receiving/ state (i.e., it has not yet begun to send a
> >> response, and no failure has occurred), the
> endpoint MAY
> >> attempt to send a fault on either the
> anonymous response
> >> channel, or to the [fault endpoint], but MUST
> attempt to
> >> send a fault.
> >> o If the error occurs while the responding
> endpoint is in the
> >> /sending, fail/ or /success/ state, the endpoint MUST
> >> attempt to send a fault to the [fault endpoint].
> >>
> >>
> >> 3.4 Message ID
> >>
> >> In addition to any requirements placed by the WS-Addressing
> >> specifications, an /in/ message SHOULD contain a [message id]
> >> property if the [address] of at least one response endpoint is not
> >> |http://www.w3.org/@@@@/@@/addressing/anonymous|.
> >>
> >>
> >> 1 Existing bindings
> >>
> >> Authors of new underlying transport bindings are encouraged to
> >> specify whether the binding supports the anonymous
> response feature,
> >> and if so, the value of the response correlation property and any
> >> optimizations for marker messages. The following supplements the
> >> existing SOAP/HTTP binding by supplying this information for it.
> >>
> >>
> >> 1.1 SOAP/HTTP
> >>
> >> The SOAP/HTTP binding supports the anonymous response feature with
> >> response correlation /true./ The anonymous response channel is
> >> simply the normal HTTP response mechanism. An HTTP response with
> >> status code 202 (Accepted) and no SOAP body is equivalent to a SOAP
> >> response with an [action] property of
> >> |http://www.w3.org/@@@@/@@/addressing/marker|, no other headers and
> >> no body.
> >>
> >>
> >>
> >> The practical consequence of this is that a WSDL binding with
> >> |transport="http://schemas.xmlsoap.org/soap/http" |and| a
> >> <wsaw:UsingAddressing> |element present will follow the rules given
> >> in sections 1-3 above, as illustrated in the non-normative examples
> >> in section 5 below.
> >>
> >>
> >>
> >>
> >> 2 Non-normative examples
> >>
> >>
> >> 2.1 WSDL Fragments
> >>
> >> These examples illustrate three operations: An in-only /Ping/
> >> operation, a robust in-only /RobustPing/ operation, and an in-out/
> >> EchoString/ operation. They are defined abstractly by:
> >>
> >>
> >>
> >> |<operation name="Ping">|
> >>
> >> | <input message="s0:PingMessageIn"/>|
> >>
> >> |</operation>|
> >>
> >> |...|
> >>
> >> |<operation name="RobustPing">|
> >>
> >> | <input message="s0:RobustPingMessageIn"/>|
> >>
> >> |</operation>|
> >>
> >> |...|
> >>
> >> |<operation name="EchoString"> |
> >>
> >> | <input message="s0:EchoStringMessageIn"/> |
> >>
> >> | <output message="s0:EchoStringMessageOut"/> |
> >>
> >> |</operation>|
> >>
> >> |...|
> >>
> >>
> >>
> >> For the purposes of this illustration, they are bound by:
> >>
> >>
> >>
> >> |<binding name="operation name"> |
> >>
> >> | <wsaw:UsingAddressing required="true"/>|
> >>
> >> |
> >>
> <wsaw:ResponseBinding>http://www.w3.org/2003/05/soap/bindings/
HTTP/<wsaw:ResponseBinding>|
> >>
> >>
> >> | ...|
> >>
> >> |</binding>|
> >>
> >>
> >>
> >> This binding indicates that the rules specified by
> WS-Addressing are
> >> in effect, and that responses may be sent via an HTTP connection
> >> separate from the one carrying the request.
> >>
> >>
> >> 2.2 Sample HTTP wire traces
> >>
> >>
> >> 2.2.1 In-only
> >>
> >> HTTP request:
> >>
> >>
> >>
> >> POST /wsaService/service.ashx HTTP/1.1
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/Ping</wsa:Action>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body/>
> >>
> >> </soap:Envelope>
> >>
> >>
> >>
> >> HTTP response:
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >> 2.2.2 Robust in-only with anonymous [fault endpoint]
> >>
> >> HTTP request:
> >>
> >>
> >>
> >> POST /wsaService/service.ashx HTTP/1.1
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/RobustPing</wsa:Action>
> >>
> >> <wsa:FaultTo>
> >>
> >>
> >>
> <wsa:Address>http://www.w3.org/@@@@/@@/addressing/anonymous</w
sa:Address>
> >>
> >>
> >> </wsa:FaultTo>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body/>
> >>
> >> </soap:Envelope>
> >>
> >>
> >>
> >> HTTP response (if no fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >>
> >> HTTP response (if a fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 500 Internal Server Error
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> <wsa:Action>http://www.w3.org/@@@@/@@/addressing/fault</wsa:Action>
> >>
> >> ...
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>...</soap:Body>
> >>
> >> <soap:Envelope>
> >>
> >>
> >> 2.2.3 Robust in-only with non-anonymous [fault endpoint]
> >>
> >> HTTP request:
> >>
> >>
> >>
> >> POST /wsaService/service.ashx HTTP/1.1
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/RobustPing</wsa:Action>
> >>
> >> <wsa:FaultTo>
> >>
> >> <wsa:Address>http://www.example.org/fault</wsa:Address>
> >>
> >> </wsa:FaultTo>
> >>
> >> <wsa:MessageId>uid:SomethingUnique</wsa:MessageId>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body/>
> >>
> >> </soap:Envelope>
> >>
> >>
> >>
> >> HTTP response (in all cases):
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >>
> >> Outgoing HTTP fault message (if a fault occurred):
> >>
> >>
> >>
> >> POST fault HTTP/1.1
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> <wsa:Action>http://www.w3.org/@@@@/@@/addressing/fault</wsa:Action>
> >>
> >> <wsa:RelatesTo>uid:SomethingUnique</wsa:RelatesTo>
> >>
> >> ...
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>...</soap:Body>
> >>
> >> <soap:Envelope>
> >>
> >>
> >>
> >> HTTP response to outgoing HTTP fault message (if a fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >>
> >>
> >> 2.2.4 In-out with anonymous [reply endpoint] and [fault
> >> endpoint]
> >>
> >> HTTP request:
> >>
> >>
> >>
> >> POST /wsaService/service.ashx HTTP/1.1
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/EchoStringReque
st</wsa:Action>
> >>
> >>
> >> <wsa:ReplyTo>
> >>
> >>
> >>
> <wsa:Address>http://www.w3.org/@@@@/@@/addressing/anonymous</w
sa:Address>
> >>
> >>
> >> </wsa:ReplyTo>
> >>
> >> <wsa:MessageId>uid:SomethingUnique</wsa:MessageId>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>EchoMe</soap:Body>
> >>
> >> </soap:Envelope>
> >>
> >>
> >>
> >> HTTP response (if no fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 200 OK
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/EchoStringRespo
nse</wsa:Action>
> >>
> >>
> >> <wsa:RelatesTo>uid:SomethingUnique</wsa:RelatesTo>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>EchoMe</soap:Body>
> >>
> >> <soap:Envelope>
> >>
> >>
> >>
> >> HTTP response (if a fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 500 Internal Server Error
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> <wsa:Action>http://www.w3.org/@@@@/@@/addressing/fault</wsa:Action>
> >>
> >> ...
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>...</soap:Body>
> >>
> >> <soap:Envelope>
> >>
> >>
> >>
> >>
> >> 2.2.5 In-out with non-anonymous [reply endpoint] and
> >> anonymous [fault endpoint]
> >>
> >> HTTP request:
> >>
> >>
> >>
> >> POST /wsaService/service.ashx HTTP/1.1
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/EchoStringReque
st</wsa:Action>
> >>
> >>
> >> <wsa:ReplyTo>
> >>
> >> <wsa:Address> http://www.example.org/reply</wsa:Address>
> >>
> >> </wsa:ReplyTo>
> >>
> >> <wsa:FaultTo>
> >>
> >>
> >>
> <wsa:Address>http://www.w3.org/@@@@/@@/addressing/anonymous</w
sa:Address>
> >>
> >>
> >> </wsa:FaultTo>
> >>
> >> <wsa:MessageId>uid:SomethingUnique</wsa:MessageId>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>EchoMe</soap:Body>
> >>
> >> </soap:Envelope>
> >>
> >>
> >>
> >> HTTP response (if no fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >>
> >> Outgoing HTTP reply message (if no fault occurred):
> >>
> >>
> >>
> >> POST /reply HTTP 1.1
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/EchoStringRespo
nse</wsa:Action>
> >>
> >>
> >> <wsa:RelatesTo>uid:SomethingUnique</wsa:RelatesTo>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>EchoMe</soap:Body>
> >>
> >> <soap:Envelope>
> >>
> >>
> >>
> >> HTTP response to outgoing reply message (if no fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >>
> >> HTTP response to request message (if a fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 500 Internal Server Error
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> <wsa:Action>http://www.w3.org/@@@@/@@/addressing/fault</wsa:Action>
> >>
> >> ...
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>...</soap:Body>
> >>
> >> <soap:Envelope>
> >>
> >>
> >>
> >>
> >> 2.2.6 In-out with non-anonymous [reply
> endpoint] and [fault
> >> endpoint]
> >>
> >> HTTP request:
> >>
> >>
> >>
> >> POST /wsaService/service.ashx HTTP/1.1
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/EchoStringReque
st</wsa:Action>
> >>
> >>
> >> <wsa:ReplyTo>
> >>
> >> <wsa:Address>http://www.example.org/reply</wsa:Address>
> >>
> >> </wsa:ReplyTo>
> >>
> >> <wsa:FaultTo>
> >>
> >> <wsa:Address> http://www.example.org/fault</wsa:Address>
> >>
> >> </wsa:FaultTo>
> >>
> >> <wsa:MessageId>uid:SomethingUnique</wsa:MessageId>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>EchoMe</soap:Body>
> >>
> >> </soap:Envelope>
> >>
> >>
> >>
> >> HTTP response to request message (in all cases):
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >>
> >> Outgoing HTTP reply message (if no fault occurred):
> >>
> >>
> >>
> >> POST /reply HTTP/1.1
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/EchoStringRespo
nse</wsa:Action>
> >>
> >>
> >> <wsa:RelatesTo>uid:SomethingUnique</wsa:RelatesTo>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>EchoMe</soap:Body>
> >>
> >> <soap:Envelope>
> >>
> >>
> >>
> >> HTTP response to outgoing reply message (if no fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >>
> >> Outgoing HTTP fault message (if a fault occurred):
> >>
> >>
> >>
> >> POST /fault HTTP/1.1
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> <wsa:Action>http://www.w3.org/@@@@/@@/addressing/fault</wsa:Action>
> >>
> >> ...
> >>
> >> </soap:Header>
> >>
> >> <soap:Body>...</soap:Body>
> >>
> >> <soap:Envelope>
> >>
> >>
> >>
> >> HTTP response to outgoing fault message (if a fault occurred):
> >>
> >>
> >>
> >> HTTP/1.1 202 Accepted
> >>
> >>
> >> 2.2.7 In-only, headers needed in marker message
> >>
> >> For various reasons, a SOAP marker message response may need to
> >> contain SOAP headers beyond the <wsa:Action> header. In this case,
> >> the response should be a non-optimized SOAP message, as shown here:
> >>
> >>
> >>
> >> HTTP request:
> >>
> >>
> >>
> >> POST /wsaService/service.ashx HTTP/1.1
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> <wsa:Action>http://tempuri.org/ServicePortType/Ping</wsa:Action>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body/>
> >>
> >> </soap:Envelope>
> >>
> >>
> >>
> >> HTTP response:
> >>
> >>
> >>
> >> HTTP/1.1 200 OK
> >>
> >> <soap:Envelope>
> >>
> >> <soap:Header>
> >>
> >>
> <wsa:Action>http://www.w3.org/@@@@/@@/addressing/marker</wsa:action>
> >>
> >> <myns:SomeHeader>...</myns:SomeHeader>
> >>
> >> </soap:Header>
> >>
> >> <soap:Body/>
> >>
> >> </soap:Envelope>
> >>
> >>
> >>
> >
>
>
>
Received on Wednesday, 15 June 2005 19:06:18 UTC