思诚科技 seecen LOGO
咨询热线:0791-87557233
  首页 |   Java EE  
关于思诚
关注官方微信

为Web应用建立基于JMX的管理系统

来源:网络    更新时间:2014-12-2


  Web应用系统总算开发了,接下来该如何让客户(Web应用系统的管理员)轻松管理我的一堆配置文件,或者如何实现动态修改系统运行属性,同时又让客户不需要过多的了解配置文件的内容就能够实现这些管理呢?这是许多刚刚结束Web应用系统前期开发的系统分析人员需要面临的问题。又或者说我想对早已完成Web应用系统进行有效的资源管理,希望再添加管理功能的同时,对原有的代码不需要做过多的修改,换句话说就是管理系统与被管理的应用系统做到很好的隔离。JMX的管理框架(图1)为你很好的解决了这些问题。



  JMX(JavaManagementExtensions)是来管理网络,设备,应用程序等资源,它描述了一个可扩展的管理体系结构,并且提供了JMXAPI和一些欲定义的java管理服务。在撰写本文时,JMX规范最新版本为v1.2(http://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html),JMX参考实现的最新版本为v1.2.1(http://java.sun.com/products/JavaManagement/)。JMX推出后,一些大型的项目就立即采用了基于JMX的实现框架,例如Jakartatomcat和JBoss,这从分说明JMX的可行性和良好的特性。

  对于Web应用的管理往往是比较麻烦的,例如客户手动的修改配置文件,开启数据库监控程序等等,如果要动态修改数据库访问方案或者监控用户数,动态修改日志级别会更加麻烦,并且可能把系统的结构弄得凌乱,造成结构不良的恶果,更别说可扩展性了。JMX的分层结构以及高度的组件化,通过将各种资源封装成MBean的方式,让我们可以很低成本的实现对现有Web应用的扩展性很强的管理方案。

  本文以Tomcat作为Web服务器为例,详细的介绍如何使用JMX建立对Web应用的管理。对于JMX的概念性的东西、体系结构以及使用规范已经有不少的相关文档,为了能够更好的理解本文,在阅读本文时请先参阅这些文档,本文的笔墨将着重在应用和实现上。下图(图2)为JMX的基本框架图(见JMX规范),,目的是给大家理解本文提供方便。



  一、创建Web应用的管理系统

  对Web应用构建一个基于JMX的管理系统,我们需要做的事情有哪些呢?

  针对每一个需要管理的资源创建一个MBean的实例,这是JMX框架所要求的,有两种类型的实例可供选择,一种是直接管理资源的MBean,一种通过调用资源实例进行管理的MBean。

  编写一个MBean描述文件,并描述每一个MBean,选择基于XML的MBean描述文件是一个不错的决定。

  通过读MBean描述文件,生成MBeanInfo,从而生成一个个MBean。

  将需要进行管理的MBean注册到MBeanServer当中。

  编写客户端代码,选择Web的方式进行客户端的编码比较Web应用的风格,也比较容易实现。

  那么一个基于JMX的Web应用的管理框架已经成形,图3是它的基本结构图,虚线部分为基于JMX的管理系统。接下来我们按照步骤实现整个管理系统。



  二、获得MBeanServer的实例

  有两种方案获得MBeanServer的实例。

  1、通过获得Web服务器的MBeanServer的实例,这样做的好处是通过该MBeanServer对本身,甚至可以实现对Web服务器的自身的一些管理。Tomcat的管理框架也是建立JMX的基础上,它使用的JMX的实现是MX4J,这是一个非常优秀的JMX开源项目,在tomcat4.1.27中,MBeanServer的实例存放与属性名为"org.apache.catalina.MBeanServer"的application变量(Web应用中变量的几种范围:page,request,session,application)中,因此Servlet中获得MBeanServer实例的办法:

  • 上一篇文章:

  • 下一篇文章:
  •  

    0791-87557233

    重视每个来电 珍惜您的时间
    思诚者开发沙龙
    江西思诚科技有限公司  赣ICP备17006097号  CopyRight©2014 - 2018