目次||

第2章

JMXアーキテクチャ

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

アーキテクチャの概要

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

  • JSR 3, Java Management Extensions Instrumentation and Agent Specification
  • JSR 160, Java Management Extensions Remote API

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

Java VMは、JSR 3で定義されます。リモート管理レベルは、JSR 160で定義されます。

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

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

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

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

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

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

JMXエージェントの作成

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

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

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

リソースのリモート管理

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

どのアダプタも、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の実装では、このオプションのプロトコルをサポートする必要はありません。Java SEプラットフォームにはオプションのコネクタは含まれていません。詳細は、付録A「JMXテクノロジのバージョン」を参照してください。

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

 


目次||

 


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.