Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Advanced Message Queue Protocol to Commoditize Messaging

Advanced Message Queue Protocol to Commoditize Messaging

The Advanced Message Queuing Protocol (AMQP) specification 0.8 has been announced today by the newly formed AMQP working group which consists of JP Morgan Chase, RedHat, Twist, Iona, Cisco, and others. AMQP is an open specification for queue-based messaging that is technology agnostic, designed for performance and completely interoperable; it defines a protocol and model for queue-based messaging. The AMQP protocol aims commoditize the messaging middleware industry and provide true interoperability across technology stacks in any language or operating system. JMS APIs over AMQ could easily interoperate with .NET clients or any other language or platform that can communicate via AMQP.  

The AMQP wire-level format is split into two layers; a functional layer and a transport layer. The functional layer defines commands available to support transactional store and forward, publish/subscribe and batch file transfer messaging styles. The transport layer covers wire communication, "channel multiplexing, framing, content encoding, heart-beating, data representation, and error handling." The transport and functional layers are also pluggeable, allowing the protocol to evolve easily over time.  AMQP is like the messaging middleware equivalent to HTTP, and far better suited for asynchronous interoperable messaging than HTTP.  As a protocol, AMQP doesn't attempt to specify any technology specific API,  but any such API (such as JMS in Java) can send messages over AMQP. JMS will be to an AMQP server what JavaMail is to an SMTP Sever. 

John O'Hara, VP, Distinguished Engineer and Senior Architect at JPMorgan Chase, is the father of of AMQP. John worked on the idea for almost a year before finally selling the concept internally. AMQ now has the support of the Investment Bank and an implementation is now running in production there. O'Hara told InfoQ that JPMC already is already using AMQ in production a global trading system consisting of 800 users across 5 companies and data centers. "We have implementations from multiple companies running Java, C++, C#, running across Windows, Linux, and Solaris." 

On the need for AMQP, O'Hara explained that  "whenever trading partners get together to exchange business transactions, they know what information model they want to use (as standardized by specs like FPML), but they haven't got a transport to send it across... having a standard transport that provides a high quality of service and semantics required for business transaction messaging, even across the internet, can close that gap.  AMQ does not supply a toolkit for data transformation, it supplies a reliable eventing, business transaction and file transfer protocol that can be used between  or within organizations."  While AMQP is an interoperability spec, it can also help in integration concerns "we equally expect it to be tunnelled across the internet between business partners."

InfoQ also spoke to John Davies, a member of the AMQ working group, and now CTO of C24.

"Banks spend a lot of money just to send messages inside their own bank." Davies said, "AMQ should help to commoditise the messaging industry much like web servers have been commoditized by Apache". Messaging has not been commoditized yet. Over 90% of messaging according to Davies is IBM and Tibco RV, a small percentage is owned by Sonic and the rest is shared by 30 or so other vendors, mostly JMS vendors.

Just as today no one can try to sell a web server, in the future,  AMQ aims to commoditize the middleware industry.  The AMQP spec allows anyone to freely make open source, commercial or even hardware implementations of the protocol, which will contribute to its proliferation.   RedHat is currently working on an implementation that will be built into the operating system, making AMQ as free and available as SendMail, and accessible from any technology API such as JMS. 

Today AMQP is being published by a working group including JPMC, RedHat, TWIST, Iona, Cisco, and others. IBM, Sonic and Tibco have been aware of it for some time and have been watching the work which has been done in secret.  At the moment no one has published implementations but JMS, C/C++ versions are in the works.   John Davies is CTO of C24 who is also working on SWIFT, FpML, TWIST, TRAX2 and other financial services messaging over AMQ transports, with implementations coming soon. The AMQP specification is said to reach version 1.0 within 18 months. The working group is allowing more time for feedback and testing before submitting to a standards body at 1.0.  AMQP has been assigned port 5672 for both TCP and UDP, the UDP port being for a future multi-cast implementation.

Looking to the future, Davies thinks that AMQP will take over the messaging market soon: "JMS was released in 98 from memory, it was pretty much de facto in the Java world by 03 so I'd expect AMQ to be behind the lion share of the market by 2011."

Rate this Article