[TBTF] Proposal on streaming of messages and request/responses

Last week I took a TBTF action item to rough out text clarifying the
relationship between streaming implementations of the request/response
message exchange pattern, and our core chapter 2 SOAP processing model.
Here is a first cut:

In part 1, section 4.2 "Binding Framework", I would put in immediately
above the note on DTDs:

"Bindings MAY provide for streaming when processing messages.  That is,
nodes MAY begin processing a received message as soon as the necessary
information is available.  SOAP processing is specified in terms of
Envelope infosets [ref to appropriate part 1 section].  Although streaming
receivers will acquire such Infosets incrementally, SOAP processing MUST
yield results identical to those that would have been achieved if the
entire envelope were available prior to the start processing.  For example,
as provided in [part 1 section 2.6], identification of targeted headers,
and checking of all mustUnderstand attributes must be done before
successful processing can proceed.  Depending on the representation used
for the Infoset, and the order in which it is transmitted, this rule may
limit the degree to which streaming can be achieved."

==========

I suggest that the following text be added to the very end of 6.2.3 part 2,
which is the formal description of the request response message exchange
pattern:

"Bindings that implement this message exchange pattern MAY provide for
streaming of responses.  That is, responding nodes MAY begin transmission
of a response while a request is still being received and processed.  When
nodes implement bindings that support streaming, the following rules apply:

* All the rules in part 1 section 4.2 regarding streaming of individual
messages MUST be obeyed for both request and response messages.

* When using streaming bindings, requesting nodes MUST avoid deadlock by
accepting and if necessary processing response information while the
request is being transmitted.   NOTE: depending on the implementation used
and the size of the messages involved, this rule MAY require that SOAP
applications stream application-level response processing in parallel with
request generation.

* A SOAP requesting node MAY enter the Fail state, and thus abort
transmission of the outbound request, based on information contained in an
incoming streamed response.

===============

Comments?  Thanks.

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

Received on Tuesday, 23 April 2002 16:22:04 UTC