Via Jeff, this odd historical observation;

SOA is build[sic] upon 15 years of experiments in creating highly distributed computing environments […]

See, that’s exactly the problem. Fifteen years ago, the IT world was living in RPC utopia; DCE, ONC, with CORBA just getting off the ground.

Fear any system designed with those kind of blinders on, because the industry – just a different part of it – has been building very large scalesystems for about 35 years now.

If you’re missing out on the lessons learned during those 20 years in your SOA projects, drop me a line.

The new Yahoo Maps API described with RDF Forms;

<rf:Indexable xmlns:rf="http://www.markbaker.ca/2003/rdfforms/"
              xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
              rdf:about="http://api.local.yahoo.com/MapsService/V1/geocode">
  <rf:indexedBy>
    <rf:IndexParam rf:shortName="appid">
      <rdf:predicate rdf:resource="http://developer.yahoo.net/faq/index.html#appid"/>
    </rf:IndexParam>
  </rf:indexedBy>
  <rf:indexedBy>
    <rf:IndexParam rf:shortName="street">
      <rdf:predicate rdf:resource="http://en.wikipedia.org/wiki/Street"/>
    </rf:IndexParam>
  </rf:indexedBy>
  <rf:indexedBy>
    <rf:IndexParam rf:shortName="city">
      <rdf:predicate rdf:resource="http://en.wikipedia.org/wiki/City"/>
    </rf:IndexParam>
  </rf:indexedBy>
  <rf:indexedBy>
    <rf:IndexParam rf:shortName="state">
      <rdf:predicate rdf:resource="http://en.wikipedia.org/wiki/State_codes"/>
    </rf:IndexParam>
  </rf:indexedBy>
  <rf:indexedBy>
    <rf:IndexParam rf:shortName="zip">
      <rdf:predicate rdf:resource="http://en.wikipedia.org/wiki/ZIP_Code"/>
    </rf:IndexParam>
  </rf:indexedBy>
  <rf:indexedBy>
    <rf:IndexParam rf:shortName="location">
      <rdf:predicate rdf:resource="http://en.wikipedia.org/wiki/Location_%28geography%29"/>
    </rf:IndexParam>
  </rf:indexedBy>
</rf:Indexable>

Ideally, such a form would be returned on a GET to http://api.local.yahoo.com/MapsService/V1/geocoding when application/rdf+xml is declared in the Accept header as the preferred representation format.

I grounded most of the parameters in Wikipedia URI space, but Yahoo might want to be more precise and define their own terms where Wikipedia isn’t suitable. Also, Wikipedia doesn’t yet do RDF, so you can’t get any of the (eventual) goodness that comes from WebClosure. Of course, the form is useful without that.

Via Lauren, another quiz.

You scored as Couch Potato Cat. Decorative pillow? No, that’d be you sitting on the couch, even still. Hmm. . . I’m guessing you have Web TV.

Couch Potato Cat

92%

Drunk Cat

67%

Love Machine Cat

50%

Nerd Cat

50%

Pissed at the World Cat

33%

Derranged Cat

33%

Ninja Cat

8%

Which Absurd Cat are you?
created with QuizFarm.com
Bingo! “The semantics of a remote method invocation interface are different than those of a local interface, but to reduce that to a RemoteException that needs to be added to the method signature is just plain missing the point.”
(link) [del.icio.us/distobj]
Ho hum, another RESTful API for a large scale system. Surrender now, Web services advocates, the people have spoken; protocol dependence is GOOD
(link) [del.icio.us/distobj]

Tony hits the nail on the head

What is SOAP? It’s an HTTP POST containing XML, and an HTTP response containing XML. You can make an echo server by – here it is – simply serving a static XML file. That’s it. Just put an XML file on your http server and you’re done.

Indeed.

Alternately, if you feel the need, you can POST the content to the echo service. If you want to wrap it in SOAP too, even that’d be fine. Just watch that immediate child of soapenv:Body, because what you ABSOLUTELY do not need, is an “echo operation“. You just need the content to be echoed, and the address of the service; document in, document out.

That’s document exchange. That’s REST.

Can we get some real work done now, please?

Eve concludes an interesting post about DITA with an observation on SOA;

The trend in distributed computing is towards service-oriented architectures (SOAs). Early in the life of this buzzword, some people said it should really be called a document-oriented architecture (except for the unpleasant acronym :-) because it’s really all about document-passing rather than a tightly coupled RPC paradigm, that is, if you want to be successful at reusing the components.

Document passing, yes! Hmm, anybody know of an existing system anyplace that’s good for passing documents around? 8-) 8-(