Jason Salas' WebLog

On-air and online: making people laugh, making people think, pissing people off

Sponsors

ASP.NET sites that kick ass

Pals with blogs

Podcasts I listen to

Classic KISS: explaining SOAP functionality in plain English by the media

Having the perspective that I do on technology (writing code 10 hours a day and then being a tech journalist the other 8), I get to gain an appreciation for the power of words and how they're used.  Or, as is done so commonly, misused.

I have the utmost respect for those brave men and women who pioneered the SOAP specification.  They're better people than I; way smarter and more patient.  It's those who came after them, the product managers and tech evangelists and media archetypes writing countless articles, tutorials and journals, trying to explain the concepts of a technical concept, that have screwed the whole thing up for us non-genius lesser mortals.  I've staked my claim in the industry as being a guy who can make the complex seem easy, so this irks me a little more than just a bit.

An example of this classic snafu was realized recently when I was researching SOAP's routing capabilities in .NET, namely, through WS-Routing.  I came across a curiosity I sought to explain better: the real reason/purpose/function for the <ACTION> element within a SOAP request message.  The technical definition explains that the element contains a URI, explaining within the message processing pipeline the SOAP message's “intent“.  It seems that most people writing about it don't deviate too far from the spec's description of the element's use, being the intent of the message, and needing to be a URI.  Duh! 

It's funny how something so fundamentally simple can be so misconstrued.  There really isn't a plainclothes description of what purpose the intent would serve, other than being a placeholder for some other use, which I can't seem to find.  But that's not the point I want to make.

Visit the SOAP routing specification for routing for the technical layout, and then try Googling the topic and see how many newsy articles you find that basically regurgitate the same non-descript, safe zone explanation of what the <ACTION> element is really used for, other than intent:

The URI, then, is basically a placeholder indicating a locale, which need not be existing on a network.  So does this mean that I could realistically use the following URI in my SOAP message, as the intent of the message?

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header>
    <mp:path xmlns:mp="http://schemas.xmlsoap.org/rp/"
     SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next" SOAP-ENV:mustUnderstand="1">
      <mp:action>to:light:my:own:farts</mp:action>
      <!-- <mp:action>http://nodomainhere.com/a nonexistingmethod/</mp:action> -->

      <mp:to>http://myserver/somewebservice.asmx</mp:to>
        ...
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
        ...
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

I may be missing something fairly obvious and ranting and raving about something that I just missed...and this is key.  There's simply not enough laymen's terms work out there that'll make the complicated easily understandable.

 

So in short, what I'd like to see from my compatriots in the media is more tolerance for those who don't have M.S. degrees in software engineering and a more proactive attitude towards laying out what we should learn.

Comments

jmj said:

Very funny!

I had the same problem too
# June 22, 2004 3:41 PM

Jason Salas said:

Yeah...why doesn't anyone just come out and say the "action" is the method name and the "destination" is the name of the class to be instantiated? Weird.
# June 22, 2004 4:42 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)