The XML consensus is breaking down

Aug 15, 2011

It seems to me that there’s 3 distinct camps for how to solve IT problems: Objects, Documents, and Data. You might describe them differently, of course. Objects

This is the heavy engineering crowd, a la Martin Fowler. You design 3GL software using a variety of architectural and engineering tools such as UML. You think in terms of computational models, and RM-ODP. This is the big iron end of town, and predominates in large enterprises, such as finance, telecommunications, engineering process design. Your process should be represented as a series of objects, designed using state of the art patterns, and you should depend on the compiler and other quality checking tools to ensure that your software does what you expect and solves the problem properly.

Documents

This is the internet mob - let’s whack a web server up and  focus on the page content. We can connect things up using internet protocols and some kind of transform. Btw, are we using the latest language yet? (with SGML, of course!). Don’t worry about the whole process stuff, it’ll just slow you down; the only way to get stuff that works is to put it out there and test it. And why pay lots of money for a good design and designer when no team can retain coherence? - crowd sourcing is the way to go.

Data

These guys are focused on data integrity - where’s the data dictionary? If the data is properly described, and nicely slotted, then you can move it around between processes, whatever. Just as long as the repository is good (ISO 11179 anyone?) you can leverage it in all sorts of directions. If you haven’t properly defined your data, it doesn’t matter what else you do. And if you have, well, everything better use this registry, the one source of truth.

Of course, these are caricatures of real life - in practice, most people are somewhere in between. But that doesn’t make them any less real.

XML?

These 3 camps have different ways of doing things. It seems to me, going back and reading my early books on XML, that XML was supposed to unite them all - a self describing format that could represent data objects in documents using web friendly technology. XML would allow all 3 camps to get what they wanted out of one common exchange format.

Well, it seems to me that the consensus that XML can make all these people happy is breaking down (if it ever really existed). I’ve been doing a proposal for the HL7 fresh look task force (more on that in the next few days), and one thing I’ve become aware of is the influence of these camps in HL7. XML? JSON? use Internet data standards, or do things with UML? HL7 can’t design a specification that would make everyone happy, because there’s no such thing. And if you try to do what v3 does - use all the techniques at once to make everyone happy - the product is a permutational explosion of the complexity of each of the approaches separately, something that makes everyone unhappy.

What’s a standards organization to do? (I’ve got my own answer to that, and I’ll be making more posts about it in the next few days)