Web services represent the latest effort of the information technology industry to provide a framework for cross enterprise automation. One principal characteristic of this framework is information hiding, where only the message protocol is visible to other services or client software. This environment makes it difficult to provide robust behavior for applications. Traditional transaction processing uses distributed transactions. But these involve inter-site dependencies that enterprises are likely to resist so as to preserve site autonomy. We propose a web services interaction contract (WSIC), a unilateral pledge by a web service. A WSIC avoids dependencies while enabling, but not requiring, an application to be written so that it can provide exactly once execution semantics, even in the presence of failures. And exactly once semantics is essential whenever commercial interactions involve money.
David B. Lomet