6 検出、検索サービス

Java Management Extensions (JMX) Remote API Specification』では、既存の検出、検索インフラストラクチャを使用してJMX APIエージェントを通知したり検索したりする方法が説明されています。この仕様では、JMXテクノロジ固有の検出、検索APIについては定義されていません。

この章では、JMXテクノロジで使用できる既存の検出、検索インフラストラクチャの概要を、次のセクションで簡単に説明します。

検出および検索インフラストラクチャの詳細は、『Java Management Extensions Remote API 1.0 Specification』の「References」セクションを参照してください。

検索サービスについて

JMXエージェントとJMXクライアントが検索サービスを使用できます。1つのJava VMには、多数のJMXエージェントやJMXクライアントが含まれている場合があります。

  • JMXエージェントは、次の機能からなる論理サーバー・アプリケーションです。
  • 1つの管理対象Bean (MBean)サーバー
  • JMXコネクタ・サーバーが1つ以上。JMXコネクタ・サーバーにより、そのMBeanサーバーに格納されるMBeanに対してリモート・クライアントがアクセスできるようになる
  • JMXクライアントは、JMXエージェントとのクライアント接続を開く論理クライアント・アプリケーションです。

Java Management Extensions (JMX)テクノロジのチュートリアル』では、検索サービスを使用してJMXエージェントを通知したり検索したりする方法が示されています。3つのインフラストラクチャの手順は似ています。これらの間で大きく異なる点は、SLPとJNDIの場合は、検索サービスでエージェントが登録するのはアドレスですが、Jiniネットワーク・テクノロジを使用した場合に登録するのはJMXコネクタ・スタブです。

注意:

既存の検出、検索サービスの使用はオプションです。JMX APIエージェントのアドレスをURLの形式でエンコードし、そのURLをマネージャに通知することもできます。

Service Location Protocol (SLP)の使用

Service Location Protocol (SLP)では、企業ネットワーク内でネットワーク化されたサービスの存在、位置、および構成をネットワーク機能アプリケーションが検出できるフレームワークを提供します。

次の手順は、SLP検索サービスを使用してJMXエージェントを通知および検索するための、JMX Remote API仕様で定義された手順をまとめたものです。

  • JMXエージェントは1つ以上のJMXコネクタ・サーバーを作成します。
  • 公開する各コネクタについて、JMXエージェントはSLP検索サービスを使用して、そのアドレスを登録します。このとき場合によっては、エージェントやコネクタを限定し、フィルタとして使用できるような追加の属性を指定します。
  • JMXクライアントはSLP検索サービスをクエリーし、クエリーに当てはまる1つ以上のアドレスを取得します。
  • 最後に、JMXクライアントは、取得したアドレスで特定されるサーバーに対して接続しているコネクタを取得します。

JMX Remote API仕様では、SLPプロトコルに準拠したURLスキームを定義しています。『Java Management Extensions (JMX) Remote API Specification』を参照してください。仕様では、登録時に指定される、必須およびオプションのSLP検索属性も定義しています。

Jiniネットワーク・テクノロジの使用

Jiniネットワーク・テクノロジは、オープンなソフトウェア・アーキテクチャで、開発者はネットワークの変化に対応可能なサービスを作成できます。Jiniの仕様では、標準の検索サービスがあります。実行中のJini検索サービスは、API呼出しで検出できます。

次の手順は、Jini検索サービスを使用してJMXエージェントを通知および検索するための、JMX Remote API仕様で定義された手順をまとめたものです。

  • JMXエージェントは1つ以上のJMXコネクタ・サーバーを作成します。
  • 公開する各コネクタについて、JMXエージェントはJini検索サービスを使用して、JMXコネクタ・スタブを登録します。このとき場合によっては、エージェントやコネクタを限定し、フィルタとして使用できるような追加の属性を指定します。
  • JMXクライアントはJini検索サービスをクエリーし、クエリーに当てはまる1つ以上のコネクタ・スタブを取得します。
  • 最後に、JMXクライアントは、取得したコネクタ・スタブを使用して、サーバーに直接接続します。

JMX Remote API仕様では、Jiniテクノロジベースのエントリによるバインドを定義しています。『Java Management Extensions (JMX) Remote API Specification』を参照してください。仕様では、エージェント・コネクタの登録時に指定する、必須およびオプションのエントリも定義しています。

LDAPバックエンドでのJava Naming and Directory Interface (JNDI) APIの使用

Java Naming and Directory Interface(JNDI) APIは、Javaプラットフォームの標準の機能拡張です。Javaテクノロジ対応のアプリケーションに、複数のネームおよびディレクトリ・サービスに対する統一的なインタフェースを提供します。

JMX Remote API仕様では、LDAPサーバーを使用して、JMXエージェントに公開されたJMXコネクタの情報を格納および取得する方法が説明されています。

次の手順は、JNDI検索サービスを使用するための、JMX Remote API仕様で定義された手順をまとめたものです。

  • JMXエージェントは1つ以上のJMXコネクタ・サーバーを作成します。
  • 公開する各コネクタについて、JMXエージェントはJNDI検索サービスを使用して、そのアドレスを登録します。このとき場合によっては、エージェントやコネクタを限定し、フィルタとして使用できるような追加の属性を指定します。
  • JMXクライアントはJNDI検索サービスをクエリーし、クエリーに当てはまる1つ以上のアドレスを取得します。
  • 最後に、JMXクライアントは、取得したアドレスで特定されるサーバーに対して接続しているコネクタを取得します。

JMX Remote APIでは、アドレスを登録するためのLDAPスキーマを定義し、また登録したエージェントをクライアントが検出する方法について説明しています。詳細は、「JMX 1.4仕様」を参照してください。仕様では、リース・メカニズムも定義しています。