W3C home > Mailing lists > Public > xml-dist-app@w3.org > December 2000

Re: SOAP spec.: HTTP binding

From: John Wilson <tug@wilson.co.uk>
Date: Wed, 20 Dec 2000 14:22:40 -0000
Message-ID: <028701c06a90$4f8c3f00$010a0a0a@home.wilson.co.uk>
To: "'Kevin Koch'" <Kevin.Koch@realLegal.com>, <xml-dist-app@w3.org>

----- Original Message -----
From: Andy Neilson <aneilson@webplan.com>
To: 'Kevin Koch' <Kevin.Koch@realLegal.com>; <xml-dist-app@w3.org>
Sent: 18 December 2000 23:03
Subject: RE: SOAP spec.: HTTP binding


> I agree with this comment. The requirement that the HTTP binding specify
the
> success or failure of the request as the HTTP status limits seems to
presume
> a particular processing model in which you know the overall success or
> failure status before you start returning any response (i.e., you are
using
> an in-memory model like a DOM).
>
> I have been developing SOAP processors where:
>   - performance is critical
>   - memory must be constrained, and
>   - the request and/or response size may be very large.

I have this problem too. Currently neither XML-RPC nor SOAP provide
satisfactory solutions.

There are at least two situations in which a server may want to start to
send the response before having read the while of the request:

1/ In memory constrained situations

2/ In performance critical applications where it is necessary to minimise
latency.

As well as issues with HTTP result codes there are more general lacunae in
the SOAP spec:

a) There is no way of reporting the presence of a value in a response which
the server is unwilling or unable to represent without returning a Fault and
it is impossible to return a Fault if the result has been partially sent.

b) It is impossible to tidily abort a response once part of it has been
sent.

One way that case a) turns up is when the  response contains an object that
the server doesn't know how to serialise. It's possible that this isn't a
problem to the client. However the only option the server has is to return a
Fault. However the server has to examine the whole of the response to see if
such a problem exists before it can send the first character of the SOAP
response.

If SOAP had a way of embedding a non fatal error in a response then it would
be a solution to case a). (i.e. an element that said "I didn't understand
this bit of the response, if it's a problem for you then this is a failure,
otherwise ignore it")

If SOAP had what is effectively an exception mechanism (i.e. en exception
element followed by all the close element tags to make the document well
formed) then this would be a solution to case b).

In the absence of any help from the SOAP spec the only solution to these
problems that I can think of is for the server to brutally close the
connection in mid response - this is not really desirable;)

It is possible that these issues arise from application domains that SOAP is
not intended to address, of course.

My own inclination is to look at something build on a subset of XML-RPC
(with some error reporting extensions) for highly memory constrained
applications.

John Wilson
The Wilson Partnership
5 Market Hill, Whitchurch, Aylesbury, Bucks HP22 4JB, UK
+44 1296 641072, +44 7976 611010(mobile), +44 1296 641874(fax)
Received on Wednesday, 20 December 2000 09:23:02 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:58 GMT