Tuesday, August 18, 2009

Cloud is nothing but a distributed network Or it is a closed network with a lot of machines. SOA simply means large applications, which are built out of smaller applications. So the key question now becomes how do you scale an SOA application?
Suppose a SOA application consists of 50 different services, or different services running as part of the application? You need to scale these by running the applications somewhere. Now, if they're all running on one machine, it’s not going to scale, right?

So the way the cloud helps SOA is different services in an SOA can run in different portions of the cloud. And communicate via messages asynchronously. It’s a very direct and straightforward and obvious relationship here.
A large SOA implementation requires multiple machines to run. It actually runs best on the cloud or in the cloud where machine configurations can change dynamically. Ideally, the SOA needs to support the concept of dynamic redeployment, meaning if you’ve got 50 services on a given machine and that machine is getting overloaded, there should be a way to automatically stop a service temporarily, move it to a different machine, restarts it onto another machine.
The machine is in the cloud, but the application remains unaffected. The SOA system, the architecture or the infrastructure needs to be able to support this concept of dynamic redeployment. So that is what really makes SOA more compatible with cloud computing.

What I’m saying here is that the SOA infrastructure, to become more compatible with cloud computing, needs to support certain functionality and some of the key functionality includes dynamic redeployment of services at runtime across different computers or different parts of the cloud, if you will. This is increasingly the direction in which the more modern SOA platforms are moving.

Today people do that, but they do it manually. They’ll hire IBM Global Services to put a lot of engineers in there and, you know, manually stop services and move them onto new machines in the cloud. It should happen automatically, right?

So the SOA infrastructure ideally has to match the topology of the cloud. It’s got to be peer-to-peer infrastructure with some form of centralized control. The SOA software and the SOA infrastructure in itself should not become a bottleneck to performance.