先日のブログ記事で、Microsoft は Azure Service Bus Premium 層で AMQP を介した Java Message Service (JMS) 2.0 のプレビューサポートを発表した。 このサポートにより、顧客は Java や Spring のワークロードを Azure にリフト&シフトすることで、アプリケーションスタックを近代化できるようになる。
Azure Service Bus は、Azure 上のフルマネージドのメッセージングブローカーサービスだ。これはメッセージング、アプリケーションとサービスのデカップリングをサポートする。長年にわたり、AMQP や JMS などのメッセージングプロトコルのサポートなど、Azure サービスは進化してきた。サービスバスでの OASIS AMQP 1.0 プロトコルの採用は、他のエンタープライズ・メッセージ・ブローカーと連携している。というのも、すべて同じオープンスタンダード、ベンダーニュートラル、実装ニュートラルなプロトコルを共有しているからだ。また、AMQP を利用した JMS 2.0 にも対応している。
Microsoft で Azure Messaging のプログラムマネージャーを務める Ashish Chhabria 氏は、ブログ記事の中でこう書いている。
Java Enterprise コミュニティ(ひいてはSpring)は、いくつかの前進を遂げてきました。プロデューサとコンシューマ・アプリケーションが利用する API を標準化するために、Java Message Service (JMS 1.1 and 2.0) 仕様を使用しています。エンタープライズ・メッセージング・ブローカーと対話する際には、以下のようにします。Apache QPID コミュニティは、AMQP 上の JMS API 仕様を実装することで、これをさらに推し進めました。QPID-JMS は、スタンドアロンでも Spring JMS パッケージの一部としても、さまざまなメッセージブローカーを扱うほとんどのエンタープライズ顧客にとって、事実上のJMS 実装です。
さらに、Microsoft Azure Messaging のアーキテクトである Clemens Vasters 氏が InfoQ に語った。
今回発表されたばかりの JMS サポートは、新しいプロバイダを全く導入していなかったので、JMS へのアプローチ方法としてはかなり画期的なものです。既存のものを採用し、コラボレーションを開始しました。それがApache Qpid JMSです。
Apache Qpid JMS は、現在 3 つのブローカーのファミリーで共有されている1つの JMS プロバイダーだ。それらはApache Qpid、Apache ActiveMQ、Azure Service Busだ。Apache ブローカーでは、これは Red Hat AMQ のような Apache の上に構築された商用製品にまで及んでいる。
Vasters 氏はまた、InfoQに語った。
コアとなる AMQP 仕様に基づいて、OASIS AMQP 技術委員会と隣接する AMQP プロトコルバインディングを定義する委員会が定義されています。これらはまだ AMQP の拡張セットを最終決定しています。これにより、Apache Qpid JMS が JMS 2.0 仕様の 100% をカバーできるようになりました。そして、ブローカーは AMQP とその拡張機能を全く同じ方法で一様に実装しています。
開発者は、既存の JMS アプリケーションをサービスバスに接続することができる。その方法はアプリケーションのpom.xml に Azure Service Bus JMS Maven パッケージまたは Spring Boot 用の Azure Service Bus スターターを追加する。次に必要なのは、設定パラメータに Azure Service Bus 接続文字列を追加するだけで、それ以上は何もありません。
Azure Service Bus の JMS サポートを活用する顧客のメリットは、エンタープライズブローカーを自分で管理する必要がないこと、総所有コスト(TCO)が低いこと、自動スケールアップ/ダウンのプロビジョニング機能を活用して様々なワークロードを簡単に処理できることなどが挙げられる。さらに、Azure Logic Apps、Functions、仮想ネットワーク、プライベートエンドポイントなど、他の Azure サービスとの統合を活用できる。
現在、Azure Service Bus はほとんどの Azure リージョンで利用可能で、価格の詳細は価格ページに掲載されている。