The S stands for Simple
72.249.21.88
72.249.21.88
Also, I like Google's protocol buffers library. It's straightforward, fast, has really nice bindings for C++, Java, and Python, and we know it's stable because it's what Google uses for most of its internal RPC stuff.
"The Stupid, it burnnnsss!"
Hmm, LDAP. I'd hate to meet HDAP.
"A prologue in form of a dialog between a Student and his (somewhat) Socratic Professor" http://www.bruno-latour.fr/articles/article/090.html
What's next?
Sounds intriguing - can you elaborate on why this combination is favoured in particular? Or point to an article that discusses it? It's hard to get widespread adoption if it's not accessible...
incidentally, google protocol buffers seems similar to http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One (ASN.1), which predates XML, but didn't take off.
And AMQP was chosen for the transport layer because it handles persistent messages, transactions, all the routing, buffers messages, etc., etc. I'd have to implement all of these myself, had I chosen thrift.
This is how I ended up with RabbitMQ and ASN.1.
Therefore, XML became more popular than ASN.1. I think the successor to XML (and SOAP etc) will be more human-friendly than XML, rather than more efficient.
That's not to say that extremely efficient techniques don't have a place (they do) or they're not cool (they are).
There are plenty of untaken vertices in the serialization-format hypercube.
However, while the encodings are absolutely sufficient to represent these data structures -- if you so choose -- my experience dictates that keeping serialized messages typed and as simple as possible is advantageous from the perspective of long-term maintenance and interoperability.
But maybe it's just me.
To be honest, I like REST for CRUD of things that are natural resources, but I think it's wasted extra work for operations that are natural RPCs.
The "nuisance" of JSON+HTTP is a backward step in a way, but it lets you solve those problems. Sounds like an ideal solution would be an abstraction with less nuisance, that solves the network issues that it can and gives you access for the others - which may or may not be possible; it's an ideal.
(1) By "network issues" do you mean along the lines of Peter Deutsch's "8 Fallacies of Distributed Computing"? http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Comput...
(2) Regarding "assumptions" and "less brittle", do you mean issues of reading the format correctly, in the face of evolution of the internal structure and/or wire format?
http://www.python.org/doc/2.6/library/xmlrpclib.html
A small criticism : some network overhead (it's XML's fault).
I've just found myself working on a project like that for the first time, and saw this, and started wondering.
My intuition is that SOAP starts becoming unpleasant if you have lots of parties involved and/or multiple platforms. We haven't hit that wall.
Not that I would know from personal experience.
We use WFC between .Net programs, and once you connect to the right endpoint, it pretty much just works. You may have a look at the generated WSDL to see if it's sensible, but for the most part, it is "just plumbing. You don’t need to see it."
We're not stupid enough to try to get WCF and SOAP to interop with other languages, though. We'd probably look at using ActiveMQ, or XML and URLs for that kind of job.
Also the statement that "no one actually uses these other transports" is not true - we use TCP transport in some cases, and it's not that unusual.
There are parts - large parts - of the spec (see the WS-* stuff, e.g. http://en.wikipedia.org/wiki/List_of_Web_service_specificati...) which very few people use or care about, which would probably make full-blooded interop with other stacks very hard. It's sad that we didn't get there yet, but I'm glad that we've got what we do have.
In some cases REST is better. Even MS knows this. See http://msdn.microsoft.com/en-us/data/bb931106.aspx
There's some merit to both those charges, but change is a legitimate response to something not being right yet. What's the alternative?
Not sure why I'm getting downvotes. Its possible that I'm wrong, but it's a more substantial answer than most comments on this topic. I'd like to hear your point of view. Or are only "LOL I agree soap sucks" comments encouraged?
Trying to write these schemas by hand IS hell, but putting blind trust in your toolbox is possibly even worse.