25 March 2005

SOAP Transport Independence

More thoughts while reading...

I keep thinking about SOAP's use of HTTP as a transport protocol and the fact that SOAP is supposed to be transport independent so you can make use of existing protocols like SMTP or FTP or whatever. I gues my question at this point is why?

Why would I want to use SMTP instead of HTTP? What does that buy me? OK, so I dont need a web server to service requests - I can just float stuff through email. But now I need to write some new sort of server that can poll the service's 'inbox' and process the messages that it finds there. So not only do I still need some sort of server, but now I've got to write my own when I could have just used already existing and readily available web server software.

As to the question of why HTTP is the preferred protocol, I suppose I can see why that's the case. There's already lots of well tested HTTP client and server software out there, so its real easy to use. And just about everybody lets HTTP through the firewall. But isn't that really just a port number? I could run any protocol on port 80 and it would still make it through just about as many firewalls.

Well, back to reading. Maybe the answers will eventually become clear to me, but it just feels like the whole protocol independence thing and the use of HTTP has made things much more complicated than they need to be.


Ryan Tomayko said...

Why, indeed.

Chuck, take a browse through Mark Baker's Archives.

Protocol independance may be the last WS sacred cow. None of the astronauts are quite capable of justifying it under any kind of 80/20 and yet they all claim it's absolutely necessary for web services to succeed.

We think it's folly.

Anonymous said...

As someone working in IT security, I am apalled at the thought that programmers are using all sorts of different protocols over port 80! I hope that's forbidden by all organizations having security standards and policies! In several large financial organizations I know, http is only allowed to go over specified proxies. Depending on where your server or application is and depending on if you want to transmit over a B2B firewall or an internet firewall, the protocol http could indeed be unavailable. Using an alternative protocol, such as MQ-Series, Jabber or SMTP is in certain circumstances neccessary, although such cases are rare. If you're working with legacy applications, sometimes they are only capable of using MQ-Series or FTP or SMTP protocols, too. That's probably the more common reason for using protocols other than http for soap.