Advanced Message Queuing Protocol
From Wikipedia, the free encyclopedia
Sections should be added to this article, to conform with Wikipedia's Manual of Style. Please discuss this issue on the talk page. This article has been tagged since March 2008. |
This article does not cite any references or sources. (March 2008) Please help improve this article by adding citations to reliable sources. Unverifiable material may be challenged and removed. |
The five-layer TCP/IP model |
---|
5. Application layer |
DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · RTP · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTSP · TLS (and SSL) · SDP · SOAP · GTP · STUN · NTP · (more) |
4. Transport layer |
TCP · UDP · DCCP · SCTP · RSVP · ECN · (more) |
3. Network/internet layer |
IP (IPv4 · IPv6) · OSPF · IS-IS · BGP · IPsec · ARP · RARP · RIP · ICMP · ICMPv6 · IGMP · (more) |
2. Data link layer |
802.11 (WLAN) · 802.16 · Wi-Fi · WiMAX · ATM · DTM · Token ring · Ethernet · FDDI · Frame Relay · GPRS · EVDO · HSPA · HDLC · PPP · PPTP · L2TP · ISDN · ARCnet · LLTD · (more) |
1. Physical layer |
Ethernet physical layer · RS-232 · SONET/SDH · G.709 · Optical fiber · Coaxial cable · Twisted pair · (more) |
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 (O'Hara).
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 (Vinoski).
[edit] Development
AMQP was developed from mid-2004 to mid-2006 by JPMorgan Chase & Co. and iMatix Corporation who also developed implementations in C/C++ and Java. JPMorgan Chase & Co. and iMatix 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, 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 Python, .NET, Java, STOMP, and AJAX are provided.
- ØMQ ("ZeroMQ"), a project in progress, aiming for ultra-low latency messaging via AMQP.
[edit] External links
- AMQP Specification as of Apr 2008
- AMQP Website
- Original background whitepaper
- News article about the specification's release
- OpenAMQ
- Apache Qpid
- RabbitMQ
- Red Hat Messaging (part of 'MRG')
[edit] References
O'Hara, J. (2007). "Toward a commodity enterprise middleware". ACM QUEUE: 48-55. doi: .
Vinoski, S. (2006). "Advanced Message Queuing Protocol". IEEE INTERNET COMPUTING: 87-89. doi: .