How long have we been pre-occupied with syntactical well-formedness when we integrate business systems? Too long! In my experience the vast majority of our combined efforts are spent trying to fit the round peg in the round hole, building tools and approaches to simplify the process of matching every character in our XML instance documents with what little we consider to be an interface contract which itself if dominated by an XML Schema and precious little else.
As we expend so much effort squabbling over traditional flash-points such as element ordering, XSD precision or lack-of, schema version comedy and so forth, we’re actually missing the fundamental god-given right to freedom of expression. What I mean by this is that there is a better way, and that better way means we should be able to actually remove the need for such sensitivity about the representation of our information, and rely more on how we communicate the meaning of that information.
To explain this further let’s consider how the MIME-Type, something rarely discussed in SOAP/WS* oriented integration designs, is now our friend as a result of the resurgence of understanding of the true HTTP protocol thanks to Mr Fielding’s spotlight on the RESTful architectural style. REST actively enables a situation in which representation of subject resources/information can be stated and negotiated dynamically at run-time (thanks to the Content Type and Accept HTTP headers). This flexibility also means that a service consumer can drive an interaction with a remote system in a way that is optimal to the consumer. This empowerment removes some of the syntactical compliance head-aches traditionally associated with our EAI ancestry.
Taking the REST MIME concept further – I believe that we should also be able to decouple our integration points even more, effectively dispensing with any real syntactical agreement in our service contracts, whilst increasing the quality and reliability of our distributed systems? How so?
If we focus more on annotating our message representation in such a way that we can more adequately express formal semantics based on global or locally agreed ontologies (RDF/OWL for example), then our integration infrastructure can rightly be expected to manage the transit of any group of characters over a wire (XML, CSV, TLV, blah, blah…), delivering ‘information’ to a semantically aware processor more interested in resolving content based on an agreed ontology.
This shift means that our next generation Enterprise integration stack needs to learn from REST, incorporate elements of the Semantic Web movement in expressing ‘the third dimension’ of integration contracts, and spending more time discussing the business information/transaction instead of getting embroiled in the wasteful practice of bending our systems into forming brittle, badly-specified and semantically-devoid XML crunchers – and then crying into our beers about the fact that SOA doesn’t cost-in and that we were let down by the hype-mongers ??.
This is how I believe we’re spending time in the trees but not actually seeing the wood. I can safely say I’m no longer a tree-hugger from this point onward…