JMX

JMX（，即Java管理扩展）是Java平台上为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议，灵活的开发无缝集成的系统、网络和服务管理应用。

 托管Bean 
托管Bean（，MBean）是一种通过依赖注入创建的JavaBean。托管Bean主要用在Java管理扩展技术中。在Java EE 6的规范中，对托管Bean做了更具体的规定。

MBean代表了运行在Java虚拟机上的资源，例如应用程序或Java EE服务（事务监控、JDBC驱动程序等）。其可以用于收集如性能、资源使用率、问题信息等关键的统计信息（通过），获取或设置应用程序的配置或属性（通过推送或），以及对故障或状态变化等的通知事件（通过推送）。

Java EE 6规定，托管Bean是一种Bean类。如果一个Java的外部类被其他Java EE规范（例如JavaServer Faces规范）定义为托管Bean，或者它满足下述所有条件，那么这个类就是一个托管Bean：
 它不是一个非静态内部类。 
 它是一个具体类，或者是被@Decorator注解。 
 它没有被EJB组件定义注解注解，或在ejb-jar.xml中被声明为EJB Bean类。
定义托管Bean时无需特殊的声明（如注解等）。

一个实现了javax.management.NotificationEmitter的MBean，其内部的变化（针对属性）可以通知MBeanServer。对MBean的变化感兴趣的应用程序可以注册一个到MBeanServer的监听器（javax.management.NotificationListener）。注意，JMX并不保证所有通知都会被监听器接收。

 类型 
有两种基本类型的MBean：
 标准MBean（Standard MBeans）：实现了业务接口，其包含属性的getter和setter和操作（即方法）。 
 动态MBean（Dynamic MBeans）：实现javax.management.DynamicMBean接口，其提供了列出属性和操作，以及获取和设置属性值的方式。

附加的类型有开放MBean（Open MBeans）、模型MBean（Model MBeans）和监视器MBean（Monitor MBeans）。
开放MBean是限定为基本数据类型的动态MBean，因而可移植性较好。
模型MBean是可以在运行期间配置的动态MBean。一般的MBean类也提供了用于在程序运行期间动态地配置资源的功能。

MXBean（Platform MBean，平台MBean）是一种特殊类型的MBean，它了Java虚拟机子系统，例如垃圾回收、即时编译、内存池、多线程等。

MLet（Management applet，管理小程序）是一个实用程序MBean，在MBeanServer用来从XML描述中加载、实例化和注册MBean。这种XML描述符的格式是：
 <MLET CODE = ''class'' | OBJECT = ''serfile''
   ARCHIVE = ''archiveList''
   [CODEBASE = ''codebaseURL'']
   [NAME = ''objectName'']
   [VERSION = ''version'']
 >
   [arglist]
 </MLET>

 参见 
 SNMP,JMX
 J2EE

参考文献

 外部链接 
 JMX官方网站 

Category:Java API
Category:Java企业平台
Category:Java规范请求
Category:网络管理