Re: Channel response serialization

Darren New <[email protected]> Thu, 25 Jul 2002 09:19:00 -0700
Newsgroups gmane.ietf.beep
Organization Boxes!
Message-ID <[email protected]>
Paul Andrews wrote:
> So. When a web browser loads an HTML page, that page will have on it many
> references to objects that also need to be retrieved in order to fully
> render the page.

...

> The analogy in BEEP would be to create a profile that specifies the use of
> GET. The browser then uses multiple channels to download the multiple
> objects. Intra channel communication being serial, inter channel
> communication being parallel.

The browser could send one MSG with a GET listing *all* the URLs it wants to
retrieve from that server. The server could put each response into a
separate ANS. The ANS can be returned in any order, interleaved. However,
the browser would not get any responses to the second GET until all
responses to the first GET had been received. (It would also be difficult to
abort cleanly without dropping the TCP connection.)
 
> If the API will deliver multiple
> requests and accept responses in any order then it will have to throttle
> itself in order to meet the serialization requirement.

This is how the core of the BEEP-C library works. If you reply out of order,
your reply is just queued in the library until you have everything in order.
You can even process and queue chunks in interleaved order, with the first
response being picked out of the stream, then the second response being
sent.

> So are you saying that MSGs are essentially sent serially, regardless of how
> many channels are open? i.e. if I am sending a very large message on one
> channel, othe channels will have to wait to before they can send anything?

No, he's saying that if you're allowing multiple MSGs being processed at
once, then the next logical step is to allow multiple MSGs to be sent
concurrently. Otherwise, you're holding up the second MSG while waiting for
the first MSG to go out over the wire. If the first MSG is very large and
the second MSG is small and fast to process, you might be able to get the
response from the second MSG before you even finish sending the first MSG.
But that's not how it works now, because once you start sending the first
MSG, you have to finish sending it.

Right now, you can start sending a MSG on a second channel before the MSG on
the first channel is finished.

> I would
> also prefer to work within the standards process if at all possible.

You are working within the standards process. Look at the name of the
mailing list. :-)

-- 
Darren New 
San Diego, CA, USA (PST). Cryptokeys on demand.
** http://home.san.rr.com/dnew/DNResume.html **
** http://images.fbrtech.com/dnew/ **

Things to be thankful for, #37:
   No sausage was served at the Last Supper.