Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java System Message Queue 3 2005Q1 技術の概要 

第 6 章
Message Queue と J2EE

Java 2 Platform、Enterprise Edition (J2EE プラットフォーム) は、多層アプリケーションとシンクライアントエンタープライズアプリケーションをホストする、標準サーバープラットフォームの仕様です。J2EE プラットフォームの要件の 1 つは、分散コンポーネントが、信頼性の高い非同期メッセージ交換機能により相互に対話できるようにすることです。この対話動作は、JMS プロバイダを使用することによって可能になります。事実上、Message Queue は J2EE プラットフォームの基準 JMS 実装製品です。

この章では、J2EE プラットフォーム環境で実装される派生 JMS について説明します。章には次のトピックが含まれます。

この章では、J2EE コンポーネントのプログラミングと配備の両方について説明しているため、アプリケーション開発者と管理者いずれにも有用です。


JMS/J2EE プログラミング: メッセージ駆動型 Beans

「JMS プログラミングモデル」で説明した一般的な JMS クライアントプログラミングモデルのほかに、さらに JMS に特化したプログラミングモデルがあり、J2EE プラットフォームアプリケーションのコンテキストで使用されます。この特殊な JMS クライアントは、メッセージ駆動型 Beans と呼ばれ、EJB 2.0 仕様 (http://java.sun.com/products/ejb/docs.html) で指定されている Enterprise JavaBeans (EJB) コンポーネントのシリーズの 1 つです。

ほかの EJB コンポーネント (セッション Beans とエンティティ Beans) は同時に呼び出す必要があるため、メッセージ駆動型 Beans が必要となります。これらの EJB コンポーネントは、標準的な EJB インタフェースを介してしかアクセスできないため、非同期メッセージ受信のメカニズムは備わっていません。

ただし、非同期メッセージングは多くのエンタープライズアプリケーションの要件となっています。これらのアプリケーションの多くは、サーバーサイドコンポーネントがサーバーリソースを結びつけずに、相互に通信および応答できることが要件となっています。このため、メッセージのプロデューサにしっかり結合していなくても、メッセージを受信してコンシュームできる EJB コンポーネントが必要になります。この機能は、サーバーサイドコンポーネントがアプリケーションイベントに応答する必要のある、すべてのアプリケーションで必要となります。エンタープライズアプリケーションでは、負荷が増加する場合、この機能を拡張する必要があります。

メッセージ駆動型 Beans (MDB) は、特殊な EJB コンテナ (サポートするコンポーネントに分散サービスを提供するソフトウェア環境) のサポート対象となる特殊な EJB コンポーネントです。

メッセージ駆動型 Beans     MDB は、JMS MessageListener インタフェースを実装する JMS メッセージコンシューマです。MDB 開発者がプログラミングした onMessage メソッドは、MDB コンテナがメッセージを受信したときに呼び出されます。onMessage() メソッドは、標準的な MessageListener オブジェクトの onMessage() メソッドがコンシュームするのと同じように、メッセージをコンシュームします。ほかの EJB コンポーネントの場合とは異なり、メソッドを MDB でリモートに呼び出さないため、これと関連付けられているホームまたはリモートのインタフェースはありません。MDB は単一の送信先からのメッセージをコンシュームできます。図 6-1 にあるように、スタンドアロン JMS アプリケーション、JMS コンポーネント、EJB コンポーネント、および Web コンポーネントにより、メッセージをプロデュースできます。

図 6-1 MDB を使用したメッセージング

図は、J2EE 環境内でコンシューミング MDB インスタンスへメッセージを送信する JMS メッセージプロデューサを示す。

MDB コンテナ     MDB は、専用の EJB コンテナによってサポートされます。この EJB コンテナは、MDB のインスタンスを作成し、メッセージの非同期コンシュームを行うようにインスタンスを設定する役割を担います。これには、メッセージサービスを使用したコネクションの設定 (認証を含む)、特定の送信先に関するセッションのプールの作成、セッションのプールや関連する MDB インスタンスでメッセージが受信されるときのメッセージ分散の管理が含まれます。コンテナは MDB インスタンスのライフサイクルを制御するため、受信メッセージの読み込みに対応できるように、MDB インスタンスのプールを管理します。

コネクションファクトリと送信先のメッセージコンシュームを設定するときに、コンテナに使用される管理対象オブジェクトの JNDI 検索名を指定する配置記述子は、MDB に関連付けられています。また、配置記述子には、コンテナを設定するために配置ツールによって必要とされるほかの情報も含まれます。各コンテナでは、1 つの MDB のインスタンスだけをサポートします。


J2EE アプリケーションサーバーのサポート

J2EE アーキテクチャ (http://java.sun.com/j2ee/download.html#platformspec にある「J2EE Platform Specification」を参照) では、EJB コンテナが J2EE アプリケーションサーバーにホストされます。アプリケーションサーバーは、トランザクションマネージャ、持続マネージャ、ネームサービス、およびメッセージングや MDB の場合には JMS プロバイダなど、さまざまなコンテナで必要とされるリソースを提供します。

Sun Java System アプリケーションサーバーでは、Sun Java System Message Queue によって JMS メッセージングのリソースが提供されます。

JMS リソースアダプタ

リソースアダプタは、J2EE 1.4 に準拠するアプリケーションサーバーに追加機能をプラグインする際の標準的な方法です。J2EE 1.4 は、J2EE Connector Architecture (J2EECA) 1.5 仕様によって定義されています。このアーキテクチャを使用することにより、J2EE 1.4 準拠のアプリケーションサーバーは標準的な手法で外部システムとやり取りできます。これらの外部システムには、さまざまな企業情報システム (EIS)、および JMS プロバイダなどのさまざまなメッセージングシステムが含まれます。Message Queue には、アプリケーションで Message Queue を JMS プロバイダとして使用できるようにする JMS リソースアダプタが組み込まれています。

J2EECA 1.5 によって実装が容易になった標準的なやり取りには、コネクションプーリング、スレッドプーリング、トランザクションとセキュリティのコンテキスト伝達、各種のメッセージ駆動型 Beans コンテナのサポートがあります。仕様には、コネクションファクトリとそのほかの管理対象オブジェクトを作成する標準的な方法も含まれています。

JMS リソースアダプタをアプリケーションサーバーへ接続することにより、アプリケーションサーバーに配備されて稼働している J2EE コンポーネントで、JMS メッセージを交換することができます。これらのコンポーネントに必要となる JMS コネクションファクトリと送信先管理対象オブジェクトは、J2EE アプリケーションサーバー管理ツールを使用して作成し設定されます。

ただし、メッセージサーバーと物理的な送信先の管理など、そのほかの管理操作は J2EECA 仕様には含まれていません。プロバイダ固有のツールを使用しなければ実行できません。

Message Queue リソースアダプタは、Sun J2EE 1.4 アプリケーションサーバーに組み込まれています。ただし、ほかの J2EE 1.4 アプリケーションサーバーではまだ承認されていません。

Message Queue リソースアダプタは、オペレーティングシステムに依存するディレクトリに格納された単一ファイル (imqjmsra.rar) です (『Message Queue 管理ガイド』を参照)。imqjmsra.rar ファイルには、リソースアダプタの配備ディスクリプタ (ra.xml) とともに、アダプタを使用するためにアプリケーションサーバーで必要とされる JAR ファイルが記述されています。

アプリケーションサーバーに添付の説明書に従ってリソースアダプタを配置し設定すれば、J2EE 1.4 準拠のアプリケーションサーバーで Message Queue リソースアダプタを使用できます。商用の J2EE 1.4 アプリケーションサーバーが市販されるようになり、Message Queue リソースアダプタもそれらのアプリケーションサーバー用として承認されるようになれば、Message Queue のマニュアルには関連する配備手順と設定手順についての情報が掲載されるようになります。



前へ      目次      索引      次へ     


Part No: 819-2221.   Copyright 2005 Sun Microsystems, Inc. All rights reserved.