Summary
While most enterprise architecture elements are based on commercial or open-source implementation of open standards, messaging has been an exception. The Advanced Message Queue Protocol (AMQP) now aims to change that with a messaging protocol agnostic of implementation technologies. A recent InfoQ article provides details of the new specification.
Advertisement
Many aspects of an enterprise architecture are already based on open-source or commercial implementations of open standards: HTTP, servlets, EJBs, for instance, are defined in specifications that are readily available, and are implemented by vendors or open-source projects.
Although messaging is a major part of enterprise architecture, no interoperable, technology-agnostic messaging standard existed until now, according to an InfoQ article, Advanced Message Queue Protocol to Commoditize Messaging. The Advanced Message Queue Protocol (AMQP or AMQ) aims to solve that problem with a "specification for queue-based messaging that is technology agnostic, designed for performance and [is] completely interoperable," according to the article.
The article interviews AMQ designer John O'Hara, VP, Distinguished Engineer and Senior Architect at JPMorgan Chase, who emphasized the need for interoperable messaging in the financial sector:
"Whenever trading partners get together to exchange business transactions, they know what information model they want to use... 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, [instead] it supplies a reliable eventing, business transaction and file transfer protocol that can be used between or within an organization."
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."
The article suggests that widespread acceptance of AMQ could lead to the commoditization of messaging:
The AMQ protocol aims to 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.
Language- and technology-specific APIs would be built on top of AMQ much as similar APIs are built on SMTP, for instance:
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 AMQ server what JavaMail is to an SMTP server.
Although specific to Java, JMS is an open standard, and has been in use for many years. Still, the Java message queue market is dominated by a handful of products and companies. Will AMQ's protocol agnostic approach lead to greater choices in enterprise messaging?