Monday, July 30, 2007

Why Service SLA depends on consumers as much as producers (Sandisk Ultra II v Extreme III)

One of the bits that is often over looked in SOA is the importance of the consumer to an overall SLA for a service (after all the SLA is there to give the consumer assurance). I've been looking for a good example of what I mean and today I found it. I have a Canon EOS 350D, the old entry level digital camera, which is perfect for what I need. I've got 3 different brands of memory cards, all of which publish their performance SLAs. The two that interest me here though are the SanDisk Ultra II and SanDisk Extreme III. The later claims a minimum write speed twice that of the former. However if you lob it into my camera, set it on manual with a 1/4000 shutter speed and then hold down the button for 1 minute you get exactly the same number of shots out. This indicates that the issue isn't with the speed of the memory cards to determine overall performance but the speed of the camera in writing to the memory.

So here we have two services which have identical (one could say "uniform" :) ) interfaces but offer two different SLAs to consumers, these SLAs however place requirements on their consumers in order to be able to deliver the SLAs as advertised.

The point here is that a service cannot offer an SLA that reaches outside of its bounds without also placing direct requirements onto its consumers. Thus a true SLA is not simply something a service describes but is something that is negotiated between the producer and consumer for a given interaction.

Published SLAs are just the tip of the iceberg when it comes to delivering truly effective business SLAs that can be relied upon.

Technorati Tags: ,


Udi Dahan said...

I'm not sure if I only disagree with your example, but here are my thoughts:

The memory card is not what the service in this case. The camera is. The fact that someone (you) upgraded some of the internals of the camera does not necessarily change its SLA. Your expectation that the end result of that upgrade should have been an overall improvement may not have been met, but that in no way detracts from the SLA of the memory card.

If you were to have used the memory card directly, say in a card-reader, you may have enjoyed the improved SLA.

Can you give a different example backing up your more general claim?

Steve Jones said...


Again that is a nice point that you raise, I'm actually the consumer of the total Camera + Card service, in other words there is yet another SLA which is a combination (in terms of pictures per second) SLA.

The card is the service for the camera (if not for me) however as the camera uses it as a storage device, and can accept multiple cards behind a single consistent interface (CompactFlash).

A memory card reader would be another consumer of the card, and would be another (but different example) of something that offers me a service that re-uses the card, in this case something that enables me to read the information on the card.

The card is (for me) definitely a service from the perspective of the reader or the camera, but not the service that I as the final consumer interact directly with.

Other examples that I can think of would be elements like credit cards that say "upto $1m credit limit" but the limit depends on your personal credit rating. Business wise there are things like the amount of elements that a factory could manufacture for a client, if the client cannot sell that many there is no point making that number. These are are variations on a theme of "throughput" and different tolerances of producers and consumers. This isn't the only area however and pieces like security are full of similar examples.

Remember though that just because you don't use something directly doesn't mean it isn't a service to something else.