The WS-ReliableMessaging specification has been updated and published on MSDN. A few points:
- Here's my summary of the changes between this version and the previous version:
- Supports Negative Acknowledgements
- AckRequest takes a MessageNumber as a child element
- Explicit support for CreateSequence and TerminateSequence requests
- Policy support for Create and Terminate Sequence
- Fault defined for CreateSequence
There are other minor differences of course (like namespaces and better explanations in certain parts), but I think I got the major differences.
Message persistence (durability) considerations do not affect the wire protocol and are not addressed by it. As mentioned above (in the discussion about acknowledgements), WS-RM ensures transfer, not processing. Persistence requirements have to do with the storing of the message on the destination until it is processed, and are thus the responsibility of the implementation.
Since persistence is a common aspect of reliable systems, an implementation of WS-RM would typically provide it (at least as an option). If provided, a typical implementation would only acknowledge transfer after the transferred message was persistently buffered.
It is interesting to note that because persistence is not related to the wire protocol, applications can be programmed with the same simplified communication error-handling model regardless of the persistence capabilities of the system.
Basically, this is saying that WS-ReliableMessaging is a wire protocol spec and it isn't going to talk about implementation details like message persistence.
-Matt