AMQP is an Open Standard for Messaging Middleware:
Middleware: software that connects other software together. Middleware connects islands of automation, both within an enterprise and out to external systems.
By complying to the AMQP standard, middleware products written for different platforms and in different languages can send messages to one another. AMQP addresses the problem of transporting value-bearing messages across and between organisations in a timely manner.
Messaging and integration is a necessary part of all enterprise systems
Other open business standards would ideally avoid being founded on proprietary technologies, and use open information and business process models and message formats. However, NO suitable open technology exists to actually send the messages!
AMQP aims to become the de-facto open standard for messaging middleware
Why AMQP is different from other middleware standards:
AMQP aims to specify the basic messaging middleware needs for common business applications.
To enable complete interoperability for messaging middleware, both a networking protocol and the semantics of broker services are specified in AMQP. AMQP has:
It is possible to partially imply the semantics of the server from the AMQP specification. However, having them explicitly described helps in understanding of the protocol.
Though most networking protocol scenarios have been addressed, a large gap exists in common guaranteed-delivery messaging middleware. Middleware is a necessary utility; it underpins mission-critical IT systems and plays a key role in automating business processes in medium and large organizations.
Currently, JMS offers only a partial solution because it is limited by its reliance on Java and its inability to specify any wire-level interoperability. It is crucial that any solution that addresses this problem be an open work that can be leveraged from any platform and any language.
The Advanced Message Queuing Protocol (AMQP) can be used as the basis for new products, integrated into existing systems, or provide enhanced interoperability for APIs, including JMS.
AMQP can be used with most of the current messaging and Web Service Specifications, such as JMS, SOAP, WS-Security, WS-Transactions, complimenting existing work in the industry. AMQP will also provide specified routing to and from multicast for subnet optimizations or grid-type deployments.
The AMQP model explicitly defines a server's semantics because interoperability demands the same semantics for any server implementation. The model specifies a modular set of components and standard rules for connecting these components. There are three main types of components which are connected into processing chains in the server to create the desired functionality:
This model emulates the classic middleware concepts of store-and-forward queues and topic subscriptions. It also expresses less trivial concepts such as content-based routing, message queue forking, and on-demand message queues.
In very gross terms, an AMQP server is analogous to an email server, with each exchange acting as a message transfer agent, and each message queue as a mailbox. The bindings define the routing tables in each transfer agent. Publishers send messages to individual transfer agents, which then route the messages into mailboxes. Consumers take messages from mailboxes, which creates a powerful and flexible model that is simple.
The AMQP wire-level format is a binary framing with modern features: it is multi-channel, negotiated, asynchronous, secure, portable, neutral, and efficient.
The AMQP wire-level format is split into two layers; a functional layer and a transport layer. The functional layer defines a set of commands (grouped into logical classes of functionality) that do useful work on behalf of the application. The transport layer that carries these methods from application to server, and back, and which handles channel multiplexing, framing, content encoding, heart-beating, data representation, and error handling. Both the transport layer & high-level layers are plugable, which allows evolution of the protocol and the adoption of emerging technologies.
Specifications can be downloaded from Using AMQP page.
See the AMQP Products page.
|
Browse Space |
Explore Confluence |
Your Account |
Add Content |
|
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.5 Build:#811 Jul 25, 2007) |