JMX 技术的体系结构

JMX 技术可以分为三个级别,如下所示:

  • Instrumentation

  • JMX agent

  • Remote management

Instrumentation

要使用 JMX 技术 管理 资源,您必须首先使用 Java 编程语言来检测资源。您可以使用称为 MBean 的 Java 对象来实现对资源工具的访问。 MBean 必须遵循 JMX 规范中定义的设计 Pattern 和interface。这样做可确保所有 MBean 都以标准化方式提供托管资源工具。除标准 MBean 外,JMX 规范还定义了一种特殊的 MBean 类型,称为 MXBean。 MXBean 是仅引用一组 预定义数据类型的 MBean。还存在其他类型的 MBean,但本教程将重点介绍标准 MBean 和 MXBean。

一旦 MBeans 对资源进行了检测,就可以通过 JMX 代理对其进行 管理。 MBean 不需要了解将与之一起使用的 JMX 代理。

MBean 设计为灵活,简单且易于实现。应用程序,系统和网络的开发人员可以使他们的产品以标准方式可 管理,而无需了解或投资于复杂的 管理 系统。可以以最小的努力使现有资源易于 管理。

另外,JMX 规范的检测级别提供了一种通知机制。该机制使 MBean 可以生成通知事件并将其传播到其他级别的组件。

JMX Agent

基于 JMX 技术的代理(JMX 代理)是一种标准 管理 代理,可以直接控制资源并将其提供给远程 管理 应用程序。 JMX 代理程序通常与它们控制的资源位于同一台机器上,但这不是必需的。

JMX 代理的核心组件是 MBean 服务器 ,这是一个在其中注册了 MBean 的托管对象服务器。 JMX 代理还包括一组用于 管理MBean 的服务,以及至少一个允许 管理 应用程序访问的通信适配器或连接器。

实现 JMX 代理时,您无需了解它将 管理 的资源的语义或功能。实际上,JMX 代理甚至不需要知道它将服务于哪些资源,因为任何符合 JMX 规范的资源都可以使用提供资源所需服务的任何 JMX 代理。同样,JMX 代理不需要知道将访问它的 管理 应用程序的功能。

Remote 管理

通过现有的 管理 协议(例如简单网络 管理 协议(SNMP))或通过专有协议,可以通过许多不同的方式访问 JMX 技术工具。 MBean 服务器依靠协议适配器和连接器来使 JMX 代理可以从代理 Java 虚拟机(Java VM)之外的 管理 应用程序访问。

每个适配器都提供通过特定协议查看 MBean 服务器中注册的所有 MBean 的视图。例如,HTML 适配器可以在浏览器中显示 MBean。

连接器提供了一个 管理 器端interface,用于处理 管理 器和 JMX 代理之间的通信。每个连接器通过不同的协议提供相同的远程 管理 interface。远程 管理 应用程序使用此interface时,无论协议如何,它都可以通过网络透明地连接到 JMX 代理。 JMX 技术提供了一种标准解决方案,用于基于 Java 远程方法调用(Java RMI)将 JMX 技术工具导出到远程应用程序。