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