目次 | 前の項目 | 次の項目 Java Management Extensions (JMX) テクノロジ概要

第 2 章

JMX アーキテクチャ

JMX テクノロジには、リソースを管理および監視するための標準 API が用意されています。API ではリモートアクセスを実行できるため、リモート管理アプリケーションでアプリケーション、システム、およびネットワークを管理および監視できます。この章では、以下のセクションで JXM アーキテクチャの概要を説明します。

アーキテクチャの概要

JMX テクノロジは、Java Specification Requests (JSR) 3 および JSR 160 として、Java Community Process (JCP) によって開発された密接に関連する 2 つの仕様で定義されています。

管理アーキテクチャを 3 レベルに分けたものを次の表に示します。表の最初の 2 レベルであるインストゥルメンテーションとエージェントはJSR 3 で、リモート管理のレベルは JSR 160 で定義されています。

表 2-1  –  JMX テクノロジのアーキテクチャ
レベル
説明
インストゥルメンテーション
アプリケーション、デバイス、サービスなどのリソースは、Managed Bean (MBean) と呼ばれる Java オブジェクトを使用して計測されている。MBean はリモート管理および監視用の JMX エージェントを通じて、管理インタフェース (属性と操作からなる) を公開している
 
エージェント
JMX エージェントの主コンポーネントは、MBean サーバである。MBean サーバは MBean が登録されているコアの管理オブジェクトサーバである。JMX エージェントには、MBean を処理するための一連のサービスも含まれる。JMX エージェントは、直接リソースを制御し、リモート管理エージェントで利用できるようにする
 
リモート管理
プロトコルアダプタと標準コネクタにより、エージェントの Java 仮想マシン (VM) 外部にあるリモート管理アプリケーションから JMX エージェントにアクセスできる

MBean を使用したリソースの計測

JMX テクノロジを使用してリソースを管理するには、最初にリソースを Java プログラミング言語で計測する必要があります。MBean と呼ばれる Java オブジェクトを使用して、リソースのインストゥルメンテーションへのアクセスを実装します。MBean は、仕様で定義された設計パターンおよびインタフェースに従わなければなりません。こうすることで、すべての MBean で管理対象リソースのインストゥルメンテーションが標準化された方法で提供されることが保証されます。

リソースが MBean で計測されると、JMX エージェントを通じて管理できるようになります。MBean では、JMX エージェントで MBean を操作するための知識は不要です。

MBean は、実装が柔軟・簡潔・容易であるように設計されています。アプリケーション、システム、およびネットワークの開発者は、複雑な管理システムに対する理解や投資を要求されることなく、製品を標準的な方法で管理できるものにすることができます。最小限の努力で、既存のリソースを管理可能にします。

さらに、インストゥルメンテーションレベルでは、通知機構を指定します。こうすることで、MBean で通知イベントを生成して、他のレベルのコンポーネントに送ることができます。

JMX エージェントの作成

JMX エージェントは標準的な管理エージェントであり、リソースを直接管理し、リモート管理アプリケーションでリソースを利用できるようにします。通常は制御するリソースと同じマシン上にありますが、必須ではありません。

JMX エージェントのコアコンポーネントは MBean サーバです。MBean サーバは、MBean が登録されている管理オブジェクトサーバのことです。また、JMX エージェントには、MBean を管理するための一連のサービスと、管理アプリケーションからアクセス可能な通信アダプタまたはコネクタが少なくとも 1 つ含まれています。

JMX エージェントを実装する場合は、管理に使用されるリソースのセマンティクスや機能を理解しておく必要はありません。実際のところ、JMX エージェントでは、提供するリソースの情報は必要ありません。これは、JMX 仕様に準拠して計測されたあらゆるリソースは、必要なサービスを提供するすべての JMX エージェントを使用できるためです。同様に、エージェントでは、アクセスする管理アプリケーションの機能についての情報は必要ありません。

リソースのリモート管理

JMX API インストゥルメンテーションは、Simple Network Management Protocol (SNMP) のような既存の管理プロトコルや独自のプロトコルによるさまざまな方法でアクセスされます。エージェントの Java 仮想マシン (VM) 外部にあるリモート管理アプリケーションからJMX エージェントにアクセスできるようにするために、MBean サーバはプロトコルアダプタやコネクタを使用します。

どのアダプタも、MBean サーバに登録されたすべての MBean に特有のプロトコルを使用して、ビューを提供します。たとえば HTML アダプタは、MBean を Web ブラウザに表示できます。

コネクタは、マネージャと JMX エージェントの間の通信を処理する、マネージャ側のインタフェースを備えています。各コネクタは異なるプロトコルを通じて、同じリモート管理インタフェースを提供します。リモート管理アプリケーションでこのインタフェースを使用すると、プロトコルに関係なく、透過的にネットワークを介して JMX エージェントに接続できます。

JMX テクノロジには、JMX API インストゥルメンテーションをリモートアプリケーションにエクスポートするための、Remote Method Invocation (RMI) を基にした標準的なソリューションがあります。また、JMX Remote API では、TCP ソケットを直接基にした追加のプロトコルである JMX Messaging Protocol (JMXMP) を定義しています。JMX Remote API の実装では、この追加プロトコルをサポートする必要はありません。J2SE プラットフォームのバージョン 5.0 にこのプロトコルは含まれていません。詳細は、付録 A 「JMX テクノロジのバージョン」を参照してください。

JMX Remote API 仕様では、既存の検出・検索インフラストラクチャを使用して JMX エージェントを通知したり検索したりする方法が説明されています。そのような例は、『Java Management Extensions (JMX) テクノロジのチュートリアル』にあります。この仕様では、独自の検出・検索サービスは定義されていません。既存の検出・検索サービスを使用することもできますが、JMX API エージェントのアドレスを URL の形式でエンコードし、その URL をマネージャに通知することもできます。

 


目次 | 前の項目 | 次の項目 Java Management Extensions (JMX) テクノロジ概要
Java Management Extensions (JMX), Java 2 Platform, Standard Edition 5.0