Tuesday 21 July 2009

Guaranteeing guaranteed delivery: it's easy...

A man is sitting outside a bar at a table. He raises an eyebrow, the waiter nods back as a sign that he's seen him - the first part
When the waiter is ready, he comes over to his table. "Yes sir may I help you?. "One beer please", the man says. "Okay, be right back" - the second part
After a while the waiter comes back and puts the beer on the table. "Here you go sir". "Thank you" the man says - the third part
Yet a while later, the man winks the waiter again. "Be right with you sir" the waiter says. - the fourth part

"Yes sir?". "The bill please". "Of course sir" - the fifth part
The waiter comes with the bill, the man gives him some money. "Keep the change". "Thank you sir". "Bye". Have a nice day sir" - the sixth part

This is a simple transaction of ordering (and paying for) a beer, divided into multiple sub transactions
What strikes us is that each transaction is started by someone, and ended by someone. Each participant knows that there might or will be another transaction following the current one
If there might be another transaction, no promises are made
If there will be another, the participant ending the current transaction makes an acknowledgement of being the one initiating the next transaction

If you buy something in a store, you get a receipt as proof. If you send an email, you can get a read acknowledgement. If you dial a wrong number, you'll know for sure. If you break the speed limit and get unlucky, you'll get a ticket

This is the way it should be in integration. It's imperative that each transaction is acknowledged technically, but it's a lot more helpfull if it's acknowledged functionally. So, for example, the destination company's backend simply acknowledges an order. It can be done with any tool, on any platform, originating from any softstack. Put two and two together in the originating backend, and any user can see that this SAP or Oracle order was properly received at the very -very- end
Where we went wrong with e.g. EDIFACT is that socalled functional acknowledgements were being generated by the middleware - which is an oxymoron of course

Functional acknowledgements can only be generated by functional systems: the very backend applications themselves

It's a simple mechanism hardly ever implemented because? Well, no idea really. A lot of money is being thrown away by just assuming that messaging is simple and failsafe and every document always contains correct data. Which is wrong. Finding out later of even never that this was the case days or weeks ago, simply won't do in today's globally connected environments where we expect everything to happen within seconds - beit success, or error

0 reacties:

Post a Comment

Thank you for sharing your thoughts! Copy your comment before signing in...