Memo to everyone.
We are not going to end up with a uniform definition of "cloud".
We have been doing "open systems", "open standards" and "open source" for decades now - and we don't have a uniform definition of "open".
We have been "patching" software for decades and I can tell you there is no uniform definition around what a "patch" is, or what the behavior of "patching" actually entails.
We are developing a Rosetta stone of cloud-ish attributes. And I for one am ok with the Sun definition. I think Dave Douglas, Lew and company have done a good job of making it generally understandable without being overly proscriptive or prescriptive.
For my interests I have a subset of the Sun view.
Pat Cloud is:
Cloud User defines a workload
This is done manually or via automation. The workload is in the form of a "language module" (Java EAR, Java WAR, Python Egg, Ruby gem, Python-Django-AppEngine tar file).
Cloud User moves workload to cloud (either manually or via automation)
The workload uses resources
It dynamically accesses and consumes network, storage, processing, and possibly some value added services.
The Cloud has certain minimal attributes
It has an API.
It takes credit cards or PayPal.
It allows short time window usage (pay by the minute, hour, day, week?)
This works for me - and helps me get a lot of work done. Cheers.