I’m always a bit worried when someone has “the answer.” Lot’s of red flags go up when someone tells me: this is the problem and this is how you solve it. Perhaps I’m just that kind of person.
I had a recent exchange with Alex Maclinovsky over at Sun. Very practical guy. Love his stuff. We were discussing the idea of whether a common information model was a valid thing to kill off JaBOWS. He agreed that is would be a really good thing, but that it is impossible to create. I think his point is that we should have a model to refactor services as time goes on, and thus create a consistent set of services in a bottom up manner. (Alex: I hope I understood you correctly).
So, when Alex suggested that it is a good idea to use a common information model, but that it just ain’t gonna happen, I guess I reacted in my gut.
That’s a very short term perspective.
The problem at hand, most days, is building services for your app to expose, that others can use. That is the short term view, and it is VALUABLE. That is where the rubber meets the road. In that respect, I agree with Alex. We need to have a way to create versions around services, and to migrate them towards a cleaner model as time goes on. To that end, Microsoft Consulting Services has created an open source project to ease the transition of service versioning called the Managed Services Engine. I recommend all readers working in SOA on the MS platform to check it out.
On the other hand, if we take a short term view, without considering the long term, we can still end up with JaBOWS. And that is the battle I have staked out. It is a longer term battle.
So when we define the problem, it is fine to recognize the value of “extensible services” but it is dangerous to ignore the need for a destination… a place where we want to extend them to.
The interesting thing, really, is that Microsoft has a number of internal initiatives around creating a common information model. There are at least four that I know of. All of them are fairly complete. Of course, they are different. So the problem is not that we cannot create a model that covers all aspects of the business. The problem is that we can’t get it to be recognized as a common model that covers all aspects of the business. The difficult word is ‘Common’.
We are working on it.
That said, the areas where we agree are immensely valuable, and even the areas where we disagree offer value because, in any one area, there are two “right” answers which means that, if you want to get things done, it is easier to pick one of them rather than create a third. So we get governance via politics. Not efficient, but definitely effective.
So when we attack JaBOWS, let’s have short term solutions. Let’s include service extensibility. That’s great.
But let’s also include longer term solutions. Let’s let the “impossible” remain as a goal, because you will find that by keeping that impossible goal in mind, we end up getting there.
So many of our dreams at first seem impossible, then they seem improbable, and then, when we summon the will, they soon become inevitable.” (Christopher Reeve)