AMQP - это стандарт уровня приложения для Message Oriented Middleware (MOM). JMS - это стандартный API для Java для связи с MOM.
Два разных Java-приложения, использующих JMS, могут использовать разные MOM и, следовательно, по-прежнему не могут общаться. ActiveMQ - это система MOM с библиотекой JMS, которая позволяет программам Java получать к ней доступ через JMS, но она не обязательно может взаимодействовать с другой программой Java JMS с помощью, скажем, WebLogic MOM.
Различные системы AMQP MOM могут взаимодействовать друг с другом (при условии, что они используют одну и ту же версию AMQP), поскольку AMQP является стандартом в том же ключе, что и SMTP. Нет причины, по которой система AMQP MOM не могла бы также предоставить библиотеку JMS для своих клиентов Java. SwiftMQ, например, предоставляет JMS API и использует AMQP 1.0.
К сожалению, не все системы AMQP (а их много) еще не используют версию 1.0 AMQP. RabbitMQ (на момент написания этой статьи) еще не предоставлял поддержку AMQP 1.0. Некоторые из других систем AMQP - это Apache QPID и StormMQ, но есть много других. Как только все они поддерживают AMQP 1.0, все они должны взаимодействовать друг с другом.
На их сайте по адресу http://activemq.apache.org/amqp.html, ActiveMQ говорит: «Мы ожидаем, что ActiveMQ реализует последнюю версию, как только она будет завершена. Но в настоящее время ActiveMQ не реализует AMQP». Теперь, когда вышел AMQP 1.0, от ActiveMQ больше нет сведений о том, когда они его поддержат.