TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Simplicity and Utility, or Why SOAP Lost

120 pointsby keithbaover 10 years ago

30 comments

bradleybudaover 10 years ago
I think this is largely accurate, but one thing the article misses is that SOAP was never as interoperable as it was claimed to be. If you had a Microsoft client and a Microsoft server, things would work great, but as soon as you started mixing vendor implementations, you quickly ended up in configuration hell. For simple SOAP messaging you could usually get it to work with enough elbow grease, but for any of the WS-* protocols you might as well be doomed. I lost days, if not weeks, of work to failed interop of WS-Security across two different vendors (both Java, and both with the code under my control).
评论 #8724644 未加载
评论 #8724479 未加载
评论 #8724295 未加载
Eric_WVGGover 10 years ago
The S Stands for Simple — <a href="https://web.archive.org/web/20140710041718/http://wanderingbarque.com/nonintersecting/2006/11/15/the-s-stands-for-simple/" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20140710041718&#x2F;http:&#x2F;&#x2F;wanderingb...</a><p>a web classic, can never be linked enough times
评论 #8724711 未加载
评论 #8725088 未加载
nolokover 10 years ago
The entire thing hide itself behind a &quot;don&#x27;t worry about how that works, the tools and libs are supposed to do that for you&quot; philosophy, and then those would fail and break so often it was almost comical. You would then end up debugging the entrails of a SOAP exchange, which is one of the most terrible things I&#x27;ve seen.
tfedermanover 10 years ago
I feel like I spend a troubling amount of time as a software developer dealing with and&#x2F;or avoiding solutions that are much more complicated than the problems they&#x27;re trying to solve.
评论 #8724209 未加载
ownedthxover 10 years ago
The fact that SOAP is not reasonably supported in a browser was a huge reason it fell down. When SOAP first came on the scene, complicated AJAX based applications were not typical. But as more and more JSON&#x2F;HTTP APIs emerged in conjunction with browsers becoming more powerful and rich apps build built in them, the meaninglessness &amp; complexity of SOAP grew.<p>Also, another major issue with SOAP is that most all of the popular tools would generate classes based on a WSDL. This creates a toolchain issue that is readily solved for someone experienced, but can really suck if you are new to the idea of generated code working it&#x27;s way into your project.<p>Much worse was the scenario of WSDL versioning in conjunction with these tools that generated classes. If the API never broke backwards compatibility, you should be OK and can just use the newer class representations, counting on the service and tools to deal with null fields appropriately (not always true unfortunately). But if version bumps of an API&#x2F;WSDL broke backwards compatibility... then you had to have separate class hierarchies for different versions of the WSDL; what an intense headache. Contrast that to web REST APIs; without a formal schema and a lack of class-centric tooling, client libraries would often let the author stuff in the params themselves and let the serializer stuff in the body based on the params; so yes your API is not as formal, but this isn&#x27;t a big issue but offers infinite flexibility in dealing with one-off versioning issues or interop issues.<p>As someone else mentioned, some platforms couldn&#x27;t interop with others (differences as it related to simply stuff like nullable fields or primitives existed all over; total nightmare), and some features of WSDLs didn&#x27;t translate well to certain languages.<p>A great WSDL author would know to make their WSDL as simple as possible, because they had spent time working with various language toolchains and new the limitations out there, but that&#x27;s asking way too much and not realistic for someone to have to spend all their time trying to understand all the ways someone in language XYZ might use their WSDL.
评论 #8725563 未加载
评论 #8725568 未加载
treveover 10 years ago
I think SOAP has lost in a sense that it&#x27;s no longer very popular around many web developers.<p>But has it really lost? I still see it used a lot in large corporate and high tech environments.<p>I was never a big fan of SOAP myself, but that&#x27;s also partly because when I started, the tooling wasn&#x27;t great and I got mostly a negative user-experience. But this is many years ago.<p>My understand is that these days it&#x27;s quite good, and it has a pretty good user-experience. Furthermore, everything is backed by xml schemas, which makes it easier to create and require strictly valid xml being sent back and forward.<p>While some equivalents exist in REST-ish API&#x27;s, it&#x27;s arguably not very common and with SOAP it&#x27;s a pretty much a free and built-in feature that everybody uses.<p>Modern web API design is great for getting things up and running fast, but it&#x27;s not amazing for rigorously robust design.<p>I don&#x27;t really like the &quot;SOAP is bloated and over-engineered&quot; narrative. It is uninteresting now, and was uninteresting 10 years ago.<p>I think it&#x27;s much more interesting to learn about the things that SOAP did get right, and see how we can apply some of these learnings in our API&#x27;s.
评论 #8724617 未加载
评论 #8724229 未加载
评论 #8724698 未加载
seanalltogetherover 10 years ago
My guess is that more and more people are coming to the realization that xml is great for fluid text and document formatting, but too ambiguous to serve as a data structure format.<p>XML nodes and children are just too slippery. I&#x27;ve actually argued with enterprise developers about why serving the following format was a terrible idea.<p><pre><code> &lt;user&gt; &lt;id&gt;123456&lt;&#x2F;id&gt; &lt;name&gt;Joe&lt;&#x2F;name&gt; &lt;account&gt;Account 1&lt;&#x2F;account&gt; &lt;account&gt;Account 2&lt;&#x2F;account&gt; &lt;&#x2F;user&gt;</code></pre>
评论 #8725079 未加载
评论 #8724615 未加载
评论 #8724556 未加载
评论 #8724383 未加载
评论 #8724315 未加载
mpweiherover 10 years ago
Not sure why the article equates XML with SOAP.<p>Request:<p><pre><code> GET &#x2F;customers&#x2F;43456 HTTP&#x2F;1.1 Host: www.example.org </code></pre> Response:<p><pre><code> HTTP&#x2F;1.1 200 OK Content-Type: text&#x2F;xml; charset=utf-8 &lt;customer&gt;Foobar Quux, inc&lt;&#x2F;customer&gt; </code></pre> Seems fine to me. In fact, having named elements without the requirement for a dictionary makes parsing straight to an object-representation (without an intermediate property-list) much easier.
评论 #8724518 未加载
binarymaxover 10 years ago
In my opinion, WS-* lost not because of the format or verbosity. WS-* lost because the concept is about the continuation of RPC, where you expose custom methods that can be invoked from a client. When state is altered in custom ways, complexity goes through the roof - to the point where you need a DSL (WSDL) to define these methods and how to interact with them.<p>REST simplified things because the concept is about limiting the method invocation to the bare minimum and always have an explicit understanding of the state that is being changed or communicated.<p>The XML&#x2F;JSON question is not as important as the method&#x2F;resource question.
评论 #8725327 未加载
评论 #8726304 未加载
评论 #8724587 未加载
Pxtlover 10 years ago
“The essence of XML is this: the problem it solves is not hard, and it does not solve the problem well.” – Phil Wadler, POPL 2003<p>SOAP takes XML&#x27;s problems to the next level.
ChuckMcMover 10 years ago
Hold on to this, <i>&quot;tldr: Simplicity and utility trump large corporate backing.&quot;</i><p>When your manager tells you that your API needs to handle something &quot;just in case&quot;, when your customer asks, &quot;But what if I want to use this API with mumblefratz?&quot;, and when you look at your code and say, &quot;Gee, if I make this a variable I could handle any special edge case by encapsulating its specialness in the variable ...&quot;
lkrubnerover 10 years ago
Pete Lacey&#x27;s parody of SOAP is both hilarious and also very accurate:<p><a href="http://harmful.cat-v.org/software/xml/soap/simple" rel="nofollow">http:&#x2F;&#x2F;harmful.cat-v.org&#x2F;software&#x2F;xml&#x2F;soap&#x2F;simple</a>
jcfreiover 10 years ago
I&#x27;ve had the &quot;fortune&quot; to work with SOAP as well (java implementation) and I never could shake the feeling that it was designed with the intention of being obscure. It seems you could employ an entire batch of consultants just to deal with defining, implementing and changing SOAP APIs (kind of a misnomer I know). The whole change from SOAP 1.1 using an ActionHeader to SOAP 1.2 using an action parameter seems downright misleading. Or downloading WSDL files to automatically create Java classes sounds great in theory but now your program has additional obscure classes with <i>very</i> weird syntax and you have to read through numerous reference guides just to know how you can modify the header of an outgoing request. Such a waste of time.
评论 #8724669 未加载
userbinatorover 10 years ago
One nice example of how MS really made things more complex with SOAP is the MSN Messenger Protocol (MSNP), which started out quite simple and sane, then got extremely SOAPy in the later versions; compare protocol interactions pre-SOAP:<p><a href="http://msnpiki.msnfanatic.com/index.php/MSNP8:Getting_Details#Example_SYN_Responses" rel="nofollow">http:&#x2F;&#x2F;msnpiki.msnfanatic.com&#x2F;index.php&#x2F;MSNP8:Getting_Detail...</a><p>and doing the same thing with the SOAP&#x27;d version:<p><a href="http://msnpiki.msnfanatic.com/index.php/MSNP13:Contact_List" rel="nofollow">http:&#x2F;&#x2F;msnpiki.msnfanatic.com&#x2F;index.php&#x2F;MSNP13:Contact_List</a>
评论 #8724715 未加载
Animatsover 10 years ago
It&#x27;s all about who has the power.<p>With JSON, if the data returned by the server doesn&#x27;t exactly match the documentation, it&#x27;s the client&#x27;s problem.<p>With SOAP, if the data returned by the server doesn&#x27;t exactly match the documentation, the server is broken. The client, reading the WDSL file which documents the API, will report an error and refuse to continue. This means bug reports the server provider cannot make go away by the usual defect-denial techniques.
debacleover 10 years ago
<a href="http://www.google.com/trends/explore#q=wsdl%2C%20restful&amp;cmpt=q" rel="nofollow">http:&#x2F;&#x2F;www.google.com&#x2F;trends&#x2F;explore#q=wsdl%2C%20restful&amp;cmp...</a><p>SOAP is past its peak but far from dead. In the Microsoft ecosystem, SOAP is nearly transparent, except for a bit of fiddling - you publish your WSDL from your definitions, I consume it to generate an API class on my end, and after maybe ten minutes on either side, we don&#x27;t even think about SOAP again.
rayinerover 10 years ago
It&#x27;s funny that the joke starts with a dig at CORBA. When I was worked on a CORBA-based system a decade ago, I thought I&#x27;d never see something more over-designed. But this whole document-oriented web services thing makes me feel like: <a href="https://screen.yahoo.com/unfrozen-cave-man-lawyer-1-223412426.html" rel="nofollow">https:&#x2F;&#x2F;screen.yahoo.com&#x2F;unfrozen-cave-man-lawyer-1-22341242...</a>.
ultramancoolover 10 years ago
Sure, SOAP&#x27;s complexity is a problem, but the issue with &quot;RESTful&quot; APIs is that they&#x27;re so loosely defined, almost all the way to the other extreme. Being able to generate code and have a type-checked API, which is as easy to use as any other local API was a very nice feature we&#x27;ve now lost. I wish there were a better compromise.
评论 #8724193 未加载
评论 #8724409 未加载
corbinpageover 10 years ago
SOAP Web Services around still frequently used in a lot of large corporations, where technology evolves a little slower and Microsoft products are still very popular.<p>Being a Rails fan myself, I have always enjoyed using HTTP Web Services and interacting with tech companies&#x27; Restful APIs so easily.<p>This post provided a clear, side-by-side comparison of the technologies including the historical context of SOAP, which I found really useful and enlightening. If I could give you some Bitcoin for writing it, I would. Have a new Twitter follower instead.<p>It&#x27;s hard to find succinct, objective technology articles in this day and age. Most reviews I find are either unconstructively biased (&quot;dynamic typing sucks!&quot;) or too long and convoluted to be effective.
mrfusionover 10 years ago
I always liked XMLRPC. It seemed really simple. At least in Python they simply mapped to function calls and all of the XML stuff was handled for you. It took minutes to get an API set up with that from any program.<p>I never understood why it&#x27;s out of favor?
Yhippaover 10 years ago
I still have to use SOAP more often than I&#x27;d like to these days. It&#x27;s a pain testing and dealing with all the different tools you have to use just to stand up a basic request.<p>A lot of vendors I&#x27;ve worked with will publish REST web services for public data but as soon as any private information needs to be accessed they use SOAP. I don&#x27;t know if they just don&#x27;t trust the tools to make REST secure or what but it&#x27;s disappointing for sure.<p>Also the people who wrote the SOAP code are long gone which makes support for them even more difficult when I&#x27;m trying to get bugs fixed. REST server code has not been anywhere as bad to deal with.
markolscheskyover 10 years ago
SOAP is still common in healthcare as many IHE profiles rely on SOAP for Cross-community document&#x2F;data exchange. They are a pain to work with if you don&#x27;t have a toolset that handles it well.
bchover 10 years ago
The article lists<p>1) JSON coming up to replace XML as a serialization technology, and<p>2) and Ruby on Rails (etc)<p>I remember even serious pressure from w&#x2F;i the XML community in the sense of XML-RPC, and the joke that the <i>entire</i> <i>spec</i> for XML-RPC was smaller than the Table of Contents for the SOAP spec. SOAP was tough. It was confusing to use (fwiw, I had the best luck w&#x2F; Perls SOAP::Lite) and difficult enough to implement that devs I knew simply abandoned it.
kakoniover 10 years ago
New Finnish gov digital infrastructure is going to built using Estonian X-road (well next year). And yes, its only SOAP, so I guess either Finns are pretty crazy or SOAP is making a comeback. Go figure.
jprinceover 10 years ago
The first thing I did as a developer was to write a SOAP wrapper gem for Propertyware&#x27;s API. It was here that I learned the concept of Pain.
fit2ruleover 10 years ago
Why I never used SOAP: Endian issues.
cratermoonover 10 years ago
Let&#x27;s hope SAML follows soon.
qwertaover 10 years ago
Apples,oranges and orangutans.<p>Doing transactions and data format evolution in REST is hard, in SOAP it is simple.
cowardlydragonover 10 years ago
You can&#x27;t argue that PUT, DELETE, and POST methods are usable in a browser, and once a rest api starts going hogwild with headers, the GET really doesn&#x27;t work either.<p>The fact REST didn&#x27;t provide some way for all methods to be invoked in a simple browser was to me a step towards the inaccessibility of SOAP.
评论 #8725536 未加载
entelechy0over 10 years ago
Heh...we&#x27;re using SOAP and WSDL for this current project...
评论 #8724214 未加载