There are hundreds of definition for cloud computing, lying around in the internet. I was just wondering why do people give so many defitions for the same thing.
Only after couple of minutes, was I able to figure out that the definitions are targeted for different audience, and not necessarily defined because of the people who were involved in creating the definition could not understand/get it correct.
Then I thought of a common example, rather than a technology.
It's like if I were to define an elephant, one could say it is a animal > mamal > and go on to define it's properties/attributes like it has legs, tusk, eyes, etc. Another definition could be that, an elephant is a domesticated animal in the temple, which is a vital part of the ceremonies in the temple. The later definition is just a subset of the earlier definition. The later may well fit the definition of an temple elephant but not the elephant as a whole.
Now the analogy, the various subsets of the cloud computing could be,
 Building data centers and running software to be consumed.
 Running all the applications online and using browser as the interface to work.
 Flexibility to store any of your data, somewhere in the cloud and pull it out as and when required.
And there are much more of these definitions, let me leave it at that.
The three different definitions of cloud computing above, are all like defining what a temple elephant is. The definitions itself could not be called invalid, say the audience for the definition #2 could be the end users who do not have to worry about the data center or virtualization or what goes behind or beyond their scope.
But for a company that is part of the cloud computing paradigm, all the three definitions are subsets of what cloud computing is in a whole.