|
|
| | Ask YC: How big of a failure is SOAP? | | 4 points by chriszf on May 17, 2008 | hide | past | favorite | 30 comments | | I'm trying to do something involving a web service that's only offered via SOAP (naturally, it's a microsoft technology: Mappoint). I remember hearing a lot of hype about interoperability and web services and remote whatever and integration way back when. But now, as I'm working on this thing, I find that Java support for SOAP is questionable at best, and poorly documented to boot. Python's support has a passable interface, hiding all the setup with its powerful metaprogramming facilities. Now, if only it worked correctly. I couldn't even bring myself to look at Ruby support. Naturally, C# and VB.net support SOAP almost natively. So how about it folks? Is this another technology resigned to the rogues gallery? |
|

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
|
Most of the haters on SOAP and other thick WS technologies are people trying to do simple AJAX type message transfers. SOAP is a little heavy for that. But when you try passing messages between multiple systems in multiple languages, it becomes the obvious solution. As far as the following response goes... "allow me to put it this way: 1k of text to get a 2 or 3 digit temperature from a weather service." SOAP stacks will automatically parse that 2-3 digit number into the correct data type for the platform/language you are using. Now say instead of a 2-3 digit number you passed an entire object or data structure. Would it be easier to role your own parser or have the SOAP stack automatically marshal it for you?
Added to this, when you use the full set of SOAP technologies including WSDL and XSD, you also have data validation and to some extent, documentation. This is what JSON and the likes lack. If you provide a WSDL I can look at it and usually use a tool to automatically generate all the data types and interfaces needed (ie. wsdl in .Net). You point me at a JSON interface and I have no such luxury. I wont know what data to expect until you write documentation for it. Further neither of us would know if each others messages were valid without some kind of custom validator.
Also SOAP is transport layer agnostic. If you use HTTP you can take advantage of any compression the underlying platform supports. Apache's Axis and Perl's SOAP::Lite both support HTTP compression in their SOAP stacks. I am aware of ways to enable it in .Net as well.
Advances in computing power and network resources are making SOAP a more viable option, not less. It comes down to using the right tool for the job and REST is viable in some applications, but SOAP is as well. SOAP's life span will be at least as long as COM or CORBA. They haven't completely died yet either...