Advanced Message Queuing Protocol
This article needs to be divided into sections. (March 2008) |
Internet protocol suite |
---|
Application layer |
Transport layer |
Internet layer |
Link layer |
The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for Message Oriented Middleware. The defining features of AMQP are message orientation, queuing, routing (including point-to-point and publish-and-subscribe), reliability and security.
AMQP mandates the behaviour of the messaging provider and client to the extent that implementations from different vendors are truly interoperable, in the same way as SMTP, HTTP, FTP, etc. have created interoperable systems. Previous attempts to standardise middleware have happened at the API level (e.g. JMS) and this did not create interoperability.
Development
AMQP was developed from mid-2004 to mid-2006 by JPMorgan Chase & Co., with partners who also developed implementations in C and Java, then documented the protocol as an interoperable specification and assigned to a working group that included Red Hat, Cisco Systems, TWIST, IONA, and iMatix. In 2008, the working group consists of Cisco Systems, Credit Suisse, Deutsche Börse Systems, Envoy Technologies, Inc.,Goldman Sachs, IONA Technologies PLC, iMatix Corporation sprl., JPMorgan Chase Bank Inc. N.A, Novell, Rabbit Technologies Ltd., Red Hat, Inc., TWIST Process Innovations ltd, and 29West Inc.
A notable design goal of AMQP was to enable the creation of open standard protocol stacks for business messaging both within and between firms by combining AMQP with one of the many open standards describing business transactions, such as FpML or more generically as a reliable transport for SOAP.
Whilst AMQP originated in the financial services industry, it has general applicability to a broad range of middleware problems.
These are the known publicly available AMQP implementations, in order of development:
- OpenAMQ, original reference implementation of AMQP, written in C/C++ by iMatix.
- Apache Qpid, an incubation project of the Apache Foundation C++, Ruby, Java, JMS, Python and .NET support. Red Hat Enterprise Messaging uses Qpid as upstream and adds additional modules & optimizations.
- RabbitMQ, an independent open-source implementation. The server is written in Erlang, and multiple clients including Java and AJAX are provided.
- ØMQ ("ZeroMQ"), a project in progress, aiming for ultra-low latency messaging via AMQP.
External links
- Articles needing sections from March 2008
- Articles covered by WikiProject Wikify from March 2008
- Articles lacking sources from March 2008
- Application layer protocols
- Distributed computing
- Inter-process communication
- Internet protocols
- Internet
- Message-oriented middleware
- Middleware
- Network protocols
- Open standards