This topic has not yet been rated - Rate this topic

Service Bus AMQP Overview

noteNote
This guide assumes that you already have a Service Bus service namespace. If not, you can create one using the Windows Azure Management Portal. For a detailed walk-through of how to create Service Bus service namespaces and queues, see How to Use Service Bus Queues.

The addition of AMQP 1.0 to Windows Azure Service Bus means that it’s now possible to leverage the queuing and publish/subscribe brokered messaging features of Service Bus from a range of platforms, using an efficient binary protocol. Furthermore, you can build applications that are comprised of components built using a mix of languages, frameworks, and operating systems. This developer’s guide explains how to use the Service Bus brokered messaging features (Queues and publish/subscribe Topics) using .NET, Java, Python, and PHP via AMQP 1.0.

The following diagram illustrates an example deployment in which Java clients that run on Linux, written using the standard Java Message Service (JMS) API, and .NET clients that run on Windows, exchange messages via Service Bus using AMQP 1.0.

Service Bus AMQP Example Deployment

Supported Client Libraries

Currently the following client libraries are known to work with Service Bus:

 

Language Library

C#

Service Bus .NET Client Library

Java

Apache Qpid Java Message Service (JMS) client

IIT SwiftMQ Java client

C

Apache Qpid Proton-C

PHP

Apache Qpid Proton-PHP

Python

Apache Qpid Proton-Python

AMQP 1.0 technical features

AMQP 1.0 is an efficient, reliable, wire-level messaging protocol that can be used to build robust, cross-platform, messaging applications. The protocol has a simple goal, namely to define the mechanics of securely, reliably and efficiently transferring messages between two parties. The messages themselves are encoded using a portable data representation that allows heterogeneous senders and receivers to exchange structured business messages at full-fidelity. The following list summarizes the most important features:

  • Efficient: AMQP 1.0 is a connection-oriented protocol that uses a binary encoding for the protocol instructions and the business messages transferred over it. It incorporates sophisticated flow-control schemes to maximize the utilization of the network and the connected components. That said, the protocol was designed to strike a balance between efficiency, flexibility, and interoperability.

  • Reliable: The AMQP 1.0 protocol allows you to exchange messages with a range of reliability guarantees, from fire-and-forget to reliable, exactly-once acknowledged delivery.

  • Flexible: AMQP 1.0 is a flexible protocol that you can use to support different topologies. You can use the same protocol for client-to-client, client-to-broker, and broker-to-broker communications.

  • Broker-model independent: The AMQP 1.0 specification does not enforce any requirements on the messaging model used by a broker. This behavior means that it’s possible to add AMQP 1.0 support to existing messaging brokers.

AMQP 1.0 is a Standard

AMQP 1.0 has been in development since 2008 by a core group of more than 20 companies, both technology suppliers and end-user firms. During that time, user firms have contributed their real-world business requirements and the technology vendors have evolved the protocol to meet them. Throughout the process, vendors have participated in connect-a-thon workshops where they’ve collaborated to validate interoperability between their implementations.

In October 2011, the development work was transitioned to a technical committee within the Organization for the Advancement of Structured Information Standards (OASIS) and the OASIS AMQP 1.0 Standard was released in October 2012. The following firms participated in the technical committee during the development of the standard:

  • Technology vendors: Axway Software, Huawei Technologies, IIT Software, INETCO Systems, Kaazing, Microsoft, Mitre Corporation, Primeton Technologies, Progress Software, Red Hat, SITA, Software AG, Solace Systems, VMware, WSO2, Zenika.

  • User firms: Bank of America, Credit Suisse, Deutsche Boerse, Goldman Sachs, JPMorgan Chase.

Some of the commonly cited benefits of open standards include:

  • Less chance of vendor lock-in

  • Interoperability

  • Broad availability of libraries and tooling

  • Protection against obsolescence

  • Availability of knowledgeable staff

  • Lower and manageable risk

Important notice

Support for the AMQP 1.0 protocol in the Windows Azure Service Bus (“AMQP Preview”) is provided as a preview feature, and is governed by the Windows Azure Preview terms of use. Specifically, note that:

  1. The Service Bus SLA does not apply to the AMQP Preview.

  2. Any queue or topic that is addressed using the AMQP client libraries (for sending/receiving messages or other data) might not be preserved during the AMQP Preview or at the end of the AMQP Preview.

  3. We may make breaking changes to AMQP-related APIs or protocols during or at the end of the AMQP Preview.

Did you find this helpful?
(1500 characters remaining)

Community Additions

ADD
© 2013 Microsoft. All rights reserved.
facebook page visit twitter rss feed newsletter