Philosophical Split Hurts Web Services Adoption 25
Avidwriter writes "'There is a serious split in Web services implementation philosophy that is threatening to stall the benefits of the technology to businesses and consumers,' says this Devchannel story. 'The WSDL 1.1 specification allows programmers to choose between remote procedure call (RPC) style and document-style Web services. The decision is not an arbitrary one, as it has ramifications for both message structure and more importantly the interoperability of Web services...'"
Of course it's a problem... (Score:3, Insightful)
If you want to do a real Web service, use REST [conveyor.com].
Re:Of course it's a problem... (Score:2)
Always sucked.
Fits into a model of security where the 'remote' is a part of your "Trusted Computing Base."
Flawed, almost all-around.
Re:Of course it's a problem... (Score:2, Interesting)
Re:Of course it's a problem... (Score:1)
Precisely. HTTP is simply a convenient protocol to use, because firewalls almost certainly allow it through. Single-click generation of RPC-style "WebServices" apps looks impressive at conferences, but perhaps just saves the developer a bunch of keystrokes.
At DevWeek London *February 2002* Don Box spoke [microsoft.com] of this RPC-vs-Document conflict, coming out (IIRC) in favour of the Document ("messaging") model.
I'm surprised if the issue really not been largely resolved since then.
Little summary and comment (Score:4, Insightful)
For example, it is incorrect to assume that a request-response programming model dictates an RPC-style message format. The Document style can also be used for request-response communication.
And in this regard, he chose his side:
In this case, Microsoft is right. Document/literal Web services are a better choice for data interoperability. While focusing on JAX-RPC instead of JAXM is in line with Sun's attempt to simplify Java development, it's the wrong approach for Web services.
Then the followings are mainly pointing out the flaws in Apache Axis.
First of all, I can see in his article what Axis does wrong. However, I don't see how Microsoft's way - Document/literal Web services - could solve the problem.
I've mixed feeling about his arguments. First I do think the present RPC implemention in WSDL is getting out of hand(chaotic and complicated), but if we could only do document style transfer as he said the Microsoft's way, why the hell should we consider adopting WS in the first place? Isn't what SUN and Apache(and IBM, he didn't mention) does exactly what we really need for interoperative protocols?
To put it simpler, in the pure document transfer model, the processing logics will lie in the senders and receivers. That is defeating the major merit of WS on interoperability, where the processing logics are not hard-coded into one framework.
The author is a scientist in DOD and he really has some insight in WSDL, but if WSDL is really implemented in Microsoft's way then many wouldn't even consider adopting WS in the first place.
Re:Little summary and comment (Score:3, Insightful)
I mean really!
No, joking aside, its remarkable the extent to which this is all just unmitigated editorializing without the slightest good reasoning to back it up. Not to mention that I pretty strongly disagree with the notion that "RPC is bad". If anything, I'd actually go as far as to say that I think that SOAP is far to
Re:Little summary and comment (Score:1)
If it's "it is", it's "it's" not "its". I used to confuse them as well, but I couldn't resist commenting on the comment complaining about apostrophe's.
Yes, that last apostrophe was meant to fuck with you.
Re:Little summary and comment (Score:3, Informative)
I think the author may be expressing, among other things, an idea like that it may be cleaner to implement an RPC style interaction model on top of a Document style interaction model than vice versa, to define a protocol in terms of message formats than in terms of an API, to implement a blocking API on top of a non-blocking API than vice versa. Not a statement of fact so much as rejecting a choice between A or B in favor of thinking about what will be the best way to get A and B.
Larry
Re:Little summary and comment (Score:2)
Well, you can't use HTTP then. It's pure request-response.
(Unless you do things that are frankly impractical.)
If you implement RPC over REST, you're implementing
a blocking protocol over a non-blocking protocol over
a blocking protocol. Frankly, stupid.
But then RPCs always were stupid. There are no "calls"
in reality, only events.
DOD project? (Score:2, Funny)
Did anyone catch the (hard-to-miss) part about the DOD project that's trying to fit terrorists into some ontology that also includes "plants" and "animals"? That's so insane, I don't know whether to laugh or cry..
P.S. Yes, I read the article. Sorry. (slinks away in shame)
Re:DOD project? (Score:2)
Looks like we need a new poll to pick our new phylum name. CowboyNeilia perhaps?
Re:DOD project? (Score:2)
:-)
Re:DOD project? (Score:2)
Re:DOD project? (Score:2)
4.1 heroes
4.1.1 romantic heroes
4.1.1.1 Osama bin Laden
4.1.1.2 Satan
Biased examples -- worthless article (Score:5, Interesting)
A Hashmap is a lousy and unnatural way of representing a tree structure in the first place. Why would sending it over a wire in response to a SOAP call result in any less awkwardness at the other end? What if the taxonomy was represented as vectors and sub-vectors? This would allow a much more natural representation, and would result in a much clearer output in response to a SOAP call.
What if the underlying structure was not hierarchical, but was instead a bi-directional circular linked list? Expressing this in a DOM object is possible, but it's ugly and does not flow naturally.
Another thing to notice is how much code was written for the two examples. The RPC-style code is a mere 45 lines total. The Document-style code is shows 130 lines, but notes that many more lines were omitted. At 7 lines per omitted item from class7 to class21, that's another 105 lines, for a total of 235 lines. If you're going to put 5 times as much effort into the result, it's not surprising that you get back a much cleaner response.
Daconta's article should be moderated as "-1 Troll" IMNSHO.
--Paul
Old news - the split has moved (Score:4, Insightful)
Now the pressing question seems to be the REST [conveyor.com]fulness or not of Web Services. See a related Mark Baker's blog entry [markbaker.ca] for illustration.
Re:Old news - the split has moved (Score:2)
Howerver, it's a bit bald-faced:
Even WSDL 1.1 hasn't been adopted by the overwheleming
majority of web services, Monkey-boy's malapropisms
notwithstanding.
Re:Old news - the split has moved (Score:2)
Re:Old news - the split has moved (Score:2)
The lack of a WSDL definition does not make a
thing undefined, or bereft of definition.
Re:Old news - the split has moved (Score:2)
Re:Old news - the split has moved (Score:1)
I've also spent much of the past 5 years studying very large scale systems in extreme detail. Before that, I was a CORBA wiz, so I'm well aware of pros and cons of both architectural styles.
I choose REST because it's superior to Web services in practically every way that is important to large scale systems. Moreover, I reject