Advanced Message Queuing Protocol
# Advanced Message Queuing Protocol

Advanced Message Queuing Protocol (AMQP) è uno standard aperto che definisce un protocollo a livello applicativo per il message-oriented middleware. AMQP è definito in modo tale da garantire funzionalità di messaggistica, accodamento, routing (con paradigmi punto-punto e pubblicazione-sottoscrizione), affidabilità e sicurezza.

AMQP è un protocollo wire-level che definisce il comportamento del broker e del client di messaggistica al fine di rendere interoperabili le implementazioni di diversi fornitori, allo stesso modo di protocolli quali SMTP, HTTP, FTP, ecc. Si tratta di una standardizzazione che definisce ciò che viene scambiato in rete e si pone quindi ad un livello diverso rispetto a quella proposta da JMS che definisce invece un API ed un insieme di comportamenti che un sistema di messaging deve avere.

## Specifiche di protocollo

La versione corrente delle specifiche è la 1.0. Questa versione si concentra sulle funzioni di base necessarie per l'interoperabilità a livello Internet e contiene meno dettagli espliciti sul routing rispetto alle versioni precedenti. L'interoperabilità di AMQP 1.0 è stata testata in modo molto più esteso rispetto alle versioni precedenti grazie alla collaborazione tra un numero maggiore di implementatori.

Il sito di AMQP contiene le specifice OASIS per la versione 1.0.

Versioni precedenti di AMQP, pubblicate precedentemente al rilascio della 1.0 e che differiscono da essa in modo significativo, includono:

* AMQP 0-9-1, di cui esistono implementazioni client per molti linguaggi e piattaforme popolari
* AMQP 0-10

## Implementazioni

### AMQP 1.0

* Apache ActiveMQ, un progetto open source della Apache Software Foundation
* Apache Qpid, un progetto open source della Apache Software Foundation
* Solace PubSub+, un broker in multiprotocollo con implementazioni hardware, software e cloud

### AMQP Pre-1.0

* RabbitMQ, un progetto open source sponsorizzato da Pivotal che supporta AMQP 0-9-1, e 1.0 attraverso un plugin sperimentale
* JORAM, un'implementazione open source in Java del OW2 Consortium
* Apache Qpid che mantiene il supporto per varie versioni di AMQP
