In a recent blog post, Microsoft announced the preview support for Java Message Service (JMS) 2.0 over AMQP in the Azure Service Bus Premium tier. The support will allow customers to modernize their application stack by lifting and shifting their Java and Spring workloads to Azure.
Azure Service Bus is a fully-managed messaging broker service on Azure and supports messaging, and decoupling of applications and services. Over the years the Azure service has evolved, including support for messaging protocols such as AMQP and JMS. The OASIS AMQP 1.0 Protocol adoption in the service bus aligns with other enterprise message brokers since they all share the same open-standard, vendor-neutral, and implementation-neutral protocol. And now the service also supports the JMS 2.0 over AMQP.
Ashish Chhabria, program manager, Azure Messaging at Microsoft, wrote in the blog post:
The Java Enterprise community (and by extension, Spring) has made some forward strides with the Java Message Service (JMS 1.1 and 2.0) specification to standardize the API utilized by producer and consumer applications when interacting with an enterprise messaging broker. The Apache QPID community furthered this by its implementation of the JMS API specification over AMQP. QPID-JMS, whether standalone or as part of the Spring JMS package, is the de-facto JMS implementation for most enterprise customers working with a variety of message brokers.
In addition, Clemens Vasters, architect, Microsoft Azure Messaging, told InfoQ:
Our just-announced JMS support is quite a revolutionary step for how to approach JMS since we did not implement a new provider, at all. We have adopted and started to collaborate on an existing one: Apache Qpid JMS.
Apache Qpid JMS is one JMS provider now shared by three families of brokers: Apache Qpid, Apache ActiveMQ, and Azure Service Bus. For the Apache brokers, this extends to commercial products built on top of them, such as Red Hat AMQ.
Vasters also told InfoQ:
Building on the core AMQP specification, the OASIS AMQP Technical Committee and the adjacent committee defining AMQP protocol bindings have been defined and are still finalizing a set of extensions to AMQP that allow for Apache Qpid JMS to cover 100% of the JMS 2.0 specification - and the brokers implement AMQP and those extensions uniformly in the exact same way.
Developers can connect their existing JMS applications to the service bus by adding the Azure Service Bus JMS Maven package or the Azure Service Bus starter for Spring boot to the application’s pom.xml. Next, they only need to add the Azure Service Bus connection string to the configuration parameters and nothing more.
The benefits for customers leveraging the JMS support in the Azure Service Bus include not managing an enterprise broker themselves, having a lower total cost of ownership (TCO), and handling various workloads easily by leveraging automatic scale up and down provisioning capabilities. Furthermore, they can leverage the integration of the service with other Azure services such as Azure Logic Apps, Functions, and Virtual Networks and Private endpoints.
Currently, the Azure Service Bus is available in most Azure regions, and pricing details are available on the pricing page.