- From: <noah_mendelsohn@us.ibm.com>
- Date: Wed, 18 Jan 2006 15:32:04 -0500
- To: Christopher B Ferris <chrisfer@us.ibm.com>
- Cc: "xml-dist-app@w3.org" <xml-dist-app@w3.org>
Chris Ferris writes:
> David Hull wrote on 01/12/2006 01:22:55 AM:
>
> > One potential wild card here, though, is SOAP intermediaries. I'm
> > not sure quite how to analyze that, partly because I'm not really up
> > on how intermediaries are used in the real world. Given that the
> > SOAP processing model is one-way, I'd think an intermediary shouldn't
> > be aware that a given SOAP message is a request or a response, but
> > it's highly possible I've missed something.
>
> IMO, a SOAP intermediary's binding should respect the
> underlying protocol's MEP, and not
> try to play fast and loose based on the application-level MEP.
I strongly agree with Chris. The intermediary certainly should know what
MEPs in use, at least to the extent and endpoint in its place would know.
It's implementing the inbound binding, and the spec for that will tell you
what MEP is in use. In the case of the HTTP binding, it will know that an
inbound POST==Req/Resp. In fact, it better know that, or it might be
tempted to close the HTTP connection without waiting for the downstream
nodes to respond. Indeed, I'd say that the intermediary is responsible
for ensuring that the 2nd hop binding can faithfully implment the MEP used
by the first hop.
I will say that one of my great regrets in SOAP is that having bothered to
spec intermediaries in the first place (a questionnable call IMO), we did
not clearly document the details of intermediaries very well. I always
thought that part 1 should have made it part of the requirement for the
specification of an MEP that teh possible behavior of intermediaries be
specified. For example, if an inbound request causes an mU fault at an
intermediary, the fault message should presumably go back to the sender.
If a similar error happens on a response, what to do is less clear. I
think we should have said. I am NOT proposing to expand the scope of the
XMLP charter to say much new now, I'm just agreeing that it's not as
clearly specified as it should be.
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
Christopher B Ferris <chrisfer@us.ibm.com>
Sent by: xml-dist-app-request@w3.org
01/18/2006 12:16 PM
To: "xml-dist-app@w3.org" <xml-dist-app@w3.org>
cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
Subject: Re: Action item - Part 2: SOAP request-response,
response, request-optional-response ...
David Hull wrote on 01/12/2006 01:22:55 AM:
> One potential wild card here, though, is SOAP intermediaries. I'm
> not sure quite how to analyze that, partly because I'm not really up
> on how intermediaries are used in the real world. Given that the
> SOAP processing model is one-way, I'd think an intermediary shouldn't
> be aware that a given SOAP message is a request or a response, but
> it's highly possible I've missed something.
IMO, a SOAP intermediary's binding should respect the underlying
protocol's MEP, and not
try to play fast and loose based on the application-level MEP.
Someone was complaining to me about the use of the HTTP response to convey
a SequenceAcknowledgement
when the WSDL operation was a oneway because their intermediary would
examine the WSDL and close
the connection to the originating HTTP client before receiving the HTTP
response to the intermediary's
HTTP request forwarding the message.
I believe that it is inappropriate for the intermediary to use knowledge
of the WSDL to optimize the
exchange since even a oneway message could generate a Fault and per the
SOAP spec, the
node generating the Fault is supposed to transmit that fault back on the
HTTP response in the
HTTP binding. If the intermediary had closed the connection back to the
originating node before
it received the response to the forwarded message, how is it supposed to
convey that fault
back to the originating client, which is the one that probably wants to
know that its message
generated a fault, and arguably would be expecting to receive such a fault
because that was
what was specified in the HTTP binding (it may not necessarily be aware
that there's
an intermediary involved in the exchange).
Cheers,
Christopher Ferris
STSM, Emerging e-business Industry Architecture
email: chrisfer@us.ibm.com
blog: http://www.ibm.com/developerworks/blogs/dw_blog.jspa?blog=440
phone: +1 508 377 9295
Received on Wednesday, 18 January 2006 20:32:20 UTC