JMX介绍
文章来源:http://www.blogjava.net/joseph/archive/2007/12/12/167241.html
JMX技术提供一个简单,标准的方式管理应用程序,设备和服务等资源,一旦这些资源被创建,安装和实现,你能利用JMX的动态特性来监控和管理它们。同时你也可以用JMX来监控和管理JVM
JMX技术基于以下两个JSR开发:
* JSR 3, Java Management Extensions Instrumentation and Agent Specification
* JSR 160, Java Management Extensions Remote API
JMX规范,定义了一个架构、设计模式、APIs和服务,为应用程序和网络提供管理和监控。
使用JMX,一个给定的资源,如可管理的Beans或者MBeans,可以被一个或者更多个Java对象操作。这些MBeans注册在一个核心的管理对象的Server上。如MBean Server,它当作一个管理的agent,能运行在大部分可用Java**的设备上。
使用JMX agents管理资源操作必须依照规范。一个JMX agent有一个MBean Server组成,这个MBean Server,提供给MBeans 注册和一些列操作Mbeans服务,这样JMX agents直接控制资源,使得能远程控制应用程序。
这种方式能使得被操作的资源能彻底的独立于管理的底层结构,不产生任何依赖。资源可以不关心它们的管理程序如何实现。
JMX技术定义了标准的connectors(JMX connectors),使你能远程访问JMX agents,JMX使用不同的协议提供相同的管理接口,所以管理程序可以透明的管理资源,不用考虑使用哪种通讯协议。JMX agents也可用于支持JMX agents但与JMX规范不一致的系统和应用。
下面的图片可以看出大概结构:
为何使用JMX
JMX技术能提供给所有工业行业的Java开发者一个灵活的mbeans去操作Java代码,创建灵活的Java代理,实现分布式的管理中间件和管理,而且能平稳的集成到已经存在的管理和监控系统中去。
1 JMX使得Java应用可被管理只需要很少的投入:
一个JMX agent能运行在大部分Java**的设备上,因此Java应用是否可被管理与原来的设计基本没有冲突。Java应用只需要简单的嵌入一个管理对象的 Server,并在其上注册一个或多个管理Beans(MBeans)在Server上,使Server上一些功能可用。这就是从管理的基层结构获得的益处。
2 JMX提供一个标准的方式管理Java编写的应用,系统和网络,例如:JavaEE 5的应用服务器遵循JMX架构,因此可以使用JMX技术管理。
3 JMX可以使用于JVM。你可以轻易的启动一个JMX agent 访问这内置的JVM,因此可以远程的管理和监控JVM
4 JMX提供一个可升级的,动态管理的构架。每个JMX agent服务都是独立的模块,可以根据需求,可插入管理agent中去。这种基于构件的方式意味着JMX解决方案可以在small-footprint 设备和大的 telecommunications之间切换。JMX规范提供一些核心的agent服务,另外的服务可以在管理的底层结构下自行开发,并且能动态加载,移除和修改。
5 JMX技术利用了以前存在的标准Java技术,例如JNDI
6 使用NetBeans IDE5.0的JMX模块开发JMX应用已经非常容易了。你可以从NetBeans升级重新获得这JMX模块
7 JMX可以容易的集成已经存在的管理方案和技术。例如:JMX agents可以通过HTML浏览器管理,JMX APIs是开放的接口,任何管理系统卖主都可以利用。JMX方案可以使用Jini网络技术和Service Location Protocol (SLP)来查询服务。