(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
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.
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.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.
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).
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.