Re: Completing the tables SRR MEP description.

In case it's not obvious, among the reasons that deadlock is possible with 
overlap of response with request:

Consider a streaming service.   Perhaps it takes in a long stream of 
characters, uppercases them, and sends them back.  The server is coded to 
start sending the response before the request is fully received.  This is 
allowed, but not mandated by HTTP (as an example of an underlying 
protocol).  The problem is that success depends on the client being coded 
to deal with the overlap as well.  If you have client built in a more 
obvious way, I.e. to not start looking for the response before the request 
is complete, then deadlock can result:  the response is streaming back, 
and the client won't read any of it.  Gradually the response stream backs 
up, and the server is unable to write to it.  Maybe or maybe not the 
server buffers more response for awhile, but sooner or later it has to 
stop reading the request.  Now the request stream backs up and we have 
deadlock.

Even if deadlock is not a problem (client and server are both smart about 
streaming), getting the state machine tables just right is tricky with so 
much asynchrony.

So, this is a case of a valuable capability, that is not absolutely 
mandatory on day 1 (my opinion).  It will probably be of great value to a 
small number of clients and servers, and a source of many bugs and 
testability problems to the others.   It will be very hard to spec well. I 
have no clearly compelling suggestion, but my current leaning would be: 
have the base binding not stream.  I think (not sure) we could always add 
a feature to enable overlap, possibly signaled by a header sent from the 
client (which would ensure the client's commitment to avoid deadlock).  It 
would also allow us to write the complex version of the spec later, I 
think.  Does this work?

------------------------------------------------------------------
Noah Mendelsohn                              Voice: 1-617-693-4036
IBM Corporation                                Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------

Received on Sunday, 14 April 2002 08:20:34 UTC