There are way too many messaging protocols for middleware in enterprises today, and unless an asteroid plummets from the skies and coincidentally destroys the headquarters of several of their proprietors simultaneously, this problem won't resolve itself. On the one hand, IBM, Oracle, and Tibco could come together around a single standard, and promote its use throughout the enterprise. On the other, what would be in it for them?
A group of vendors - led by enterprise Linux leader Red Hat, but also including VMware, Microsoft, and Cisco - along with financial services companies including Bank of America and JPMorganChase (which had the original idea), has been working together since 2004 to arrive at a completely new approach to solving the message queue (MQ) problem. There will not be a unified messaging queue, that much is certain. Their proposed solution is radical, but workable. And this time, it does not involve the Web.
It's an Internet protocol, but a new one altogether - at the wire level. It is not an MQ. (We don't need another MQ, you can just hear Tina Turner singing now.) Rather, it describes a binary transport format for messages sent between applications over the Internet - specifically, over TCP. It is Advanced Message Queuing Protocol. Last week, the AMQP Working Group published its final 1.0 specification; and today at JPMorgan's corporate headquarters in New York, the members of the Working Group came together to celebrate.
"We believe the adoption of message-based systems will gain momentum now that customers will achieve faster innovation and not feel locked in," reads a statement released this morning from Red Hat's middleware VP, Craig Muzilla. "Red Hat is committed to AMQP as a game-changer, and we have incorporated its use into our messaging and other JBoss middleware solutions."
Although the implementations of AMQP are conceivably complex, the basic concepts are actually quite simple. Consider, for example, that messages in a network are sent between applications. Never mind what the messages contain, or what format they're in. The agents that determine how those messages are delivered are, in this instance, called brokers. However, there are two very different types of brokers. One is the queue itself, which is an ordinary FIFO buffer. The other is an exchange, which in AMQP lexicon is an algorithm that determines how a message is distributed, especially if it's being broadcast to multiple recipients. The precise methodology used in a particular scenario for connecting an exchange to a queue or queues is the binding, which is like a manifest of instructions.
Thus the grouping which AMQP calls "exchange-binding-queue." It was JPMorgan's architects, schooled in the real world of second-by-second financial transactions, who came up with the concept. Its lead engineer, Rob Godfrey, led the final draft of the core specification, with engineers from VMware, Microsoft, BoA, and Credit Suisse participating in drafting the subsidiary specs.
But it's not a common Internet draft - at least, not in the sense that we've come to expect it from the Internet Engineering Task Force. Engineers with IETF have not taken an explicit stand one way or the other on their feelings about AMQP; they're still discussing what it does and what it means. They could easily end up embracing it. Meanwhile, one of the companies that originally participated in the process, financial IT services provider iMatix, found itself coming out against AMQP's 1.0 implementation.
Its alternative: another messaging queue wire protocol, called ZeroMQ.
"If there is a chance to simplify things and make them faster and more reliable, we must seize it. So, we make the next change to AMQP's model: Exchanges may be anywhere on the network and are addressable from the rest of the network," reads an iMatix document that summarizes its basic grievances against what AMQP has evolved into.
IMatix describes ZeroMQ (or 0MQ) as "an intelligent transport layer for your distributed apps." But it's going it alone in production, distribution, and promotion. That will be hard against the financial services juggernaut that JPMorgan has assembled. But it may not be impossible, in which case... here we go again.
An earlier draft of this article incorrectly referred to "iMatrix," not "iMatix," as the company behind ZeroMQ. That's my bad, and I regret the error and apologize. -SF3