Thursday, October 25, 2012

Message formats: death of XML?

SOAP web services are becoming old-fashioned.  The REST approach is really taking off.  A lot of things are moving in the world of protocols and data serialization:
AvroGoogle

And a long list of other message formats. This evolution brings a "have seen, done that" feeling.  I remember very well the CORBA and (D)COM wars, with the respective binary protocols. And the use of IDL (Interface Description Language) to describe message formats/structures.

XML has its strengths (Internationalization, human readable, schema language) and its weaknesses (verbose, complex, XML namespaces). But XML is - eh was - a well accepted message format, supported by all sorts of tools, in particular ESB's.

In the REST vs. SOAP debate, I often get the argument that SOAP is complex.  When sticking to the basics, SOAP is a very basic envelope around an XML data structure. 
<soap:Envelope>
  <soap:Body>
    <GetPhoneNumberInfo>
      <PhoneNumber>0479273658</PhoneNumber>
    </GetPhoneNumberInfo>
  <soap:Body>
<soap:Envelope>
Yes, it is document/literal wrapped style, but complex?

Had Javascript (soap.js?) been there from the start to ease the live of Web developers, things might have looked differently.  The use of the (ugly) DOM model to represent and manipulate HTML page structures is accepted.  But the use of XML for message payloads is not acceptable.  With JSON being the big winner.

OK, XML may be getting outdated.  But please, let's come up with a widely accepted, well standardized alternative.  And let's stick to the human readable alternatives, life of all the IT support people is already challenging enough.  And let's make the security guys happy - and ourselves - with well defined schema language(s) !  Maybe Schematron?

Note: Remember well how my colleague Luc Gevaert came up with a human readable, compact message format for service oriented solutions.  We implemented the "Generieke Middleware Laag" at Interpolis in 1998/1999 and the "Generieke Service Laag" at Rabobank in 2000/2001.

Note: A related topic on my to-do list is translation between JSON and XML, not a trivial subject.

No comments: