应用服务器监控系统的设计与实现
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
本文的目标是简要描述一种应用服务器监控系统的设计和实现方案。该系统是一种为提高商业应用的可用性和性能而设计的可用性和性能管理软件系统中的重要组成部分。它提供了应用服务器的整体资源的浏览和商业应用组件的执行状况的监控,并有很强的可配置性和扩展性,使用它成为一种通用性很强的系统。
     在监控功能的实现方面,本系统的实现采用了字节码的动态注入实现技术通过这种技术我们可以在Java虚拟机加载我们关心的Java类和方法时,动态的插入新的字节码,在不需要对应用程序文件进行预处理的前提下实现了对当前运行状态信息的监控反馈。
     在通用性方面,本系统采用了XML语言描述方法,使本系统实现了“元数据”驱动的框架模式,使系统有很强的可配置和可扩充性。这种可配置和可扩充性,大大增强了系统的通用性。对于新的应用服务器环境,只需通过配置调整系统行为,或进行简单的扩充,即可实现对新环境的监控目的。
     在最后本文还展示了跟据该方案所实现系统的监控功能。展示的内容包括:用户管理、应用服务器系统资源浏览、应用服务器基本信息浏览、应用服务器线程管理和活动请求的捕获等。以更加直观的方式介绍了本系统所实现的功能和监控效果。
With the development of network technology, the applications of computer grown from running on a single machine to structuring a distributed architectures. In a variety of applications, with the development of Web technology, the module based on B / S structure has been increasingly widely used. As the core components of B / S structure -Application Servers, have a more and more rapid development by Java language widely use. Application server is a middleware product evolved. It is a program that handles all application operations between user and an organization's backend business applications or database. Application servers are typically used for complex transaction-based applications. To support high-end needs, an application server has to have built-in redundancy, monitors for high-availability, high-performance distributed application services and support for complex database access.
     Application server has become more and more rich with the growing number of industry-standard interface and protocol engine has been integrated in. The business application also became more complex with high-performance and high-availability requirements. Enterprise requirements are turning from function to stability. Effective extract the status of applications and diagnostic analysis to ensure that the applications have the best performance and shortest response-time and the longest running time has a great significance.
     However, Because the internal development of Application Server is laggard, as well as the application provider is still immature on the requirements of Server performance and quality, So they can not raise a higher and more specific request, as a result the research of Monitoring System which is purpose for raising performance and quality of service develop slowly. The supply market of a small number large-scale domestic enterprises which demand Application Server with high performance and perfect service quality have been occupied by foreign companies.
     At present, there is no well-known monitoring system product which is purpose for enhancing performance and service quality in domestic market. ITCAM and Wily produced by IBM and CA are well-known foreign products. These new products have the performance of application management, as well as the integrate management of application, server and middleware.
     This article aims to briefly describe a design and implementation program of Application Server monitoring and control system. The program is an important part of a management software system which is designed for enhancing the usability and performance of business applications. It provides application server resources overview and monitoring status of business applications and components. As a highly versatile system with highly configurable and scalable, it supports a wide range of applications and server environment.
     First, this article propose the goal of monitoring system ,then we analysis the framework of monitoring system, we divide the system into two sub-systems " management sub-system " and "acquisition control sub-system", and describe framework design and module division of "acquisition control sub-system" in detail in the section of framework structural design.
     In the realization of the monitoring function, this system uses dynamic byte-code injection technology. The dynamic injection is different from static injection. It will not modify application assembly files, so it will not be blocked by strongly-typed signature, and the problems related to "copyright" almost never occurred. It can be used to skip a certain validation code, or replace some of the internal implementation of the code. Through this technology, when Java Virtual Machine loads the Java classes and methods, we can insert new byte code dynamically, it realizes feedback of current state information without preprocess application files.
     In general, this system uses the XML language to implement the metadata model-driven framework so that the system can be configured and has a better scalability. It greatly enhanced versatility. For a new application server environment, we just need to configure or extend the system simply to realize the monitoring purpose.
     Finally, the paper shows some functions of the monitoring system by the screenshots, includes User Management, Application Resource View, Application Essential information Browser, Application Threads Management and Active Request Catcher, for more intuitive way to introduce the system.
引文
[1]Harold,Elliotte Rusty(2004).Effective XML.Addison-Wesley,10-19.ISBN 0321150406.
    [2]Bruce Eckel.Java编程思想.北京:机械工业出版社,2005.
    [3]M.Dahm,Byte Code Engineering,Proceedings JIT' 99,Springer,1999.
    [4]Sun 公司.Java Virtual Machine Profiler Interface(JVMPI).:http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html.,2008-08
    [5]Sun 公司.Java JVMTM Tool Interface(JMVTI).:http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html.2008-08:
    [6]The SAX project,http://www.saxproject.org/
    [7]E.Bruneton,R.Lenglet,T.Coupaye.ASM:a code manipulation tool to implement adaptable systems.
    [8]M.Dahm,Byte Code Engineering,Proceedings JIT' 99,Springer,1999.
    [9]A.White,Serp,http://serp.sourceforge.net
    [10]G.A.Cohen,J.S.Chase,D.L.Kaminsky,Automatic program transformation with JOIE,USENIX 1998 Annual Technical Conference,New Orleans,Louisiana,USA,1998.
    [11]The ASM project web site,http://asm.objectweb.org/
    [12]CHIBA S.,"Load-time Structural Reflection in Java",ECOOP 2000-Object -Oriented Programming,vol.LNCS 1850,Springer,2000,p.313-336.
    [13]DAHM M.,"Byte Code Engineering",Proceedings JIT' 99,Springer,1999.
    [14]KNIESEL G.,COSTANZA P.,AUSTERMANN M.,"JMangler- A Framework for Load-Time Transformation of Java Class Files",IEEE Workshop on Source Code Analysis and Manipulation(SCAM),Nov.2001.
    [15]LINDHOLM T.,YELLIN F.,The Java Virtual Machine Specification,Addison-Wesley,2nd edition,1999.
    [16]TATSUBORI M.,CHIBA S.,KILLIJIAN M.-O.,ITANO K.,"OpenJava:A Classbased Macro System for Java",Reflection and Software Engineering,vol.LNCS 1826,Springer,2000,p.119-135.
    [17]BRUNETON E.,COUPAYE T.,STEFANI J.B.,"Recursive and Dynamic Software Composition with Sharing",Workshop on Component Oriented Programming,Malaga,Spain,2002.