- Advanced Message Queuing Protocol
The Advanced Message Queuing Protocol (AMQP) is an
open standard application layer protocol forMessage 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).
Development
AMQP was developed from mid-2004 to mid-2006 by
JPMorgan Chase & Co. andiMatix 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 includedRed Hat ,Cisco Systems , TWIST, IONA, and iMatix. In 2008, the working group consists ofCisco 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 stack s for business messaging both within and between firms by combining AMQP with one of the manyopen standards describing business transactions, such asFpML or more generically as a reliable transport forSOAP .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:
* [http://www.openamq.org/ OpenAMQ] , original reference implementation of AMQP, written in C/C++ by iMatix.
* [http://cwiki.apache.org/qpid/ Apache Qpid] , an incubation project of theApache Foundation with client APIs that support C++, Ruby, Java,JMS , Python and .NET. [http://www.redhat.com/mrg/messaging/ Red Hat Enterprise Messaging] uses Qpid as upstream and adds additional modules & optimizations.
* [http://www.rabbitmq.com/ RabbitMQ] , an independent open-source implementation. The server is written in Erlang, and multiple clients including Python, Ruby, .NET, Java, XMPP, STOMP, andAJAX are provided.External links
* [http://jira.amqp.org/confluence/download/attachments/720900/amqp.0-10.pdf?version=1 AMQP Specification as of Apr 2008]
* [http://www.amqp.org/ AMQP Website]
* [http://www.openamq.org/doc_background.txt_flat.html Original background whitepaper]
* [http://www.infoq.com/news/amq News article about the specification's release]
* [http://www.openamq.org/ OpenAMQ]
* [http://cwiki.apache.org/qpid/ Apache Qpid]
* [http://www.rabbitmq.com/ RabbitMQ]
* [http://www.redhat.com/mrg/ Red Hat Messaging (part of 'MRG')]
* [http://www.omg.org/news/meetings/workshops/RT-2007/04-3_Pardo-Castellote-revised.pdf OMG Analysis of AMQP and comparison with DDS-RTPS]References
cite journal
author = O'Hara, J.
year = 2007
title = Toward a commodity enterprise middleware
journal = ACM QUEUE
pages = 48-55
doi = 10.1145/1255421.1255424
url = http://www.acm.org/acmqueue/digital/Queuevol5no4_May2007.pdfcite journal
author = Vinoski, S.
year = 2006
title = Advanced Message Queuing Protocol
journal = IEEE INTERNET COMPUTING
pages = 87-89
doi = 10.1109/MIC.2006.116
url = http://dsonline.computer.org/portal/site/dsonline/menuitem.6dd2a408dbe4a94be487e0606bcd45f3/index.jsp?&pName=dso_level1_article&TheCat=1001&path=dsonline/2006/12&file=w6tow.xml&;jsessionid=LR6hp4hBgfJRWv1vwFDlgvLv471rG9VXMpwLNmjL0mfnYNkTnGrs!-288318448
Wikimedia Foundation. 2010.