JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户能够在任何Java应用程序中使用这些代理和服务实现管理。设计模式
JMX致力于解决分布式系统管理的问题,好比网站的监控和软件的参数配置等,所以,可以适合于各类不一样的环境是很是重要的。数组
管理对象是JMX应用程序的核心。JMX是经过RMI(Remote Method Invocation)进行通讯。RMI使得一个Java虚拟机(JVM)上运行的程序能够调用远程服务器上另外一个JVM总的对象。借助于JMX能够如此简单的管理程序,无需为管理程序来开发界面。已经有通用的JMX管理软件,或者用SUN提供的WEB界面来管理。浏览器
JMX这一轻型的管理基础结构,价值在于对被管理资源的服务实现了抽象,提供了低层的基本类集合,开发人员在保证大多数的公共管理类的完整性和一致性的前提下,进行扩展以知足特定网络管理应用的须要。服务器
JMX注重于构造管理工具的软件框架,并尽可能采用已成熟的技术。网络
JMX体系被分红三个层次框架
表现层分布式
表现层定义的是JMX可管理资源所在的层。函数
这些已管理的资源能够编写或封装为MBean。工具
MBean分为四种类型: 标准、动态、开放、模型网站
代理层
定义的是MBean向应用程序施加管理的层。包括MBean服务器和代理服务的定义。还至少包括一个协议适配器或链接器。 代理的组成: 。一个MBean服务器 。要管理的MBean 。做为MBean实现的代理服务 。至少一个协议适配器
MBean
在JMX中,最小的可管理单元是MBean。 MBean不是一个真正的接口和类,而是必须准循的设计模式以确保资源是一个兼容的MBean。
MBean的激活方法:
invoke()方法是管理应用程序用于激活MBean的方法的手段。 invoke()方法有三个参数,分别是方法的名称、表示属性的对象数组和描述方法签名的一个字符串数组。它与使用Java Reflection Api 激活方法的方式相似。
Notification(通知)模型:
MBean的通知模型相似与Java事件的监听器模型。 MBean或管理应用程序能够做为MBean事件的监听器注册。 通知支持由两个基本的概念组成,即广播器和监听器。
MBean服务器
MBean服务器用于注册可管理的MBean。 全部对MBean的请求或查询都是经过MBean服务器实施的。
代理服务
代理服务是一些特殊的函数,代理把这些服务提供给MBean,这些代理服务独立于任何MBean。
分布式服务层
包含协议适配器和链接器两种类型的组件,经过它们链接到外部的应用,如RMI管理应用、基于浏览器的管理控制等 协议适配器和链接器 协议适配器是代理与管理客户通讯的手段,每一个通讯的协议均可能不一样。 它们都是管理客户与MBean交互的方式。