What SOA can learn from cloud computing -- and the other way around

Each concept can borrow from the other, and it's time they started doing so

Lots going on in the cloud computing space these days, and SOA is clearly along for the ride. Indeed, there are many things that cloud computing providers (and that's a rather big category these days) and those building SOAs can learn from each other. I'm just scratching the surface here.

What SOA can learn from cloud computing:

Service design. Those deploying services in the cloud, such a Amazon, TheWebService, Force.com, and others, have done a pretty good job with service design. You have to, really, in order to rent the darn things out. Many SOA project have a tendency to build services that are too course-grained, too fine-grained, or just not at all well designed.

Service expandability. Cloud computing services are designed to expand as needed, and those leveraging cloud services do so because they can get the services, when they need them, on demand. The ability to expand services within an SOA is typically a painful and expensive process.

What cloud computing can learn from SOA:

Service governance. There is little notion of governance today within cloud computing, and thus there is little control and implementation of policies. Therefore, many enterprises are not diving right into cloud computing. Governance, while not always well implemented, is fundamental fact of life with SOA.

Driving from the architecture. Hopefully, if you're doing SOA properly, you're driving it from the architecture to the technology. Within the world of cloud computing, the resources on demand are really the starting point. With cloud computing, the need for a well-thought-out architecture does not go out the window; indeed, it's even more important, considering that you're extending the architecture out of the firewall.

By the way, cloud computing and SOA are blurring quickly.