[JMS 2.0 ]

IBM MQ classes for JMSを使用する必要があるのはなぜですか?

あらゆる既存の JMS スキルを組織内でしようできるようになることや、JMS プロバイダーから、より独立しているアプリケーションと基礎となる IBM MQ 構成など、IBM® MQ classes for JMS の使用には多くの利点があります。

IBM MQ classes for JMS を使用する利点の要約

IBM MQ classes for JMS を使用すると、既存の JMS スキルを再利用して、アプリケーションの独立性を確保することができます。

[MQ 9.3.0 Jun 2022][MQ 9.3.0 Jun 2022]
注: JMS 2.0Jakarta Messagingに置き換えられました。 IBM MQ classes for JMS は引き続き JMS 2.0 標準をサポートしますが、 Java メッセージングに対する将来の機能拡張は Jakarta Messagingでのみ行われるため、 IBM MQ classes for Jakarta Messagingで行われます。 IBM MQ classes for JMS は、既存の JMS 2.0 アプリケーションを保守および拡張する場合にのみ推奨されます。 IBM MQ classes for Jakarta Messaging は、新しい開発に推奨されるテクノロジーでなければなりません。
  • JMS スキルを再利用できます。

    IBM MQ classes for JMS は、 IBM MQ 用の JMS インターフェースをメッセージング・システムとして実装する JMS プロバイダーです。 お客様の組織が IBM MQ を初めて使う組織であっても、既に JMS アプリケ-ション開発スキルを持っている場合は、IBM MQ で提供されているその他の API のいずれかを使うよりも、使い慣れた JMS API を使って、IBM MQ リソースにアクセスするほうがより容易に行えます。

  • JMS は、 Java Platform, Enterprise Edition (Java EE) の整数部分です。

    JMS は、 Java EE プラットフォームでのメッセージングに使用する自然 API です。 Java EE 準拠のすべてのアプリケーション・サーバーには、 JMS プロバイダーが含まれている必要があります。 JMS は、アプリケーション・クライアント、サーブレット、 Java Server Pages (JSP)、Enterprise Java Bean (EJB)、およびメッセージ駆動型 Bean (MDB) で使用することができます。 特に、 Java EE アプリケーションは MDB を使用してメッセージを非同期に処理し、すべてのメッセージは JMS メッセージとして MDB に送信されることに注意してください。

  • 接続ファクトリーおよび宛先は、アプリケーションにハードコーディングされるのではなく、 JMS 管理対象オブジェクトとして中央リポジトリーに保管することができます。

    管理者は、中央リポジトリーで JMS 管理対象オブジェクトを作成および保守することができ、IBM MQ classes for JMS アプリケーションは、Java Naming Directory Interface (JNDI) を使用してこれらのオブジェクトを取得できます。JMS 接続ファクトリーおよび宛先は、キュー・マネージャー名、チャネル名、接続オプション、キュー名、およびトピック名など、IBM MQ 固有の情報をカプセル化します。 接続ファクトリーおよび宛先が管理対象オブジェクトとして保管される場合、この情報はアプリケーションにハードコーディングされません。 したがって、この配置により、基礎となる IBM MQ 構成からある程度の独立性がアプリケーションに提供されます。

  • JMS は、アプリケーションの移植性を提供できる業界標準の API です。

    JMS アプリケーションは、 JNDI を使用して、管理対象オブジェクトとして保管されている接続ファクトリーおよび宛先を取得し、 javax.jms パッケージで定義されているインターフェースのみを使用してメッセージング操作を実行できます。 これにより、アプリケーションは、 IBM MQ classes for JMSなどの JMS プロバイダーから完全に独立し、アプリケーションに変更を加えることなく、ある JMS プロバイダーから別のプロバイダーに移植することができます。

    特定のアプリケーション環境で JNDI を使用できない場合、 IBM MQ classes for JMS アプリケーションは JMS API の拡張機能を使用して、実行時に接続ファクトリーと宛先を動的に作成して構成することができます。 これにより、アプリケーションは完全に自己完結型になりますが、 JMS プロバイダーとして IBM MQ classes for JMS に結合されます。

  • JMSを使用すると、ブリッジ・アプリケーションの作成が容易になる場合があります。

    ブリッジ・アプリケーションとは、メッセージをあるメッセージング・システムから受信し、それを別のメッセージング・システムに送信するアプリケーションです。 プロダクト固有の API およびメッセージ形式を使用してブリッジ・アプリケーションを作成することは、複雑になる可能性があります。 代わりに、メッセージング・システムごとに 1 つずつ、2 つの JMS プロバイダーを使用してブリッジ・アプリケーションを作成することができます。 これにより、アプリケーションは 1 つの API ( JMS API) のみを使用し、 JMS メッセージのみを処理します。

実装可能な環境

Java EE アプリケーション・サーバーとの統合を提供するために、 Java EE 標準では、メッセージング・プロバイダーがリソース・アダプターを提供する必要があります。 Java EE Connector Architecture (JCA) 仕様に従って、 IBM MQ は、 JMS を使用して、認定された Java EE 環境内でメッセージング機能を提供するリソース・アダプターを提供します。

Java EE内で IBM MQ classes for Java を使用することは可能ですが、この API はこの目的のために設計または最適化されていません。 Java EE内での IBM MQ classes for Java の考慮事項について詳しくは、 Java EE内での IBM MQ classes for Java アプリケーションの実行を参照してください。

Java EE 環境の外部では、OSGi ファイルと JAR ファイルが提供されているため、 IBM MQ classes for JMSのみを入手することが容易になります。 これらの JAR ファイルは、スタンドアロンでデプロイすることも、Maven などのソフトウェア管理フレームワーク内でデプロイすることもできます。 詳しくは、 IBM MQ classes for JMS および IBM MQ classes for Jakarta Messaging の個別取得を参照してください。