on SOAP

gnat on 2002-04-25T21:34:09

(too long a response to Ziggy to be just a comment)

It occured to me today that "RPC" has three of the four letters of "CRAP" in it :-). SOAP is just RPC with a ton of hype mixed in. It's yet another "let's throw away the crap we have and make some new crap" RPC, in the same vein as DCE-RPC and CORBA.

It reminds me of object-oriented programming. Underneath it, there are some good ideas. I've chosen to write OO code and like it. I've seen much more shitty OO code and hated it. Similarly, there are good applications of RPC (whether it's CORBA, SOAP, or your own home-brewed rubbish). The only promise of SOAP was that everyone would standardize on an RPC system that was simpler than CORBA. (Standardizing good, because then you don't need to learn and maintain five billion different RPC libraries)

That was the promise. Then the S in SOAP stopped standing for "Simple". The SOAP standard is complex, and by forcing WSDL and UDDI into your mouth while you're licking your lips at the promise of a standardised RPC system, the web services folks have done their best to shit in their nest.

The REST v SOAP v XML-RPC debates are tedious because it's not how that's important, it's what. What are you doing with RPC? You could use SOAP-over-ham-radio or a simple xml-returned-from-a-URL interface and I still won't give 1/10th the shit I did about Google. Why was Google's SOAP interface cool? Because it lets you write programs that treat the meta-information of the web (who links to whom and other popularity/similarity scores) as a data source for your own programs. Amazon's associates interface does the same things for books, but books just aren't as sexy (to most people) as the whole web.

If all the smart bastards who spend their days squatting over Google's API, or claiming that POST-only is a major flaw in SOAP-over-HTTP, or wondering whether there's a "there" there in RESTland put their heads together and designed RPC interfaces to things like the 1911 Britannica, IMDB, the National Atlas, and TIGER, we'd have some amazing things possible.

My parting thought: "Web services" is unstoppable! We'll have to change everything! It's a movement! All those statements are just as true of diarrhoea.

--Nat


Sideissue

koschei on 2002-04-26T05:20:07

SOAP is still simple. At least if you're using SOAP::Lite. SOAP itself may well be complex, but damn it's good to have abstraction layers =)

Punditry

Matts on 2002-04-26T07:41:25

At the end of the day we're just saying it's wrong because we're pundits.

Well OK it's a bit more than that - we can see the problems with SOAP, and we'd like to make sure the world is aware of them, so that they don't get 5 years down the line and end up with the same nasty problems that HTML ended up with.

But then again, HTML coped, didn't it?

SOAP Sucks. No wait, it Rocks. Or does it?

Movement?

ct on 2002-04-26T13:46:31

I agree with you.

Wasn't PUSH once a movement as well? Services like pointcast were to change the net.

"Pundits" even declared the death of the browser. (Though calling Jesse Berst a Pundit is like calling Britney Spears an Artist).

Push even made an appearance on what was, at the time, a geek touchstone, the cover of WIRED.

A defined way to get structured information off the "web" is a good thing, as the Google API proves. But whether web services will drastically alter the way of the web, I'm not holding my breath.

SOAP as CRAP?

ziggy on 2002-04-26T14:24:04

It occured to me today that "RPC" has three of the four letters of "CRAP" in it :-). SOAP is just RPC with a ton of hype mixed in. It's yet another "let's throw away the crap we have and make some new crap" RPC, in the same vein as DCE-RPC and CORBA.
I like the title of Matt's talk at OSCON this year, because it highlights that there's a good idea lurking deep underneath the hype that is SOAP.

RPC is fundementally a good idea. It has a sordid history with CORBA, DCE, COM/DCOM/whatever, and many poor reimplementations of these basic ideas. But we also use CGI, mod_perl, etc. quite heavily to build web-based systems.

At the same time, for all of the pontificating about the beauty of REST, there's something fundementally wrong with the fact that the basic communication mechanism between a client and a server shouldn't need to be reinvented for each and every application.

The debate is really about this: some transactions are fundementally RPC-ish. Others are fundementally web-ish. Still others have the wave/partical duality. Opening a trouble ticket, for example, is something I'd want to do with an RPC mechanism of some sort. Using the right libraries and a couple of magical incantations, I want to get a trouble ticket or a bug report posted. But viewing a trouble ticket could go both ways: I could want to inspect the current state of that trouble ticket and process it somehow (RPCish), or I just want to view all of the data currently associated with that trouble ticket (RESTish, either in HTML or XML).

Web services

pudge on 2002-04-29T17:34:43

When web services first "came out" in their latest form, I asked, "so what?" I wanted to do stuff with it. For the longest time I couldn't do a damn thing of interest, except for talking to Zorknapp. Now I can query Google. You want me to use REST? Let me do something cool with it. The bottom line is that I don't care which is better in the lab, I want to do cool stuff with it.

That's not to say people shouldn't argue about GET and POST and complexity and whatever else. They should. Because I want the standards to be good. And most of them are not. But when all is said and done, I'll use the best of what is available.

Re:Web services

gnat on 2002-04-29T20:27:51

Rumour has it that the Amazon Associates API is RESTish.

--Nat

Re:Web services

ask on 2002-04-30T02:43:43

yeah, it is.