JMS, Apache ActiveMQ

1.JMSの基礎 | TECHSCORE(テックスコア)

JMSとはJava Message Serviceの略で、Javaでメッセージングサービスを利用するための標準APIです。 メッセージングとはプログラム間でデータを細かにわけるのではなく、一つのメッセージオブジェクトを作成して通信を行うことです。 常に接続が維持されている必要はなく、非同期に通信を行うことが出来ます。 実装されたメッセージングサービスはいくつかありますが、ここではオープンソースで開発された ActiveMQを使用します。 ActiveMQのインストールとサーバの起動については後述します。

メッセージングの概念を理解するために、宅配便に例えて解説を行います。

あなたは、ある宛先に対して送りたい物(オブジェクト)あったとします。 送るためには封筒やダンボールを用いて梱包を行う必要があります。 梱包された荷物(メッセージオブジェクト)に宛先を記入し、 数ある運送業者(中継サーバ)の中から一つを選択して荷物の配達をお願いします。 送り主がするべきことはこれで終わりますが、現在の荷物の状況を確かめることなどが運送業者によって可能になっていることもあります。

運送業者は書かれた宛先に対して荷物を配達します。もしその宛先が留守であれば(接続されていないならば)いったん持ち帰り、荷物を保存しておきます。 受け取り主が運送業者に対して配信を申し込んだ場合や、指定した時間が立った後、運送業者は再配信を行います。 受け取り主は届いた荷物から中身を取り出すことで、送信された物(オブジェクト)を受け取ることが出来ます。

これがメッセージングの一連の流れです。JMSではこのような一対一での通信以外にも複数の宛先に対してメッセージを送ることも出来るようになっています。