2 JMXテクノロジ・アーキテクチャ
Java Management Extensions (JMX)テクノロジには、リソースを管理およびモニタリングするための標準APIが用意されています。APIには、リモート管理アプリケーションでアプリケーション、システム、およびネットワークを管理およびモニターできるように、リモート・アクセスが含まれています。
この章では、次のセクションでJMXアーキテクチャの概要を説明します。
アーキテクチャの概要
JMXテクノロジは、密接に関連する2つのJava Specification Requests (JSR)として、Java Community Process (JCP)によって開発されました。
- JSR 3: Java Management Extensions (JMX)仕様- インストゥルメンテーション・レベルおよびエージェント・レベルを定義します
- JSR 160: Java Management Extensions (JMX) Remote API - リモート管理レベルを定義します
次の表に、管理アーキテクチャのレベルを示します。
レベル | 説明 |
---|---|
インストゥルメンテーション | アプリケーション、デバイス、サービスなどのリソースは、Managed Bean (MBean)と呼ばれるJavaオブジェクトを使用して計測されている。MBeanはリモート管理およびモニタリング用のJMXエージェントを通じて、管理インタフェース(属性と操作からなる)を公開している。 |
エージェント | JMXエージェントの主コンポーネントは、MBeanサーバーである。MBeanサーバーはMBeanが登録されているコアの管理オブジェクト・サーバーである。JMXエージェントには、MBeanを処理するための一連のサービスも含まれる。JMXエージェントは、リソースを直接制御し、リモート管理エージェントで利用できるようにする。 |
リモート管理 | プロトコル・アダプタと標準コネクタにより、JMXエージェントはエージェントのJava仮想マシン(JVM)の外部にあるリモート管理アプリケーションからアクセスできるようになる。 |
MBeanを使用したリソースの計測
JMXテクノロジを使用してリソースを管理するには、最初にリソースをJavaプログラミング言語で計測する必要があります。MBeanと呼ばれるJavaオブジェクトを使用して、リソースのインストゥルメンテーションへのアクセスを実装できます。MBeanはJMX仕様に定義された設計パターンおよびインタフェースに従う必要があります。これにより、すべてのMBeanで管理対象リソースの計測が標準化された方法で提供されることが保証されます。
リソースがMBeanで計測された後、そのリソースはJMXエージェントを通じて管理できるようになります。MBeanでは、JMXエージェントでMBeanを操作するための知識は不要です。
MBeanは、実装が柔軟、簡潔、容易であるように設計されています。アプリケーション、システム、およびネットワークの開発者は、複雑な管理システムに投資せずに製品を標準的な方法で管理可能なものにできます。最小限の努力で、既存のリソースを管理可能にします。
さらに、JSR 3: Java Management Extensions (JMX) Specificationのインストゥルメンテーション・レベルでは、MBeanが他のレベルのコンポーネントに対する通知イベントを生成して伝播できる通知メカニズムを指定します。
JMXエージェントの作成
JMXエージェントは標準的な管理エージェントであり、リソースを直接管理し、リモート管理アプリケーションでリソースを利用できるようにします。JMXエージェントは通常は制御するリソースと同じシステム上にありますが、これは必須ではありません。
JMXエージェントのコア・コンポーネントはMBeanサーバーです。MBeanサーバーは、MBeanが登録されている管理オブジェクト・サーバーのことです。また、JMXエージェントには、MBeanを管理するための一連のサービスと、管理アプリケーションからアクセス可能な通信アダプタまたはコネクタが少なくとも1つ含まれています。
JMXエージェントを実装する場合は、管理にエージェントが使用されるリソースのセマンティクスや機能を理解しておく必要はありません。実際のところ、JMXエージェントでは、提供するリソースの情報は必要ありません。これは、JMX仕様に準拠して計測されたあらゆるリソースは、必要なサービスを提供するすべてのJMXエージェントを使用できるためです。さらに、エージェントでは、アクセスする管理アプリケーションの機能についての情報は必要ありません。
リソースのリモート管理
JMX APIインストゥルメンテーションは、Simple Network Management Protocol (SNMP)のような既存の管理プロトコルや独自のプロトコルを使用してアクセスされます。MBeanサーバーでは、プロトコル・アダプタやコネクタを使用して、エージェントのJVMの外部にある管理アプリケーションからJMXエージェントにアクセスできるようにします。
どのアダプタも、MBeanサーバーに登録されたすべてのMBeanに特有のプロトコルを使用して、ビューを提供します。たとえばHTMLアダプタは、MBeanをブラウザに表示できます。
コネクタは、マネージャとJMXエージェントの間の通信を処理する、マネージャ側のインタフェースを備えています。各コネクタは異なるプロトコルを通じて、同じリモート管理インタフェースを提供します。リモート管理アプリケーションでこのインタフェースを使用すると、プロトコルに関係なく、透過的にネットワークを介してJMXエージェントに接続できます。
JMXテクノロジには、JMX APIインストゥルメンテーションをリモート・アプリケーションにエクスポートするための、Remote Method Invocation (RMI)を基にした標準的なソリューションがあります。JMX Remote APIでは、TCPソケットを直接基にしたオプションのプロトコルであるJMX Messaging Protocol (JMXMP)も定義しています。JMX Remote APIの実装では、このオプションのプロトコルをサポートする必要はありません。Java SEプラットフォームにはオプションのコネクタは含まれていません。詳細は、JMXテクノロジのバージョンを参照してください。
仕様のJMX Remote APIの項では、既存の検出、検索インフラストラクチャを使用してJMXエージェントを通知したり検索したりする方法が説明されています。たとえば、Java Management Extensions (JMX)テクノロジのチュートリアルを参照してください。JMX仕様では、独自の検出、検索サービスは定義されていません。既存の検出、検索サービスの使用はオプションです。JMXエージェントのアドレスをURLの形式でエンコードし、そのURLをマネージャに通知することもできます。