Supporto per il protocollo AMQP 1.0 nel bus di servizioAMQP 1.0 support in Service Bus

Il protocollo AMQP (Advanced Message Queueing Protocol) 1.0 è supportato sia nel servizio cloud del bus di servizio di Azure sia nel bus di servizio per Windows Server (Bus di servizio 1.1) locale.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. AMQP consente di creare applicazioni ibride multipiattaforma usando un protocollo aperto standard.AMQP enables you to build cross-platform, hybrid applications using an open standard protocol. È possibile creare applicazioni usando componenti creati in linguaggi e framework diversi e in esecuzione su sistemi operativi diversi.You can construct applications using components that are built using different languages and frameworks, and that run on different operating systems. Tutti questi componenti possono connettersi al bus di servizio e scambiare in modo lineare ed efficiente messaggi di business strutturati con assoluta fedeltà.All these components can connect to Service Bus and seamlessly exchange structured business messages efficiently and at full fidelity.

Introduzione: informazioni sul protocollo AMQP 1.0 e sulla sua rilevanzaIntroduction: What is AMQP 1.0 and why is it important?

I prodotti middleware orientati ai messaggi hanno tradizionalmente usato protocolli proprietari per le comunicazioni tra applicazioni client e broker.Traditionally, message-oriented middleware products have used proprietary protocols for communication between client applications and brokers. Dopo la selezione di un broker di messaggistica di un fornitore specifico, è pertanto necessario utilizzare le librerie di tale fornitore per connettere le applicazioni client a tale 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. Ne risulta un livello di dipendenza rispetto a tale fornitore, poiché il trasferimento di un'applicazione a un prodotto diverso richiede la modifica del codice per tutte le applicazioni connesse.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.

La connessione di broker di messaggistica da fornitori diversi è inoltre complicataFurthermore, connecting messaging brokers from different vendors is tricky. e richiede in genere bridging a livello di applicazione per lo spostamento dei messaggi da un sistema all'altro e per la conversione nei diversi formati di messaggio proprietari.This typically requires application-level bridging to move messages from one system to another and to translate between their proprietary message formats. Questa esigenza è molto comune, ad esempio, quando è necessario fornire una nuova interfaccia unificata per sistemi diversi precedenti oppure integrare sistemi IT diversi dopo una fusione tra società.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.

Il settore software è caratterizzato da rapido sviluppo. Nuovi linguaggi di programmazione e framework applicazione vengono introdotti a ritmo sorprendente.The software industry is a fast-moving business; new programming languages and application frameworks are introduced at a sometimes bewildering pace. Analogamente, i requisiti dei sistemi IT si evolvono nel tempo e gli sviluppatori desiderano avvalersi delle possibilità offerte dai linguaggi e dalle funzionalità più recenti della piattaforma.Similarly, the requirements of IT systems evolve over time and developers want to take advantage of the latest platform features. A volte, tuttavia, il fornitore di messaggistica selezionato non supporta tali piattaforme.However, sometimes the selected messaging vendor does not support these platforms. Poiché vengono usati protocolli di messaggistica proprietari, non è possibile offrire librerie diverse per le nuove piattaforme.Because messaging protocols are proprietary, it's not possible for others to provide libraries for these new platforms. Pertanto, è necessario usare approcci come la creazione di gateway o bridge che consentano di continuare a usare il prodotto di messaggistica.Therefore, you must use approaches such as building gateways or bridges that enable you to continue to use the messaging product.

Il protocollo AMQP (Advanced Message Queuing Protocol) 1.0 è stato sviluppato per risolvere questi problemiThe development of the Advanced Message Queuing Protocol (AMQP) 1.0 was motivated by these issues. presso JP Morgan Chase, che, come la maggior parte delle aziende del settore dei servizi finanziari, fa ampio uso di prodotti middleware orientati alla messaggistica.It originated at JP Morgan Chase, who, like most financial services firms, are heavy users of message-oriented middleware. L'obiettivo da raggiungere era semplice: creare un protocollo di messaggistica a standard aperto che consentisse di creare applicazioni basate sui messaggi usando componenti creati in linguaggi, framework e sistemi operativi diversi, avvalendosi dei migliori prodotti offerti da diversi fornitori.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.

Caratteristiche tecniche del protocollo AMQP 1.0AMQP 1.0 technical features

AMQP 1.0 è un protocollo di messaggistica wire-level efficiente e affidabile che può essere utilizzato per creare applicazioni di messaggistica multipiattaforma e affidabili.AMQP 1.0 is an efficient, reliable, wire-level messaging protocol that you can use to build robust, cross-platform, messaging applications. Questo protocollo assolve a uno scopo semplice, ovvero definire i meccanismi per la trasmissione sicura, affidabile ed efficiente dei messaggi tra due parti.The protocol has a simple goal: to define the mechanics of the secure, reliable, and efficient transfer of messages between two parties. I messaggi stessi vengono codificati usando una rappresentazione dati portatile che consente a mittenti e destinatari eterogenei di scambiarsi messaggi di business strutturati con assoluta fedeltà.The messages themselves are encoded using a portable data representation that enables heterogeneous senders and receivers to exchange structured business messages at full fidelity. Di seguito sono riepilogate le caratteristiche più importanti:The following is a summary of the most important features:

  • Efficienza: AMQP 1.0 è un protocollo orientato alla connessione che usa una codifica binaria per le istruzioni del protocollo e per i messaggi aziendali trasmessi.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. Integra sofisticati schemi di controllo di flusso per massimizzare l'uso della rete e dei componenti connessi.It incorporates sophisticated flow-control schemes to maximize the utilization of the network and the connected components. In ogni caso, il protocollo è stato progettato per assicurare un equilibrio tra efficienza, flessibilità e interoperabilità.That said, the protocol was designed to strike a balance between efficiency, flexibility and interoperability.
  • Affidabilità: il protocollo AMQP 1.0 consente lo scambio di messaggi con una serie di garanzie di affidabilità, dal "fire-and-forget" al recapito confermato affidabile di tipo "exactly-once".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.
  • Flessibilità: AMQP 1.0 è un protocollo flessibile che consente di supportare diverse topologie.Flexible: AMQP 1.0 is a flexible protocol that can be used to support different topologies. È possibile utilizzare lo stesso protocollo per le comunicazioni client-client, client-broker e broker-broker.The same protocol can be used for client-to-client, client-to-broker, and broker-to-broker communications.
  • Indipendenza dal modello di broker: il protocollo AMQP 1.0 non prevede requisiti relativi al modello di messaggistica usato da un broker.Broker-model independent: The AMQP 1.0 specification does not make any requirements on the messaging model used by a broker. È pertanto possibile aggiungere con facilità il supporto per il protocollo AMQP 1.0 ai broker di messaggistica esistenti.This means that it's possible to easily add AMQP 1.0 support to existing messaging brokers.

AMQP 1.0 è uno standard affermatoAMQP 1.0 is a Standard (with a capital 'S')

AMQP 1.0 è uno standard internazionale approvato da ISO e IEC come ISO/IEC 19464:2014.AMQP 1.0 is an international standard, approved by ISO and IEC as ISO/IEC 19464:2014.

Lo sviluppo di AMQP 1.0 procede dal 2008 a opera di un gruppo fondamentale di oltre 20 società, di cui fanno parte fornitori di tecnologie e aziende utenti finali.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. In questo lasso di tempo, le aziende utenti hanno comunicato i propri requisiti aziendali reali e i fornitori di tecnologie hanno proseguito lo sviluppo del protocollo con l'intento di soddisfarli.During that time, user firms have contributed their real-world business requirements and the technology vendors have evolved the protocol to meet those requirements. Nel corso del processo i fornitori hanno partecipato a workshop, che hanno permesso loro di collaborare per verificare l'interoperabilità tra le diverse implementazioni.Throughout the process, vendors have participated in workshops in which they collaborated to validate the interoperability between their implementations.

A ottobre 2011 il lavoro di sviluppo è passato a un comitato tecnico all'interno della Organization for the Advancement of Structured Information Standards (OASIS) e a ottobre 2012 è stato rilasciato lo standard OASIS AMQP 1.0.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. Del comitato tecnico hanno fatto parte le seguenti aziende durante lo sviluppo dello standard:The following firms participated in the technical committee during the development of the standard:

  • Fornitori di tecnologie: 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.
  • Aziende utenti: Bank of America, Credit Suisse, Deutsche Boerse, Goldman Sachs, JPMorgan Chase.User firms: Bank of America, Credit Suisse, Deutsche Boerse, Goldman Sachs, JPMorgan Chase.

Di seguito sono indicati alcuni dei vantaggi più apprezzati degli standard aperti:Some of the commonly cited benefits of open standards include:

  • Minore possibilità di blocco da parte del fornitoreLess chance of vendor lock-in
  • InteroperabilitàInteroperability
  • Ampia disponibilità di librerie e strumentiBroad availability of libraries and tooling
  • Protezione dall'obsolescenzaProtection against obsolescence
  • Disponibilità di personale competenteAvailability of knowledgeable staff
  • Rischio ridotto e gestibileLower and manageable risk

AMQP 1.0 e bus di servizioAMQP 1.0 and Service Bus

Grazie al supporto del protocollo AMQP 1.0 al bus di servizio di Azure, è ora possibile usare le funzionalità di accodamento e di messaggistica negoziata di pubblicazione/sottoscrizione del bus di servizio offerte da numerose piattaforme, usando un protocollo binario efficiente.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. Inoltre, è possibile creare applicazioni costituite da componenti creati con un insieme di linguaggi, framework e sistemi operativi.Furthermore, you can build applications comprised of components built using a mix of languages, frameworks, and operating systems.

La figura riportata di seguito illustra una distribuzione di esempio, in cui i client Java in esecuzione su Linux, scritti usando l'API JMS (Java Message Service) standard, e i client .NET in esecuzione su Windows si scambiano messaggi tramite il bus di servizio usando il protocollo 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.

Figura 1: Scenario di distribuzione di esempio, in cui per la messaggistica tra diverse piattaforme usa il bus di servizio e il protocollo AMQP 1.0Figure 1: Example deployment scenario showing cross-platform messaging using Service Bus and AMQP 1.0

È attualmente possibile utilizzare le librerie client seguenti con il bus di servizio:At this time the following client libraries are known to work with Service Bus:

LinguaggioLanguage LibreriaLibrary
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

Figura 2: Tabella delle librerie client del protocollo AMQP 1.0Figure 2: Table of AMQP 1.0 client libraries

RiepilogoSummary

  • AMQP 1.0 è un protocollo di messaggistica aperto e affidabile, che può essere utilizzato per creare applicazioni ibride multipiattaforma.AMQP 1.0 is an open, reliable messaging protocol that you can use to build cross-platform, hybrid applications. AMQP 1.0 è uno standard OASIS.AMQP 1.0 is an OASIS standard.
  • Il supporto per il protocollo AMQP 1.0 è ora disponibile nel bus di servizio di Azure e nel bus di servizio per 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). La determinazione dei prezzi è analoga a quella dei protocolli esistenti.Pricing is the same as for the existing protocols.

Passaggi successiviNext steps

Per altre informazioni,Ready to learn more? vedere i collegamenti seguenti:Visit the following links: