- From: David Hull <dmh@tibco.com>
- Date: Tue, 15 Mar 2005 23:26:15 -0500
- To: public-ws-async-tf@w3.org
- Message-id: <4237B567.6070401@tibco.com>
I'm realizing, belatedly, that the discussion of async here has been somewhat limited to the realm of request/reply, with some attention paid to a simple fire-and-forget one-way message. I'd like to expand the discourse a bit and talk about async messaging in general as I see it. My thesis, which should surprise no one by now, is that this universe is strictly bigger than request/reply and simple one-way, but looks to be covered by the concepts of one-way messaging, message ID, message correlation and subsequent destinations -- which IMHO WSA is meant to account for, comes very close to accounting for, but does not yet completely account for. Here are a few scenarios I think are worth keeping in mind: * Simple multicast/broadcast. E.g., I blast out stock quotes to all subscribers without knowing who they are. From the sender's point of view, this looks like any other simple fire-and-forget one-way, but the destination is a (dare I say :-) logical address designating the actual subscribers. * Multicast/broadcast discovery. E.g., I send out a "who speaks Pig-Latin?" query. Anyone who receives this is free to send back an esponseray to the esponseray EPR I gave. I collect esponserays until I find enough Pig-Latin speakers, or get tired of waiting, or otherwise stop listening. Respondents may, of course, continue responding after I stop listening. * Request/response/fault/log: This is basically the well-known MEP, but I may also include a logging EPR, to which the server may send zero or more trace messages, perhaps even after the response/fault has been sent back. * Request/response/criticism. I make a request. You send back a response. I don't like your response and I tell you so. You send back another response. I like it and tell you. We shake hands and go away happy. This generalizes to "extended conversations between two parties within a context". I would expect that all the messages in the extended conversation would bear a [relationship] to the original message. * Full-blown dataflow: There are no servers, no request/response MEPs. There are just communicating nodes. Each node understands some repertoire of messages, and for each message it understands, may produce further messages, delivering them either to endpoints of its choosing or to endpoints designated by the incoming message. Disposition of a given message may depend on other messages that have previously arrived, further muddying the notion of MEP. All of these bend the familiar concepts of MEP in various directions, perhaps to the breaking point, perhaps not. However, I don't believe it's unreasonable to expect a distributed architecture to cater for all of them, at least at its core.
Received on Wednesday, 16 March 2005 04:26:48 UTC