Lists Home |
Date Index |
- To: firstname.lastname@example.org
- Subject: REST, SOAP, Speech Acts and the mustUnderstand model of SOA communications(was: Re: What Does SOAP/WS Do that A REST System Can't?)
- From: Sean McGrath <email@example.com>
- Date: Fri, 01 Apr 2005 08:21:05 +0100
- Organization: Propylon
- Reply-to: firstname.lastname@example.org
- User-agent: Mozilla Thunderbird 0.6 (Windows/20040502)
Whatever about the pros and cons of REST versus SOAP, I think it is
abundantly clear that the mustUnderstand model  is a key concept in
developing loosely coupled systems that can evolve independently.
I would like to suggest that the mustUnderstand model is sufficiently
important that it should be added to the xml namespace alongside
xml:space and xml:lang.
I'm a big fan of conceptualising XML message exchange in terms of
Speech Acts. To make the most of the power of this abstraction, I
think it is necessary to extend the coarse boolean mustUnderstand
model into a more fine grained model that matches the way speech acts
are used in the real world.
I would like to suggest that xml:mustUnderstand be an enumeration with
a number of positive integer values, the semantics of which, should be
part of the specification. I can think of five.
Additions/comments on these welcome:
xml:mustUnderstand="0" - It is permissable for the recipient to not
understand the message fragment. No specific directions about the
speech act semantics in this case.
xml:mustUnderstand="1" - The message fragment must be understood,
otherwise the conversation must fail.
xml:mustUnderstand="2" - reciever must claim to understand, even if it
does not. The sender should have not be able to tell whether or not
the receiver really understands or is simply claiming to
understand. This is particularly useful in the service industries.
xml:mustUnderstand="3" - receiver may at first issue one or more
failure responses indicating that it does not understand the message
fragment. Then, without any action from the sender other than retries,
the receiver begins to understand the message fragment. This has many
applications in the political arena.
xml:mustUnderstand="4" - reciever may claim to understand the message
fragment one or more times and then begin issuing failure
responses. The failure responses should indicate that the message was
never understood and assert that the receivers behavior has been
consistent in this regard all along. This has many applications in the
media and in academia.
xml:mustUnderstand="5" - reciever may claim not to understand but,
unknown to the sender, may act upon the message fragment. This has
many applications in e-commerce.