JMX(一) 简介

JMX 越来越多得出现在各种技术杂志 、以及社区,如 ibm 的 developerworks 和 bea 的dev2dev 。不仅仅是 SUN ,许多厂商都宣布已经或是准备支持这一技术。 IBM 、 BEA 、 HP 、Marcomedia(JRun) 这些大的厂商,而且还有许多小的软件公司和开源项目也都加入了这一行列 。为什么 JMX 那么受欢迎, JMX 到底有那些优势只得人们去 学习和理解,本文从 JMX 的基本架构、 hellowold jmx 以及 spring 对 JMX 的支持讲起,希望大家能通过本文对 JMX 有个基础的认识,并能通过本文为今后学习 JMX 打个基础
JMX 中的术语:

• MBean :是 Managed Bean 的简称。在 JMX 中 MBean 代表一个被管理的资源实例,通过 MBean 暴露 一系列 方法和属性,外界可以获取被管理的资源的状态和操纵 MBea n的行为。事实上, MBean 就是一个 Java Object ,JavaBean 模型一样,外界使用反射来获取 Object 的值和调用 Object 的方法,只是 MBean 提供了更加容易操作的反射的使用 。 M bean 包括 4 种类型: 标准 MBean 、动态 MBean 、开放 MBean 、模型 MBean 。

• MBeanServer : MBeanServer 是 MBean 的容器 。 MBeanServer 管理这些 MBean , 并且 通过 代理外界对它们的访问。 MBeanServer 提供了一种注册机制, 通过注册 Adaptor和 Connector ,以及 MBean 到 MBeanServer ,并且 通过 代理外界对它们的访问。外界可以通过名字来得到相应的 MBean 实例。

• JMX Agent : Agent 只是一个 Java 进程,它包括这个 MBeanServer 和一系列附加的 MbeanService 。当然这些 Service 也是通过 MBean 的形式来发布。

• Protocol Adapters and Connectors

JMX Agent 通过各种各样的 Adapter 和 Connector 来与外界 (JVM 之外 ) 进行通信。同 样外界( JVM 之外)也必须通过某个 Adapter 和 Connector 来向 JMX Agent 发送管理或控制请求。 J dmk5.1 中, sun 提供很多 Adaptor 和 Connector 的实现

Adapter 和 Connector 的区别在于: Adapter 是使用某种协议 (HTTP 或者 SNMP)来与 JMX Agent 获得联系, Agent 端会有一个对象 (Adapter) 来处理有关协议的细节。 比如 SNMP Adapter 和 HTTP Adapter 。而 Connector 在 Agent 端和 client 端都必须有这样一个对象来处理相应的请求与应答。比如 RMI Connector 。JMX Agent 可以带有任意多个 Adapter ,因此可以使用多种不同的方式访问 Agent 。

JMX 基本构架:

JMX 分为三层,分别负责处理不同的事务。它们分别是:

• Instrumentation 层

Instrumentation 层主要包括了一系列的接口定义和描述如何开发 MBean 的规范。通常 JMX 所管理的资源有一个或多个 MBean 组成,因此这个资源可以是任何由 Java 语言开发的组件,或是一个 JavaWrapper 包装的其他语言开发的资源。

• Agent 层

Agent 用来管理相应的资源,并且为远端用户提供访问的接口。 Agent 层构建在 Intrumentation 层之上,并且使用管理 Instrumentation 层内部的组件。通常 Agent 由一个 MBeanServer 组成。另外 Agent 还提供一个或多Adapter 或 Connector 以供外界的访问。

• Distributed 层

Distributed 层关心 Agent 如何被远端用户访问的细节。它定义了一系列用来访问 Agent的接口和组件,包括 Adapter 和 Connector 的描述。

Jmx 三层之间的关系:



 

猜你喜欢

转载自ywchen.iteye.com/blog/1118724
JMX