Some of fellow bloggers pointed out the following post on zapthink .Some of the situations this article points out IMHO, are not applicable or non-existent .
1) homogeneous environment : In a real world enterprise you will never know if you have such an environment , as the leadership changes the technology a company adopts changes , an application you are writing today for a homogeneous environment may not be operating in one , a year down the line or even 6 months down the line .Moreover isn't it one the goals of SOA is to be able to write application which can evolve/adapt to changing environment so environment should not matter.
2) Real time performance is critical . This may be applicable in the present scenario while we are still working on the infrastructure and tools to enable SOA , but few years down the line will this be applicable? Recently in one of interviews on theserverside.net Don Box talks about taking the SOA model down to the level of in process / cross process communication . As we invest more into the protocol and network stack things will be better . SOA is more of a paradigm and its the implementation that will make real time “enabled”.
I have seen some “SOA” based architecture designs , i think the challenge here is to how to factor SOA in a design . How to make a distinction as what needs to be service and what needs to be component. What are the boundaries where messages are exchanged and where method calls made. With the current infrastructure that is available for developers this clarity is important . As implementations become better this may become less imperative.
This posting is posted “as is” and guarantees no warranties and confers no rights