A transport of delight

When I saw Steve Vinoski's recent pointer to his colleague's article about “Where HTTP Fails SOAP“, I immediately thought of a song from the 60's by the English satirists Flanders and Swann. It's about the London Routemaster double-decker bus and titled “A Transport of Delight”. In the introduction on their album At the Drop of a Hat, they describe it as being about the omnibus, which they loosely translate from the Latin as meaning by, with or for, everybody.

People often criticize HTTP's use for Web services. Beyond the REST argument, which I don't want to go into here, people worry about its ability to scale to handle the style of processing in back-end business systems. Basically, because it was designed for a user at a browser, there are connection management, concurrency and directionality issues that need to be dealt with. The theory is that using SOAP over other transport protocols might be able to solve these problems.

I've thought for a long time that two interesting choices for alternate protocols with design tensions different from HTTP are SMTP and Jabber. We could use SMTP for disconnected message-queuing style communication and Jabber for connected, bidirectional async messaging. Both would offer indirect addressing. And both are open protocols with lots of implementations. Yes, there is overhead for using either one because you have to have set up a server for the protocol itself. On the other hand, we'd be using protocols that are actually designed for the kind of communication we envision Web services doing and it would stop the REST people from complaining.

However, as far as I can tell, most vendors are not moving in this direction. For instance, Iona supports CORBA bindings and Indigo supports an as yet undocumented TCP binding. Toolkits that support durable message queuing send SOAP over whatever proprietary protocols existing messaging systems use on the wire (this is true even for SOAP over JMS because JMS leaves wire protocol to the implementor). That means that when you use these protocols, you lose the wire-level compatibility that you have with SOAP over HTTP.

One solution to this is to build bridges that map SOAP messages augmented with WS-* functionality from one proprietary protocol to another. For instance, you could build a bridge from MSMQ to a JMS implementation, protecting the message with WS-* all the way. The trouble with that is that you have a lot more complicated pieces to manage. It would be simpler if MSMQ and a given JMS implementation just spoke the same protocol on the wire, but that isn't going to happen any time soon. So you have to add these complicated intermediaries, or just buy into a single vendor's solution. Maybe that's the point, but it doesn't seem like people will fall for it this time.

Instead, they'll opt for a second solution, which is to workaround the issues HTTP presents by designing applications very particular ways. This ought to be unnecessary given what other protocols offer, but not if the cost is increased complexity of lots of protocol bridging or proprietary protocol vendor lock-in. As someone in the office here pointed out, there's evidence of this already in that many companies, in setting out to redesign their IT systems, opted to use XML over HTTP even before SOAP existed. They new what the issues were and what the alternatives were, and they chose the thing that was easy to work with and ubiquitous, a combination that almost always wins.

Today, SOAP over HTTP is the only transport that works with two different toolkits at the ends of the wire. Until we have that with other open protocols, HTTP will dominate. Like the Routemaster, HTTP is by, with or for everybody. It is a transport of delight.


Posted Aug 15 2005, 11:26 AM by tim-ewald

Comments

Stefan Tilkov's Random Stuff wrote HTTP It Is, and Will Be
on 08-15-2005 12:12 PM
Tim Ewald, as usual, is absolutely right: Today, SOAP over HTTP is the only transport that works with two different toolkits at the ends of the wire. Until we have that with other open protocols, HTTP will dominate. Well, almost absolutely (since HTTP is not a transport, as Mark Baker would be quick to point out). In any case, using...
Michi Henning wrote re: A transport of delight
on 08-16-2005 2:27 PM
What about IIOP over TCP/IP? That has been working with different toolkits at the ends of the wire for a long time, in fact, before SOAP was even thought of.

Michi.
Todd Biske wrote re: A transport of delight
on 08-16-2005 6:04 PM
This, along with the 4 quadrants of indigo, was a very interesting post, however, I don't agree completely with the conclusion. The one area that presently isn't covered by a SOAP over HTTP approach is really where we have a need for queueing. As you point out, people are doing SOAP over JMS, but that really doesn't make much sense since the wire protocol is proprietary to the JMS provider. In looking at the cases where JMS is needed, it comes down to two categories:

1) JMS (or anything other queueing system) is used to provide a reliable messaging channel.
2) The destination, as far as the client is concerned, is a queue, not the real endpoint.

The first item can be handled by WS-ReliableMessaging over http, so no problem there. The second, however, raises some interesting questions. For a service that follows a fire-and-forget pattern where traffic is managed by a queue, how does the endpoint get exposed? If we had a standard wire protocol for queueing systems, such as the AMQ protocol that's been proposed by some financial services companies, it would work, however, that doesn't exist. What would it look like if the queue publishing mechanism was actually a Web Service? In this case, you'd have to embed one SOAP envelope inside another, and now you've got a problem that you have no WSDL to describe the payload for the message to be enqueued. It could all be done over HTTP with WS-RM, however.

The real problem is that establishing a queue does not require any definition of what kind of messages are to be placed on that queue. It will be interesting to see how the traditional MOM vendors and the ESB providers that are built on a queuing system choose to address this.
Peter Saint-Andre wrote re: A transport of delight
on 08-17-2005 9:33 AM
You might be interested in the binding of SOAP to XMPP (Jabber) defined at http://www.jabber.org/jeps/jep-0072.html
Guy Crets wrote re: A transport of delight
on 08-24-2005 1:09 PM
Some thoughts, remarks and questios:
- Will WS-ReliableMessaging become an alternative for protocols such as EDIINT AS2, RosettaNet RNIF, ebMS (ebXML), .. ?
- WS-RM implementations I have found: Apache, BEA WebLogic 9.0, IBM ETTK, Microsoft WSE 3.0, Windows Communication Foundation (Indigo), Blue Titan, Sytinet, Naradabrokering. Any others?
- Indigo (WsDualHttpBinding) does not allow a client to send messages when a server unavailable, unless MSMQ is used. Maybe BizTalk 2006 will implement this over HTTP?
- Are the messaging vendors going to implement WS-ReliableMessaging next as an option/alternative to their own proprietary protocols: Sonic, Tibco, ..?
- Why not do WS-ReliableMessaging over mail (SMTP) as a nice alternative for HTTP?
- Many examples about WS-ReliableMessaging show request/response examples. But where are the examples with client side persistence?
Greg Reinacker's Weblog <br> wrote RSS &quot;security&quot;
on 09-08-2005 5:19 PM
I was on a call the other day with some folks in the industry, and someone made a comment to the effect of "we really...
Chris K. Brown wrote re: A transport of delight
on 09-15-2005 11:24 AM
I actually do work on a large on line banking solution where we are using SOAP over HTTPs with a scale of 145 tps as a nice target.

Amzing that a bunch of Iona guys would argue for IIOP as the protocol stack when almost no one but them support them. This artcile was nothing but a sales pitvh for the Iona ESB offering.

CORBA is dead, long live Web Services (until the new king comes along)
... wrote re: A transport of delight
on 03-05-2009 2:49 PM

Interessante Informationen.

... wrote re: A transport of delight
on 03-07-2009 4:26 PM

Gute Arbeit hier! Gute Inhalte.

Joannah wrote re: A transport of delight
on 04-08-2009 12:20 AM

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.

Joannah

http://2gbmemory.net

dffpuopwszv wrote re: A transport of delight
on 05-20-2009 8:43 AM

Q2fMxL  <a href="eulobrsgutpm.com/.../a>, [url=http://jgbjqgqfzyyk.com/]jgbjqgqfzyyk[/url], [link=http://miimzgsbwthn.com/]miimzgsbwthn[/link], http://eifnmlwwuqos.com/

czjpxr wrote re: A transport of delight
on 06-14-2009 9:13 PM

uZWIHQ  <a href="ztulqhxwsbar.com/.../a>, [url=http://qchjogaebjhk.com/]qchjogaebjhk[/url], [link=http://wfdeckizjflb.com/]wfdeckizjflb[/link], http://ivtchjnjdcon.com/

kumjqkh wrote re: A transport of delight
on 06-18-2009 7:04 PM

awva3V  <a href="wisllyctqdpx.com/.../a>, [url=http://lxznxglniisw.com/]lxznxglniisw[/url], [link=http://qlgsqdxljfoq.com/]qlgsqdxljfoq[/link], http://pysoguwbxzvn.com/

Add a Comment

(required)  
(optional)
(required)  
Remember Me?