SOA Frameworks and Vendor Support
SOA seems to be getting a lot of press lately. It is the next defining (or disruptive) technology that will change enterprise computing for ever. Being a field consultant for an integration software vendor, I have had my share of exposure to organizations and their quest to enable SOA.
One of the first realizations you have when you start on such a venture is that nobody really has any idea about what it takes to enable SOA in the enterprise, not even the vendors. The one thing most people agree upon is to establish and enterprise-wide SOA framework.
Why create an enterprise SOA framework? (Few reasons that come to mind...)
- Ease of adoption - an enterprise framework will facilitate the adoption of SOA by centralizing the critical architecture and strategic planning functions and empowering application teams to concentrate on solving specific business problems
- Leveraging Core Infrastructure Services - Core infrastructure services include services such as location, security and rule-based routing. These can be federated services that are consumed by all business level services. Again (at the expense of sounding like an old record) aligning IT closer to business, where business developers don't need to worry about coding for security etc.
- Vendor Neutrality - Yes, as nice as Mr. Salesguy is, we want to be vendor neutral. Building our own framework will be one of the best ways to ensure that we can move from vendor to vendor without affecting "business applications"
"SOA" enabled integration products seem to try to do a lot of things for you. Such "ease-of-use" is helpful when adopting SOA especially if the implementation is quite straightforward.
You will be almost entirely satisfied with the product if you are willing to use the vendor provided location, security and routing services. Also if your requirements do not dictate the use of a transport other than those supported "out-of-the-box".
What most of these products don't address are the needs of a complex enterprise that needs an additional SOA framework layer.
What the heck do I mean? (Some scenarios that might drive you to override default out-of-the-box functionality)
- How would I augment the security functions of a product so that I can leverage an existing legacy authorization provider?
- I have a UDDI tree, I want the routing feature to override the endpoint specified in the incoming WS-Addressing header with the one returned by this UDDI query
I believe there are two hurdles SOA vendors need to overcome.
- The relative lack of maturity of WS-* standards
- The relative novelty of SOA products
The ultimate SOA platform will be one that will allow for flexibility. A pluggable framework that will allow users to provide custom extensions as necessary.
Such a product will not only allow both vendors and users to "fill-in-the-blanks" left by incomplete or immature WS-* standards, it will also allow vendors to provide "out-of-the-box type solutions while enabling more demanding users to override the defaults.
To me, what is most ingenious about the US Constitution is that it allows for the flexibility to change and adopt as times change. The founding fathers have acknowledged that there is no possible way for one group (even as brilliant as themselves) to possibly conjure the "perfect" solution, therefore they allowed for flexibility to ensure the longevity of their creation.
Now if only we can get our integration vendors to understand this....
