On the virtues of myopia

I've never been completely comfortable with the SOAP request-response
MEPs distributed state machine.  In the "no SOAP MEPs" world, we can get
rid of it, in the spirit of "the advertising party sets the contract."

An endpoint advertising an in-out operation is advertising that it will
accept messages, ponder them duly, and send responses as per the rules
in section 3 (or something like them).  A client is free to do what it
wants with that information.

Consider two scenarios:

   1. The client sends out a request with a callback endpoint that it
      owns, spawning a listener to catch the response.  The client is
      going through essentially the same state transitions as with a
      synchronous request, to essentially the same end.
   2. A third party is forwarding this request onward to the actual
      server, maybe with some intermediate processing.  It leaves the
      [reply endpoint] pointing at the original callback endpoint, fires
      off the amended request, and gets out of the way.  The state
      transitions are split between the third party and the callback
      endpoint.

The point is that the actual server generally can't tell these cases
apart, nor should it.  It does the same things in either case, and we
don't need to capture what the client, third party and so forth do
around this.  A single non-distributed state machine should be enough.

Received on Thursday, 14 July 2005 20:34:48 UTC