Prise en charge d’AMQP 1.0 dans Service BusAMQP 1.0 support in Service Bus

Le service cloud Azure Service Bus et le Service Bus pour Windows Server (Service Bus 1.1) local prennent en charge le protocole AMQP (Advanced Message Queueing Protocol) 1.0.Both the Azure Service Bus cloud service and on-premises Service Bus for Windows Server (Service Bus 1.1) support the Advanced Message Queueing Protocol (AMQP) 1.0. Le protocole AMQP vous permet de développer des applications hybrides interplateforme à l’aide d’un protocole open standard.AMQP enables you to build cross-platform, hybrid applications using an open standard protocol. Vous pouvez générer des applications à l’aide de composants créés avec plusieurs langages et infrastructures, exécutées sur différents systèmes d’exploitation.You can construct applications using components that are built using different languages and frameworks, and that run on different operating systems. Tous ces composants peuvent se connecter à Service Bus et échanger efficacement et sans difficulté des messages professionnels d’une fidélité optimale.All these components can connect to Service Bus and seamlessly exchange structured business messages efficiently and at full fidelity.

Introduction : qu’est-ce qu’AMQP 1.0 ? En quoi ce protocole est-il important ?Introduction: What is AMQP 1.0 and why is it important?

Traditionnellement, les produits intergiciels (middleware) utilisent des protocoles propriétaires pour la communication entre les applications clientes et les services Broker.Traditionally, message-oriented middleware products have used proprietary protocols for communication between client applications and brokers. Cela signifie qu’une fois que vous avez sélectionné un service Broker de messagerie d’un fournisseur particulier, vous devez utiliser les bibliothèques de ce fournisseur pour connecter vos applications clientes à ce service Broker.This means that once you've selected a particular vendor's messaging broker, you must use that vendor's libraries to connect your client applications to that broker. Cela aboutit à un niveau de dépendance vis-à-vis de ce fournisseur, puisque le portage d’une application vers un produit différent nécessite la modification du code de toutes les applications connectées.This results in a degree of dependence on that vendor, since porting an application to a different product requires code changes in all the connected applications.

De plus, il est compliqué de connecter les services Broker de messagerie de différents fournisseurs.Furthermore, connecting messaging brokers from different vendors is tricky. Cela requiert en général le pontage au niveau de l’application pour le déplacement des messages d’un système à l’autre et pour leur conversion entre les différents formats de messages propriétaires.This typically requires application-level bridging to move messages from one system to another and to translate between their proprietary message formats. Cela est une exigence courante, par exemple, lors de la fourniture d’une nouvelle interface unifiée à plusieurs anciens systèmes ou de l’intégration de systèmes informatiques suite à une fusion.This is a common requirement; for example, when you must provide a new unified interface to older disparate systems, or integrate IT systems following a merger.

Le secteur du logiciel évolue rapidement ; les nouveaux langages de programmation et les nouvelles infrastructures d’application sont parfois inventés à vitesse grand V.The software industry is a fast-moving business; new programming languages and application frameworks are introduced at a sometimes bewildering pace. De même, les besoins des systèmes informatiques évoluent au fil du temps et les développeurs souhaitent profiter des fonctionnalités de plateforme les plus récentes.Similarly, the requirements of IT systems evolve over time and developers want to take advantage of the latest platform features. Cependant, le fournisseur de messagerie sélectionné ne prend parfois pas en charge ces plateformes.However, sometimes the selected messaging vendor does not support these platforms. Ces protocoles de messagerie étant propriétaires, il n’est pas possible pour les autres de fournir des bibliothèques pour ces nouvelles plateformes.Because messaging protocols are proprietary, it's not possible for others to provide libraries for these new platforms. Par conséquent, vous devez utiliser des approches comme la création de ponts ou de passerelles pour continuer à utiliser le produit de messagerie.Therefore, you must use approaches such as building gateways or bridges that enable you to continue to use the messaging product.

Ce sont ces problèmes qui ont motivé le développement d’AMQP (Advanced Message Queuing Protocol) 1.0.The development of the Advanced Message Queuing Protocol (AMQP) 1.0 was motivated by these issues. Il a vu le jour chez JP Morgan Chase, qui, comme la plupart des entreprises proposant des services financiers, est un grand consommateur d’intergiciels orientés messagerie.It originated at JP Morgan Chase, who, like most financial services firms, are heavy users of message-oriented middleware. L’objectif était simple : créer un protocole de messagerie open standard permettant le développement d’applications basées sur des messages à l’aide de composants créés avec plusieurs langages, infrastructures et systèmes d’exploitation, utilisant tous les meilleurs composants disponibles chez divers fournisseurs.The goal was simple: to create an open-standard messaging protocol that made it possible to build message-based applications using components built using different languages, frameworks, and operating systems, all using best-of-breed components from a range of suppliers.

Fonctionnalités techniques d’AMQP 1.0AMQP 1.0 technical features

AMQP 1.0 est un protocole de messagerie « wire-level » efficace et fiable qui peut être utilisé pour créer des applications de messagerie interplateforme robustes.AMQP 1.0 is an efficient, reliable, wire-level messaging protocol that you can use to build robust, cross-platform, messaging applications. Il a un objectif simple : définir les mécanismes du transfert sécurisé, fiable et efficace des messages entre deux tiers.The protocol has a simple goal: to define the mechanics of the secure, reliable, and efficient transfer of messages between two parties. Les messages sont eux-mêmes codés à l’aide d’une représentation portable de données qui permet l’échange haute-fidélité de messages professionnels structurés entre des expéditeurs et des destinataires hétérogènes.The messages themselves are encoded using a portable data representation that enables heterogeneous senders and receivers to exchange structured business messages at full fidelity. La liste suivante décrit les principales caractéristiques :The following is a summary of the most important features:

  • Efficacité : le protocole orienté connexion AMQP 1.0 utilise un codage binaire pour les instructions de protocole et les messages professionnels transférés par son biais.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. Il intègre des schémas de contrôle de flux sophistiqués pour optimiser l’utilisation du réseau et des composants connectés.It incorporates sophisticated flow-control schemes to maximize the utilization of the network and the connected components. Le protocole a été conçu pour garantir l’équilibre entre efficacité, flexibilité et interopérabilité.That said, the protocol was designed to strike a balance between efficiency, flexibility and interoperability.
  • Fiabilité : le protocole AMQP 1.0 permet d’échanger des messages avec diverses garanties de fiabilité (autonomie, fiabilité, remise EOD, etc.).Reliable: The AMQP 1.0 protocol allows messages to be exchanged with a range of reliability guarantees, from fire-and-forget to reliable, exactly-once acknowledged delivery.
  • Flexibilité : AMQP 1.0 est un protocole flexible qui permet de prendre en charge différentes topologies.Flexible: AMQP 1.0 is a flexible protocol that can be used to support different topologies. Vous pouvez utiliser le même protocole pour les communications de client à client, de client à service Broker et de service Broker à service Broker.The same protocol can be used for client-to-client, client-to-broker, and broker-to-broker communications.
  • Indépendance vis-à-vis du répartiteur : la spécification AMQP 1.0 n’applique aucune condition préalable sur le modèle de messagerie utilisé par un répartiteur.Broker-model independent: The AMQP 1.0 specification does not make any requirements on the messaging model used by a broker. Cela signifie qu’il est possible d’ajouter facilement AMQP 1.0 à des services Broker de messagerie existants.This means that it's possible to easily add AMQP 1.0 support to existing messaging brokers.

AMQP 1.0 est une Norme (avec une majuscule N)AMQP 1.0 is a Standard (with a capital 'S')

AMQP 1.0 est une norme internationale approuvée par les organismes ISO et IEC sous la dénomination ISO/IEC 19464:2014.AMQP 1.0 is an international standard, approved by ISO and IEC as ISO/IEC 19464:2014.

AMQP 1.0 est développé depuis 2008 par un groupe de plus de 20 entreprises, aussi bien fournisseurs de technologie que sociétés utilisatrices.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. Les dernières ont ainsi pu couvrir leurs besoins professionnels concrets, tandis que les premiers ont fait évoluer le protocole pour les satisfaire.During that time, user firms have contributed their real-world business requirements and the technology vendors have evolved the protocol to meet those requirements. Tout au long du processus, les fournisseurs ont participé à des ateliers pour valider l’interopérabilité entre leurs implémentations.Throughout the process, vendors have participated in workshops in which they collaborated to validate the interoperability between their implementations.

En octobre 2011, le travail de développement a été confié à un comité technique au sein de l’OASIS (Organization for the Advancement of Structured Information Standards) et la norme OASIS AMQP 1.0 a été publiée en octobre 2012.In October 2011, the development work 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. Les entreprises suivantes ont participé au comité technique dans le cadre du développement de la norme :The following firms participated in the technical committee during the development of the standard:

  • Fournisseurs de technologie : 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.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.
  • Sociétés utilisatrices : Bank of America, Crédit Suisse, Deutsche Boerse, Goldman Sachs, JPMorgan Chase.User firms: Bank of America, Credit Suisse, Deutsche Boerse, Goldman Sachs, JPMorgan Chase.

Les normes ouvertes présentent généralement les avantages suivants :Some of the commonly cited benefits of open standards include:

  • Moins de risque de dépendance vis-à-vis d’un fournisseurLess chance of vendor lock-in
  • InteropérabilitéInteroperability
  • Large disponibilité des bibliothèques et outilsBroad availability of libraries and tooling
  • Protection contre l’obsolescenceProtection against obsolescence
  • Disponibilité du personnel qualifiéAvailability of knowledgeable staff
  • Risque inférieur et gérableLower and manageable risk

AMQP 1.0 et Service BusAMQP 1.0 and Service Bus

Grâce à la prise en charge d’AMQP 1.0 dans à Azure Service Bus, vous pouvez désormais tirer parti des fonctionnalités de messagerie répartie de Service Bus de mise en file d’attente et de publication/d’abonnement à partir de diverses plateformes, à l’aide d’un protocole binaire efficace.AMQP 1.0 support in Azure Service Bus means that you can now leverage the Service Bus queuing and publish/subscribe brokered messaging features from a range of platforms using an efficient binary protocol. De plus, vous pouvez générer des applications constituées de composants créés à l'aide de divers langages, structures et systèmes d'exploitation.Furthermore, you can build applications comprised of components built using a mix of languages, frameworks, and operating systems.

La figure ci-dessous montre un exemple de déploiement dans lequel des clients Java exécutés sous Linux, écrits à l’aide de l’API standard JMS (Java Message Service) et des clients .NET exécutés sous Windows, échangent des messages via Service Bus à l’aide d’AMQP 1.0.The following figure illustrates an example deployment in which Java clients running on Linux, written using the standard Java Message Service (JMS) API and .NET clients running on Windows, exchange messages via Service Bus using AMQP 1.0.

Figure 1 : exemple de scénario de déploiement illustrant la messagerie interplateforme avec Service Bus et AMQP 1.0Figure 1: Example deployment scenario showing cross-platform messaging using Service Bus and AMQP 1.0

Les bibliothèques clientes suivantes fonctionnent actuellement avec Service Bus :At this time the following client libraries are known to work with Service Bus:

LangageLanguage BibliothèqueLibrary
JavaJava Client Apache Qpid Java Message Service (JMS)Apache Qpid Java Message Service (JMS) client
Client IIT Software SwiftMQ JavaIIT Software SwiftMQ Java client
CC Apache Qpid Proton-CApache Qpid Proton-C
PHPPHP Apache Qpid Proton-PHPApache Qpid Proton-PHP
PythonPython Apache Qpid Proton-PythonApache Qpid Proton-Python
C#C# AMQP .NET LiteAMQP .NET Lite

Figure 2 : table des bibliothèques clientes d’AMQP 1.0Figure 2: Table of AMQP 1.0 client libraries

RésuméSummary

  • AMQP 1.0 est un protocole de messagerie efficace et ouvert qui peut être utilisé pour créer des applications hybrides interplateforme.AMQP 1.0 is an open, reliable messaging protocol that you can use to build cross-platform, hybrid applications. AMQP 1.0 est une norme OASIS.AMQP 1.0 is an OASIS standard.
  • La prise en charge d’AMQP 1.0 est désormais disponible dans Azure Service Bus et Service Bus pour Windows Server (Service Bus 1.1).AMQP 1.0 support is now available in Azure Service Bus as well as Service Bus for Windows Server (Service Bus 1.1). Les tarifs sont les mêmes que pour les protocoles existants.Pricing is the same as for the existing protocols.

Étapes suivantesNext steps

Prêt à en savoir plus ?Ready to learn more? Visitez les liens suivants :Visit the following links: