David:
I am mostly arguing that the MSG, CPP/A, and BPSS specs must
be aligned with respect to the concept of non repudiation of
receipt. I think the main function of reliable messaging is to
provide once and only once delivery semantics, rather than
to provide non repudiation of receipt.
In the BPSS specification, a business process may require non
repudiation of receipt without isGuaranteedDeliveryRequired
being set to true. NRR is satisfied by the sending of a business
level signal (a ReceiptAcknowledgement) message.
"The property isIntelligibleCheckRequired allows partners to agree
that a message should be confirmed by a Receipt acknowledgement
only if it also is legible." (lines 725 to 727)
"The way to specify that a receiptAcknowledgement is required is to
set the parameter timeToAcknowledgeReceipt to any proper time
duration other than zero. If this parameter has been set to a
proper nonzero time duration, optionally either or both of the
isIntelligibleCheckRequired and isNonrepudiationOfReceiptRequired
parameters may also be set to �Yes�." (lines 1229 to 1234)
The DeliveryReceipt used in reliable messaging does not satisfy
the NRR requirement specified by BPSS because the MSH does
not deal with payload validation.
The BPSS spec includes a DTD for the ReceiptAcknowledgement
message. An original message digest is included. This is carried
in the message payload and can be used in conjunction with the
RefToMessageId in the message header to provide non repudiation
of receipt.
Cheers,
-Arvola