So there’s buzz around some new quasi-Open Source
MQSeries1 clone named AMQ. Supposedly, this
thing is going to be used for Web Services
and Service Oriented
Architectures (SOA) in the financial industry initially but then grow
horizontally. The idea being that message queuing provides a lot of the
functionality not directly handed to you by HTTP, like reliable delivery,
publish/subscribe, multiple subscribers, etc.
The article was kind of weird though because some of it doesn’t make any sense:
Not only has AMQ drawn the participation of several banks, but also companies such as Red Hat Inc., Novell Inc. and Sun Microsystems Inc. are considering building AMQ into the kernels of Red Hat Enterprise Linux, SuSE Linux and Solaris, respectively, Davies said.
Wtf? No one is building message queuing functionality into the kernel, bro. That’s user-land stuff.
Although Davies said he is an avowed Java aficionado and a supporter of the Java Message Service API, he said JMS “fails on the non-Java side as a transport mechanism.”
That’s like saying JDBC sucks at indexing my tables
. JMS is a
standard Java interface that various message queuing implementations
implement so that coders don’t have to write to vendor specific
APIs. There’s no transport mechanism
involved. If AMQ is truly a
MQSeries clone, it will have a JMS implementation wrapped around it within a
month. Maybe the original intent was to say that no existing F/OSS MQ
implementations have open wire formats? Or something?
I think what this article may have actually been trying to say (although we may never know because it is so full of hallow buzzwords) is something like the following:
We, the financial industry, hate proprietary shit.
We are tired of waiting around for you WS and SOA folks to actually produce something we can use.
We just want a non-proprietary MQSeries that we can use over the internet.
There are no open protocols for message queuing and, like we said, we need message queuing. Don’t even start with that abstracting non-functional concerns crap. We need message queuing, period.
We have developed an
open
protocol for message queuing. We’ve done this, somewhat mysteriously, behind closed doors.We’ve implemented this open protocol in C and C++ and we’re going to make these implementations available under some kind of open license.
We’re going to call this
Web Services
andSOA
because that’s what my boss' boss said he wanted and since none of you people can tell me what any of this stuff is, I don’t think you can say it’s not what we’ve built.
It seems reasonable to believe that all we’re looking at here is an internet
friendly protocol and app for chucking messages around in a secure manner
which, to be honest, is probably all that’s needed. Except it seems to be having an
identity crises because it’s talking about Web Services
and we all
know by now that Web = HTTP/URIs and AMQ will likely use neither.
REST is already eating one half of the WS-Sandwich on the web with WS-* retreating to “Enterprise Level” tasks. I don’t think it’s impossible to imagine a not-to-distant future where ad-hoc message formats pop up and start flying over this AMQ thing to eventually eat the other half of the WS-Sandwich.
WS-Crust anyone?
Footnotes
1. I don’t care that they rebranded it “WebSphere MQ”. It’s MQSeries… Shut-up.