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.