コンテンツにスキップ

Java Message Service

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。SnowBot (会話 | 投稿記録) による 2011年9月20日 (火) 10:11個人設定で未設定ならUTC)時点の版 (ロボットによる: カテゴリの差し替え (Category:API))であり、現在の版とは大きく異なる場合があります。

Java Message ServiceとはJavaプログラムネットワークを介してデータを送受信させるためのAPIである。

Java EE 1.3プラットフォームに標準で含まれている。データを1つずつバラバラに扱うのではなく、メッセージと呼ばれる塊にまとめて送信する、メッセージング機能が使えるようになる。また、一対一の同期通信の他、複数の宛先に同じメッセージを送信したり、メッセージを非同期に通信したりすることもできる。

メッセージングの一般的な概念

メッセージングとは、疎結合分散通信形式のひとつの形式である。この文脈上での"通信"とはソフトウェアコンポーネント間のメッセージ交換である。

メッセージ指向技術は、キューのような仲介役のコンポーネントの導入によって密結合通信(TCPネットワークソケット、CORBA、 RMIのような)を緩和する。 このアプローチによって、ソフトウェアコンポーネントがお互いに"間接的に"通信するようになる。

この利益は、キューを使用して通信する場合に、

メッセージ送信者が正確に受信者を知る必要がないということも含んでいる。 ポイント・ツー・ポイント出版-購読型モデルの2形式が存在する。

モデル

JMS API は二つのモデルをサポートする。

ポイント・ツー・ポイントにおいて、送信者は特定のキューへメッセージを送信し受信者はそのキューからメッセージを読み込む。 ここで送信者は、メッセージの宛先を知っていて、受信者のキューに対して直接メッセージを送信している。 これは、次のことを特色づける

  • ただ一人だけの消費者がメッセージを取得できる
  • 生産者は、消費者がメッセージを消費するときに、稼働していなくてもよい。また、消費者もメッセージが送信されたときに稼働していなくてもよい。


出版-購読型モデルでは、特定のメッセージトピックに対してメッセージを出版することができる。 購読者は、受信対象のメッセージトピックに対して購読要求を行う。 このモデルでは、出版者と購読者がお互いに知ることがない。

いい比喩として匿名掲示板が挙げられる。

このモデルの特徴を以下に挙げる。

  • 複数の購読者が、メッセージを取得できる。
  • 出版者と購読者間の依存タイミングが存在する。


出版者は、クライアントが購読可能になるためにサブスクリプションを生成しなくてはいけない。購読者は、持続的なサブスクリプションが確立されている間、継続的に受信し続けていなくてはいけない。

JMSは、アプリケーションをデータの転送レイヤから切り離す方法を提供する。 同じくJavaクラスは、プロバイダを要求するJNDIを使用することによって、異なるJMSプロバイダを通信を行うために利用することができる。 始めに、キューかトピックに接続するためにconnection factoryを使用し、そしてメッセージを送信、もしくは出版する。 受信者側では、メッセージを受信、もしくは購読する。

関連項目