エンタープライズへの適用

JMSとは何ですか?

テンアートニ 中越智哉
2001/8/10

 JMSとは、Java Messaging Serviceの略で、名前が示すとおり、Javaでメッセージングの機能を提供するAPIです(メッセージングそのものについては、「Webアプリケーションとホストを連携する手法を教えてください」に説明がありますのでそちらを参考にしてください)。

 Javaでメッセージングの機能を実現するミドルウェアとしては、IBMのMQSeriesや、TIBCO SoftwareのTIB/Rendezvous、BEAのWebLogic JMS サービス、ProgressのSonicMQなどがあります。JMSが登場する以前は、これらのミドルウェア間には基本的にAPIの互換性はなく、各ベンダ独自のAPIを使用する必要がありました。そのことは、アプリケーションのコードにベンダ依存性を生じさせることになり、システムの移行などの際に、ポータビリティを損なう原因になります。

 エンタープライズの分野において、特にホスト・メインフレームなどのレガシーシステムとの連携を行う場合には、メッセージングの機能は不可欠なものになりつつあるため、Javaの「Write Once,Run Anywhere」を保つための、標準的なAPIが望まれていました。

 JMSは、J2EEに標準で含まれているAPIで、ほかのAPIと同様、メッセージング機能の実装に関するベンダ依存性をなくして、コードのポータビリティや相互運用性を高める(異なるベンダ間での通信など)という目的があります。ですから、既存のミドルウェア群も、J2EE互換認定を受けるために、JMS準拠の実装に変わってくるものと考えられます。J2EE 1.3(次期リリース)では、JMSの最新バージョンであるJMS 1.0.2がバンドルされます。

※J2EE 1.2では、JMSの実装までは要求されていませんでしたが、J2EE 1.3からは、J2EEの認定を受けるためには、JMSの実装も含めて提供する必要があるようです。

 また、JMSを利用するうえで深いかかわりを持つのが、EJB 2.0で新たに登場した「Message Driven Bean」(メッセージ駆動型Bean)です。これは、メッセージングに対応したBeanで、メッセージの受信をトリガとして、特定メソッドを実行させることができます。このデザインは、いわゆるイベントモデルとよく似ており、イベントリスナと同じように、MessageListenerというインターフェイスを実装することで実現します。EJBにMessage Driven Beanが加わったことによって、J2EEのアーキテクチャにのっとってメッセージングを実装することが容易になったといえるでしょう。

 

「Java Solution FAQ」





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間