论文部分内容阅读
随着软件工程的发展,模块化的重要性也逐渐体现出来。OSGI平台提供了一种基于构件的软件开发模式,用户可以通过使用平台上已有的构件来创建自己的应用,OSGI构件的可热插拔特性也为构件的修改和升级提供了便利。现有的JVM监控工具主要监控整个JVM所消耗资源情况,但是由于JVM隐藏了OSGI构件资源使用的信息,所以现有的监控工具很难对OSGI环境提供有效的监控,这就使得在Java环境中提出一种对于OSGI构件的有效监控方式变得十分必要。本篇论文针对OSGI构件的监控模块开展了研究工作。首先对于OSGI平台Equinox的架构进行了分析,讨论了Equinox的三个重要组成部分:Framework、Context、Bundle,并对Equinox的主要部分代码进行了分析。接着通过分析OSGI构件监控的特殊性,提出了一个较为完善的监控模块的设计,并且给出了Monitor Agent和Info Agent这两个主要部分的详细设计。然后借助JVMTI以及BCI技术实现了Monitor Agent部分,通过对于Equinox代码的修改完成了Info Agent部分的实现,并使用基于web的管理页面通过表格和和图标的形式将监控信息进行展现,此外,监控模块还提供对于构件的一些控制操作。最后通过测试用例从信息获取的准确性及时性以及控制操作的有效性等方面对监控模块进行评价。在整体设计上,该监控模块根据监控信息的不同来源将模块划分为Monitor Agent和Info Agent两个主要部分,这样设计便于各部分收集所负责的监控信息,不会相互影响,也便于维护和升级。其中Monitor Agent使用Jvmti和BCI技术监控构件的CPU和内存使用信息,具有准确、易于扩展的特点。该监控模块可以方便的嵌入以Equinox为基础的OSGI平台中,从而完善系统的监控,提高系统的可用性。