Standardization for interoperability is a good thing. Standards make interoperability possible, make governance easier and cost lower. But how should you go about choosing your favorite standards? In this post I want to tell you the way the Dutch Goverenment chooses and I’ll tell you why I don’t agree. (and note that this is my personal opinion!)
Standards in this sense are choices. Choices to use certain methods and technologies, and also the choice not to use certain others. It’s a way to limit the variation therefor making it easier to exchange date or interact between organisations and between applications. There is however a problem with limiting the possibilities. What happens when certain organisations or applications can’t support your standards of choice? Do you force them to change or do you make an exception? How do you accomodate the diversity that you are confronted with?
When you look at a government, made up of many organisations, and many times more applications, you will easily see that there will be exceptions, there will be diversity. The question is whether allowing diversity, and accomodating for it is a bad thing. I don’t think so. I think that diversity isn’t necessarily bad. However, you will need to be able to deal with it. That’s where ‘Decoupling’ or Loose Coupling comes into play. An intermediate system that ’speaks multiple languages’ will help you translate between different technologies and methods. These systems exist and are called Enterprise Application Integration or Enterprise Service Bus. Using one of those allows you to accept multiple standards and still create integration and interaction between organisations and applications.
The Dutch government has chosen a very specific standard for interoperability: EBMS with SOAP (and WUS if you want an exception). These are pretty nice protocols, but not necessarily the right choice for all sorts of traffic. If you want to exchange large badges of data, you’ld rather choose something less complicated. If you want to have really high performance exchanging lots of small messages, the overhead of these protocols may be unacceptable. How about dealing with applications and systems that do not support these protocols? Should all organisations build (or buy) their own gateway to create EBMS over SOAP from their favorite protocols? I doubt that would be an efficient and effective solution.
The Dutch Goverenment has also chosen to not implement a single central integration platform but to allow the different sectors to create one of those for their own needs. This makes ‘inter-sector-interoperability’ rather difficult. Also, each of these implementations is a rather difficult and expensive project while intra-governement-interoperability still isn’t garanteed. The need for an overarching ESB or EAI to interconnect the sector-based-systems would be the solution, however it isn’t planned.
I believe that the selection of standardization should not be a positive selection for one or a few protocols, it should be a negative selection instead following the next set of rules:
1. Disallow anything really bad (unsecure, unscalable, unstabile etc)
2. Disallow anything proprietary or otherwise non-open
3. Allow everything else, but prioritize by preference
4. Make sure there’s an incentive to choose the preferred standards
5. Accomodate the other allowed standards with a well governed, scalable, secure (etc) interoperability platform.
I hope to here your thoughts on this and I hope you liked this post.