5 JMXコネクタを使用したリソースのリモート管理
Java Management Extensions (JMX)仕様バージョン1.4のJava Management Extensionsの計測仕様およびエージェント仕様の項では、コネクタという概念を定義しています。コネクタを使用すると、JMXテクノロジのMBeanサーバーからJavaテクノロジベースのリモート・クライアントへのアクセスが可能になります。コネクタのクライアント側は、MBeanサーバーと基本的に同じインタフェースをエクスポートします。
コネクタは、コネクタ・クライアントとコネクタ・サーバーからなります。コネクタ・サーバーはMBeanサーバーに接続して、クライアントからの接続要求を待機します。コネクタ・クライアントは、コネクタ・サーバーとの接続を確立します。通常、コネクタ・クライアントは、コネクタ・サーバーとは別のJVM内にあり、別のマシン上で実行されることが多くあります。
多くのコネクタ実装が可能です。特に、クライアントとサーバーの間の接続で通信するためのプロトコルは多種多様です。
コネクタ・サーバーには通常、アドレスがあり、コネクタ・クライアントとコネクタ・サーバーの間で接続を確立するために使用されます。コネクタによっては、接続の確立のために、接続スタブを用意している場合もあります。接続が確立される方法は、使用する検出、検索テクノロジに依存します。検出、検索サービスを参照してください。
この章では、Java Management Extensions (JMX)仕様バージョン1.4の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プラットフォームにはオプションのジェネリックコネクタは含まれていません。