|
Re: Web Services? What has the industry been smoking?
|
Posted: Jan 6, 2004 8:49 AM
|
|
Personally, having written socket-based services for 13 years, I would say that SOAP is wonderful. Let's review:
One: Firewalls - yes, HTTP can be a security hole, but, on the flip side, if the organization wants to use SOAP, it is straightforward - no need to punch extra holes in the firewall and go through all of the security analysis that that entails.
Two: Sockets - Big-endian vs. Little-endian. That alone was sufficient for me to hate raw binary socket communications with a passion, and frankly makes me question the expertise of anyone who suggests otherwise. Java resolves this (thank goodness), but SOAP doesn't care what language you use. Three: Portability - SOAP has been ported to so many languages, and works on so many platforms, that an entire ream of support headaches goes right out the window.
Four: Addressibility - Axis (for example) has spent a lot of time thinking about how one can reuse one socket to support many services, and, in fact, makes it quite easy to add and remove services from a port.
Five: Security - Axis (for example) has SSL certificate support built-in, which significantly reduces my effort associated with validating the customer, and concommitantly having the customer validate me. Happy days.
Six: Readability - As someone said before, when you're troubleshooting, I prefer human readable output than having to go track down an appropriate debugger. Or, even worse, having to write one. And one can write all the unit tests one wants to, and still have to deal with this. The Internet is full of strange traps for the unwary (caches, and content switches and firewalls and routers that munge your data, etc, etc, etc).
Seven: Time Efficiency - Really, I am having a hard time believing that someone who supports Agile methodologies so well and so rigorously would complain about the chattiness of a protocol - I mean, how much does that extra data cost, compared to the time and effort of the developers to design and build an appropriately trim protocol? There are so many different ways to scale web services, and you get them essentially for free, relative to the cost, time and complexity of building them yourself (and I have)
Eight: Related to Seven - Robustness - many, many people have worked for many years on building a robust infrastructure for web servers - content switches, server farms, etc. They aren't perfect, but they are already in place, and working well today. Why would I want to re-invent all that error handling? That seems like a cololossal timesink to me.
|
|