Re: Channel response serialization
"Marshall Rose" <[email protected]> Thu, 25 Jul 2002 08:38:21 -0700
| Newsgroups | gmane.ietf.beep |
|---|---|
| Message-ID | <005201c233f1$4e9c0d60$8c00000a@easyinc> |
hi. first, i think the simplest solution is to simply define a beep feature that gets negotiated during the greeting that relaxes the serial processing requirement. > The application is one where many (i.e. hundreds or thousands) of > independent entities on one peer wish to send a request to a remote peer > acting as a server. The server process the requests in parallel and sends > responses to the requests as soon as it can so that senders don't block on > the slowest response. I think this answers your question about MSG/ANS. My > reading of the RFC implies that although multiple ANS can be sent in any > order to a single MSG. The processing of multiple MSGs on one channel is > still performed serially, right? true. but i was perhaps too subtle in my explanation. darren's use of MSG/ANS in the syslog profile is rather inspired: the server sends a MSG and the client streams back zero or more ANS. now, if i wanted to do your application with a vanilla beep engine, i would have each side send a MSG to the other. i would then allow each side to put their requests and responses in the ANSs that get sent back. although there's an extra level of wrapping here (you put request numbers in the data you send and the BEEP msgno's are opaque), you can implement whatever policy you want all over one channel... > Now I could use a pool of channels. But this seems wrong for several > reasons: > > 1. I would like to use channels for semantic purposes - i.e. they are > strongly associated with the meaning of the message. If I don't do that then > I have to layer another addressing mechanism on top of that provided by > BEEP. BEEP, itself, associates channels with message purpose by assigning > channel 0 as the control channel. i'm not really sure i understand the concern, even though i agree with the first sentence. you can certainly define a profile that says each MSG/RPY contains an opaque blob (or whatever you want). > 2. If I'm going to have a pool of channels, why not just have a pool of > sockets instead? OK, I know there are some reasons but the more that I have > to layer on top of BEEP, the less compelling is the argument for using it. firewalls, redirectors (IP address shifting), NATs, etc. > 3. If I can implement parallel MSG/RPY over a single logical channel, then > BEEP could do it over a single BEEP channel and save me the bother. i agree. hence your original comment about defining a new BEEP feature... /mtr