B2B, State Alignment and Non-Repudiation: not your average ws-reliable messaging can do it

The notion of state alignment is not always well understood. I often hear that Web Services technology are ready for prime time B2B. Well think again. You can surely make them work for B2B but by defining a lot of proprietary conventions and policies that will prove inflexible when you need to expand your B2B horizon. Let me illustrate my point here with an anecdote.

Yesterday something not so funny happened to me. I talked to my credit card company because two payments on my credit card did not happen. I had set up recurring payments and things went without a glitch for a couple of years.

By talking to them I realized that they had sent me an email in April telling me that they were discontinuing on-line statements and in this email supposedly they were asking me to sign up for on-line payment one more time.

As a result I ended with a bill of over $100 of finance charges. Of course they promptly reverted these charges when I explain that I did not think it was a good way to do business (it is close to a scam if you are me).

So here is precisely what happens when state alignment is not guaranteed. They sent a message in the hope that I would understand it perfectly. They did not expect me to send an ack, nor did I got the information that I HAD to send an ack (signaling an important message for instance).

SMTP has some kind of Reliable Messaging capability. Their message would have bounced back if my email address was not valid anymore, but SMTP cannot tell them that I actually read that email.

The conclusion of this story is that misalignment of state for commitments is a really really really bad idea, it is very costly to rewind (I spend more than an hour on the phone to solve this). Imagine, I send you a PO request for a widget, and you send me an ack but I never receive it or I misinterpret it. I go off and buy the widget from another supplier. Now I receive two widgets. How do we sort that out. Is it preferable to avoid being in this situation?

Web Services does not have yet an agreed upon WS-RM spec (which is just one part of the problem), Systinet just released an implementation, as well as Apache, most vendor ignored the problem (e.g. Microsoft just shipped WSE 2.0 without it and probably will have to wait until Indigo comes out, I heard a comment that this would be really hard to support in WSE).

By contract, ebXML and BPSS supports state alignment (aka business transaction) today which rely on ebXML RM and ebXML BTP.

Jean-Jacques Dubray 06/04