JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。
JMX的前身是JMAPI
。
JMX致力于解决分布式系统管理的问题,因此,能够适合于各种不同的环境是非常重要的。为了能够利用功能强大的Java计算环境解决这一的问题,Sun公司扩充了Java
基础类库,开发了专用的管理类库。
JMX是一种应用编程接口,可扩充对象和方法的集合体,可以用于跨越一系列不同的异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用它提供了用户界面指导、Java类和开发集成系统、网络及网络管理应用的规范。
管理对象是JMX应用程序的核心。JMX结构包括:支持Java的Web浏览器用户接口,管理运行模块ARM(Admin Runtime Module)和应用。这三个部件之间通过RMI
(Remote Method Invocation)进行通信。这里需要说明的是,RMI是使得一个Java虚拟机(JVM)上运行的程序可以调用远程服务器上另一个JVM
总的对象。
用户接口用来发布管理操作,这些操作可以间接的通过浏览器或通过单独的应用程序来激发。管理运行模块用来给应用提供实例化的管理对象。它包括Agent
对象接口,通知接口和被管数据接口。应用指的是那些被管设备单元。
JMX是一个完整的网络管理应用程序开发环境,它同时提供了:厂商需要收集的完整的特性清单,可生成资源清单表格,图形化的用户接口;访问SNMP
的网络API;主机间远程过程调用;数据库访问方法。
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。
一个代理可以提供四种主要的服务:
- 动态装载:允许代理通过下载这个Bean的类动态实例化MBean,这与装载applet的方式类似。
JMX使用m-let这个标记指定期望动态装载的MBean的位置。
- 监控:允许代理通知有关的监听器监控一个MBean的属性值的变化
JMX允许使用三种基本类型的监控程序
(1)CounterMonitor:该程序可以观察类型方面的变化,比如Byte类似或Integer类型
(2)GaugeMonitor:该程序可以观察类型方面的变化,比如Byte类似或Integer类型,还可以在到达上下阀值时进行报告。
(3)StringMonitor:该程序可以观察java.lang.String类型的变化。
- 计时器:允许预设的时间间隔发送通知,可以作为一个调度程序
- 关系:允许创建和维护MBean之间的关系
分布式服务层
包含协议适配器和连接器两种类型的组件,通过它们连接到外部的应用,如RMI
管理应用、基于浏览器的管理控制等
协议适配器和连接器
协议适配器是代理与管理客户通信的手段,每个通信的协议都可能不同。
它们都是管理客户与MBean交互的方式。
JMX的好处
- 可减少对JAVA应用实施管理的投资
- 提供了一个可伸缩的管理框架
- 集成现有的管理方案:如:WBEM,SNMP,TMN
- 使用现有的标准JAVA技术
- 能使用未来的一些管理概念:如Jini连接技术、通用即插即用、服务定位协议(Service Location Protocol)
- 只定义了一些可以访问的接口
相关资源:
分享到:
相关推荐
Our aim is to provide you with all the knowledge you need to use Spring effectively in your own applications and to give you insight into what is happening behind the scenes in Spring. For example, ...
His areas of interest include a wide range of Java-related technologies (Servlets, JSP, JAXB, JAXP, JMS, JMX, JAX-RS, JAX-WS, Hibernate, Spring Framework, Liferay Portal, and Eclipse RCP), cloud ...
You will discover how to monitor runtime environments using remote access, logging, and JMX, and you will also develop production-level architectures with high availability and security. What you ...
Libraries Beans Int'l Support Input/Output JMX JNI Math Networking Override Mechanism Security Serialization Extension Mechanism XML JAXP lang and util Base Libraries lang and util Collections ...
SJK exploits standard diagnostic interfaces of JVM (such as JMX, JVM attach and perf counters) and add some more logic on top to be useful for common troubleshooting case. SJK is also can be used as ...
What you’ll learn * How to use the IoC container and the Spring application context to best effect. * Spring’s AOP support, both classic and new Spring AOP, integrating Spring with AspectJ, and ...
- **Mock Objects Overview**: Explanation of what mock objects are and why they are useful. - **XDoclet for Mock Objects**: Techniques for generating mock objects and integrating them into tests. - **...
12. What to Read Next III. Using Spring Boot 13. Build Systems 13.1. Dependency Management 13.2. Maven 13.2.1. Inheriting the Starter Parent 13.2.2. Using Spring Boot without the Parent POM 13.2.3. ...
application can fit into a tweet is a radical departure from what the same functionality required on the vm only a few short years ago. Out-of-the-box nonfunctional features like security, metrics, ...
1.1. What is ActiveMQ? ..................................................................... 2 1.1.1. ActiveMQ Features ........................................................... 3 1.1.2. Why Use ...