Monday, October 26, 2009


A group of very smart and respected folks have put together a SOA-Manifesto.  You can find the Manifesto - .  Overall it's pretty high-level stuff but good stuff.  I have one big issue however with one of the principles.  "Intrinsic interoperability over custom integration".  If just glanced at it sounds like something that makes sense but the devil is in the details.
Intrinsic means in this context that services using some sort of standards should do the talking between your existing applications versus doing "custom integration".  This concept is going to be confusing to an average IT shop.  The question will arise what's the difference between putting in a service and putting in a custom integration solution?  How do I get to the last mile of the interface with a third party application?  Or do you mean my services should contain all the business logic?  But isn't that custom because you had to write it?  Standards based stuff is fine but it's still custom if you have to write the service.  Sounds like a lot of academic semantics I know but I think its important to understand some important principles.
Unless your entire business portfolio is going to be made up of custom services that you write then you are going to have to do some integration.  It's just the nature of most businesses.  My problem with "Intrinsic interoperability" is that I believe it will lead to a spaghetti set of custom integrations.  The very thing it was trying to avoid.  Custom is custom.  In other words if you didn't buy it then it's custom.  Whether it's "standards based" or not has no bearing on whether it's custom or not or whether it becomes spaghetti or not.  I think well defined distributed services that have "Intrinsic interoperability" are going to be beyond the grasp of a lot of IT shops both to develop and certainly to maintain/govern.  If you are going that route be sure to go over to Todd Biske's site -  and study up on governance (Going to need governance regardless, but for distributed "Intrinsic interoperability" you really going to need it).
Ultimately I believe the "Intrinsic interoperability" piece was put in to kind steer folks away from ESB's and the older EAI model of integration.  While I understand this from a pure academic view, I think in the actual wild it has issues.  It has the same issues that ESB's and EAI had because of lack of understanding of the methodology that went along with successful implementations. 
Overall the SOA-Manifesto is a good set of guiding principles.  Having a set of principles like this that everyone in the organization understands and embraces can go a long way to developing and maintaining a successful SOA style of architecture.

1 comment:

Jordan Braunstein said...

I also think there are a few holes on the manifesto, so I also blogged on it: