Wednesday, July 04, 2007

Contracts are for producers and consumers

Jetset Dan Creswell is attending a rather interesting sounding conference in Seattle and put up a post around scalability which talks about a presentation he has been to.
A key part of Amazon’s approach to defining service contracts is SLA’s. Conventional wisdom for SLA’s is that they are a one-way contract but in fact they should be considered as two-way contracts (what the service promises and how it is to be used).
Now saying that "Amazon are spot on" might sound like a fan-boy comment, but this really is one of the major issues with contracts and SLAs as they are currently provided by standards and technology vendors. I wrote a paper back in 2005 for IEEE Software on "Toward an acceptable definition of service" which was pretty much all about how contracts and SLAs are important (and I've since talked more about the need for WS-Contract and WS-SLA).

Again this stuff isn't new. Bertrand Meyer's "Design by Contract" approach went into some detail around the concept of contracts, grouping them into three bits
  • Pre-conditions - things that must be true before you call me
  • Post-conditions - things I promise will be true after I complete
  • Invariants - things I promise won't change
It is very sad indeed that the level of formalism available in Eiffel is not present in today's "modern" technologies. Contracts apply to the interaction between consumer and producer and hence should apply to both parties, and they cover the data, functional and non-functional aspects of the interaction. Most importantly for the future of IT and the sharing of services these contracts need to be formally defined, managed and enforced. Having this information on paper helps only in arbitration after there has been an issue, which helps only lawyers and accountants. By having technical standards for contracts and SLAs we can simplify the process of sharing services and better understand the impacts that using a service will have.

Now can anyone think of a good reason why vendors aren't helping to create contracts?

Technorati Tags: ,

No comments: