# JMX 技术的架构

> 原文： [https://docs.oracle.com/javase/tutorial/jmx/overview/architecture.html](https://docs.oracle.com/javase/tutorial/jmx/overview/architecture.html)

JMX 技术可分为三个级别，如下所示：

*   仪表
*   JMX 代理
*   远程管理

## 仪表

要使用 JMX 技术管理资源，必须首先使用 Java 编程语言检测资源。您使用称为 _MBeans_ 的 Java 对象来实现对资源检测的访问。 MBean 必须遵循 JMX 规范中定义的设计模式和接口。这样做可确保所有 MBean 以标准化方式提供受管资源工具。除了标准 MBean 之外，JMX 规范还定义了一种称为 _MXBean_ 的特殊类型的 MBean。 MXBean 是仅引用预定义数据类型集的 MBean。存在其他类型的 MBean，但这条路径将集中在标准 MBean 和 MXBeans 上。

一旦资源由 MBean 检测，就可以通过 JMX 代理进行管理。 MBean 不需要了解它们将运行的 JMX 代理。

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

此外，JMX 规范的检测级别提供了通知机制。此机制使 MBean 能够生成通知事件并将其传播到其他级别的组件。

## JMX 代理

基于 JMX 技术的代理（JMX 代理）是一种标准管理代理，可直接控制资源并使其可用于远程管理应用程序。 JMX 代理通常与它们控制的资源位于同一台机器上，但这种安排不是必需的。

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

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

## 远程管理

可以通过许多不同方式访问 JMX 技术工具，可以通过现有管理协议（如简单网络管理协议（SNMP））或通过专有协议进行访问。 MBean 服务器依赖于协议适配器和连接器，以便从代理的 Java 虚拟机（Java VM）之外的管理应用程序访问 JMX 代理。

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

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