基于Equinox的OSGI构件监控模块的研究与设计

基于Equinox的OSGI构件监控模块的研究与设计

论文摘要

随着软件工程的发展,模块化的重要性也逐渐体现出来。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平台中,从而完善系统的监控,提高系统的可用性。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 背景
  • 1.2 论文结构
  • 第二章 相关技术和研究
  • 2.1 OSGI
  • 2.2 JAVA虚拟机监控技术
  • 2.2.1 JVMTI
  • 第三章 监控模块总体设计
  • 3.1 模块设计目标
  • 3.2 设计思路
  • 3.2.1 Bundle与线程以及对象的对应关系的建立
  • 3.2.2 获取BundleCPU使用率以及内存使用信息
  • 3.2.3 Bundle消耗资源的计算方式
  • 3.2.4 Bundle基本信息的获取
  • 3.3 总体设计图
  • 第四章 监控模块的实现
  • 4.1 Equinox
  • 4.1.1 Equinox总体分析
  • 4.1.2 Equinox代码修改
  • 4.2 Monitor Agent
  • 4.2.1 代理初始化
  • 4.2.2 资源监控方法
  • 4.2.3 数据库设计
  • 4.3 Info Agent
  • 4.3.1 BUNDLE信息的获取
  • 4.3.2 BUNDLE的控制
  • 4.3.3 数据库设计
  • 4.4 WEB管理页面
  • 4.4.1 主管理页面
  • 4.4.2 功能页面
  • 第五章 实验
  • 5.1 Bundle信息及运行状态
  • 5.2 Bundle之间服务依赖关系
  • 5.3 CPU以及内存使用情况监控
  • 5.4 Bundle的控制
  • 第六章 总结
  • 参考文献
  • 致谢
  • 攻读学位期间发表的学术论文目录
  • 相关论文文献

    • [1].基于EQUINOX的高校图书馆数字资源绩效评价研究[J]. 内蒙古科技与经济 2017(12)
    • [2].雪佛兰Equinox[J]. 汽车知识 2016(12)
    • [3].雪佛兰Equinox氢燃料电池车驶向上海世博会[J]. 电源技术 2010(10)
    • [4].电子资源使用绩效评价体系探索——欧洲EQUINOX项目的分析与借鉴[J]. 情报科学 2008(01)
    • [5].新时代的金领结 2010款雪佛兰Equinox[J]. 当代汽车 2009(04)
    • [6].图书馆绩效评价国际标准体系分析[J]. 图书馆杂志 2012(11)
    • [7].Equinox矿业公司的迅速成长之路[J]. 世界有色金属 2008(07)
    • [8].节油先锋——2010款雪佛兰Equinox[J]. 汽车与驾驶维修(汽车版) 2009(02)

    标签:;  

    基于Equinox的OSGI构件监控模块的研究与设计
    下载Doc文档

    猜你喜欢