I've made the analogy between digital identity management architectures and city planning. A recent article in the Architecture Journal (from Microsoft) takes this analogy to it's conclusion with a well written piece that outlines the parallels and shows how what we know about city planning can inform our questions about SOA governance. The article cites these parallels between the two domains that indicate that ideas from one can be profitably translated into the other:
- The distribution of design
- The constancy of change
- The need for progressive improvement
- The recursive nature of the architecture
The article references and builds on an earlier article by Peter Helland that lays out the analogy in some detail and makes a case for one of the architect's best tools, standardization. Helland makes the following points:
- Progress requires standardization. (According to Helland, people didn't even wash properly until they had standard clothing.)
- Standardization is associated with commoditization.
- Standardization requires concentration of power (and if this involves pathological distortions of socio-economic relations, so be it).
- Infrastructure requires central investment. (Since we may regard infrastructure as an act of local standardization, it follows that it must involve concentration of power.)
- Central investment preserves the "sacred" or most important design features.
I just finished a review of Systinet's Registry 6.0 product for InfoWorld (to appear) and I'm in the process of reviewing Infravio's registry, X-Registry. Registries are a good example of infrastructure that requires a central investment, supports standardization, and enables governance. Without a registry, or something like it, for example, its difficult to manage the set of services that are considered "production" and support a QA process that promotes services to that status.
SOA governance calls for a careful balance between central power and distributed development and operation. The central power must enable interoperability without destroying the benefits that are gained from distributed, loosely coupled services.
Cynics of IT organization think of this process as a pendulum that constantly swings from "centralized" to "decentralized" and back again. I disagree. I think we're getting better at understanding the right balance between both models and I see real hope that hybrid models that find the right balance are closer than they ever were before.