5 JMXコネクタを使用したリソースのリモート管理

Java Management Extensions Instrument and Agent Specification』では、「コネクタ」という概念を定義しています。コネクタを使用すると、Java Management Extensions (JMX)テクノロジのMBeanサーバーからJavaテクノロジベースのリモート・クライアントへのアクセスが可能になります。コネクタのクライアント側は、MBeanサーバーと基本的に同じインタフェースをエクスポートします。

コネクタは、コネクタ・クライアントとコネクタ・サーバーからなります。コネクタ・サーバーはMBeanサーバーに接続して、クライアントからの接続要求を待機します。コネクタ・クライアントは、コネクタ・サーバーとの接続を確立します。通常、コネクタ・クライアントは、コネクタ・サーバーとは別のJava仮想マシン(JVM)内にあり、別のマシン上で実行されることが多くあります。

コネクタは、さまざまな実装が可能です。特に、クライアントとサーバーの間の接続で通信するためのプロトコルは多種多様です。

コネクタ・サーバーには通常、アドレスがあり、コネクタ・クライアントとコネクタ・サーバーの間で接続を確立するために使用されます。コネクタによっては、接続の確立のために、接続スタブを用意している場合もあります。接続が確立される方法は、使用する検出、検索テクノロジに依存します。検出、検索サービスを参照してください。

このセクションでは、JMX Remote API仕様で定義されたさまざまな種類のコネクタと、コネクタで使用されるプロトコルについて説明します。

  • RMIコネクタ: JMX Remote API標準に準拠する実装では、標準Remote Method Invocation (RMI)プロトコルをサポートする必要があります。
  • ジェネリック・コネクタ: JMX Remote API標準では、TCPソケットを直接基にしたオプションのプロトコルであるJMX Messaging Protocol (JMXMP)を定義しています。標準の実装では、JMXMPコネクタを除外することもできますが、RMIコネクタは除外できません。Java SEプラットフォームにはオプションのJMXMPコネクタは含まれていません。
  • ユーザー定義プロトコル: コネクタではJMXテクノロジで定義されていないプロトコルを実装することもできます。

RMIコネクタ

JMX Remote API標準では、RMIを基にした標準プロトコルを定義しています。RMIコネクタは、JMX Remote APIの各実装に存在しなければなりません。

RMIコネクタは、Java Remote Method Protocol (JRMP)トランスポートをサポートします。

JRMP上のRMIコネクタでは、クライアントとサーバーの間の接続をセキュリティ保護および認証するための単純なメカニズムを備えています。このメカニズムでは、RMIコネクタを使用する環境に対して、基本的なレベルのセキュリティを提供します。ジェネリックJMXMPコネクタでは、より高度なレベルのセキュリティを提供しています。

クライアントとサーバーの間の接続でSecure Socket Layer (SSL)を使用するようにRMIソケット・ファクトリを使用することで、JRMP上のRMIコネクタのセキュリティを向上できます。

ジェネリック・コネクタ

JMX Remote API仕様では、Java SEプラットフォームに含まれていないオプションのジェネリック・コネクタを定義しています。このコネクタは、プラガブルなモジュールを追加することで構成でき、次の内容を定義します。

  • 要求をクライアントからサーバーに送信したり、応答や通知をサーバーからクライアントに送信したりするためのトランスポート・プロトコル
  • クライアントからサーバーに送信され、そのクラス・ローダーがターゲットMBeanに依存するようなオブジェクトのオブジェクト・ラッピング

JMX Messaging Protocol (JMXMP)コネクタは、トランスポート・プロトコルがTCPベースで、オブジェクト・ラッピングがネイティブJava直列化であるような構成のジェネリック・コネクタになります。セキュリティはRMIコネクタの場合より高度です。セキュリティは、Java Secure Socket Extension (JSSE)、Java Authentication and Authorization Service (JAAS)、およびSimple Authentication and Security Layer (SASL)が基になります。

ジェネリックコネクタとそのJMXMP構成はオプションです。つまり、JMX Remote APIの実装に常に含まれているわけではありません。Java SEプラットフォームにはオプションのジェネリックコネクタは含まれていません。

ユーザー定義プロトコル

JMX Remote API仕様では、すべてのプロトコル用のコネクタは定義していません。JMX Remote API標準に定義されていないプロトコルを基にしたコネクタを実装できます。たとえば、HTTP/Sを使用するプロトコルを基にしたコネクタを実装できます。JMX仕様では、ユーザー定義プロトコルを基にしたコネクタの実装方法について説明しています。