When I first read the SOAP
specification I could not decide whether it was meant to be a replacement
for DCOM/RPC or whether it was a messaging protocol. I loved the fact that the
ligua franca of SOAP was XML. But at the same time, Section 5 supported
the RPC view of SOAP. Unfortunately this section seemed to just confuse the
issue between the RPC world and the document/literal world.
In a great MSDN
Article, Tim Ewald argues against support for Section 5 support. I guess I
haven't been keeping up, but I am excited to hear that Section 5 support is now
optional in SOAP 1.2 specification. Yeah...but will Section 5 really ever
die?
As I started playing with .NET's Web Services Framework some years back, I
was excited and dishearted at the same time. It supported doc/literal by
default, but it seemed to want to hide the fact we were using XML in any
fashion. How unfortunate.
Tim recently gave a great talk at the Web Services DevCon about this
very issue. Now Tim seems to want to go farther than I would (wanting to deal
with all SOAP messages as XML Streams), but I think he is on the right track.
Instead of creating .NET types (or Java Types for that matter) when defining Web
Services interfaces, I think we should be defining XML Schemas that define the
interface. This would allow us to remember we are dealing with XML without
having to intercept the XML streams directly. It seems to me that the more we
use XML as our Web Service Type System, interoperability between differnet
technologies (e.g. .NET on one end and Apache Axis on the other) becomes less
and less an issue. All the better if the XML documents are well known formats
(e.g. XBRL).