开源J2SE项目Harmony-Instrument模块的设计与实现

开源J2SE项目Harmony-Instrument模块的设计与实现

论文摘要

随着Java技术的强大功能、平台的可移植性以及安全性已经使它成为现代软件领域最完美的技术,Java平台也已经成为了一种最广泛应用的软件平台。Apache基金会作为开源软件界最为成功和最著名的组织之一,在2005年早期,基金会的一些人提出了一个实现完整的开源J2SE平台的计划,取名为Harmony。本文基于本人在IBM公司参与的设计和开发开源J2SE平台Harmony项目的实践,主要研究的是Java Bytecode Instrumentation。它不仅仅能够做到像对源代码层次的对于一些新功能的加入,而且可以用于追踪程序的运行或者监测内存使用情况等等。而且现今新兴的在面向方面编程中,Bytecode Instrumentation也可用于实现对类对象的横切面功能的注入。在原有Bytecode Instrumentation工具的实现中,因为Java类库没有Instrumentation的接口提供,如果用户想对载入Java虚拟机中的类进行安全方便的修改,以监测运行在JVM上的应用程序,通常是件非常困难的事情。基于此,在Harmony中提供这样Instrument模块就可以使Java语言的使用者使用该模块提供的功能,动态的对自己感兴趣的类进行改动,察看程序运行的状况。同时也可以用于性能分析工具和代码覆盖率等监测工具以及面向方面编程工具的开发,从而大大降低了这些工具的开发难度。同时,Instrument模块提供的是对类进行动态修改的功能,因此当程序运行完之后,原先存放在磁盘上的类文件并不会发生改变。本文首先是大体介绍这个项目背景。接着是对本文研究的重点Instrumentation相关技术与问题的简单介绍,然后提出Instrument模块的重要性,对Instrument模块的设计和实现做详细的描述。主要从具体模块设计的角度体现这个开源架构的独特设计思想,然后从实现的角度对一些关键技术进行介绍。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 课题背景
  • 1.2 研究内容
  • 1.3 本文的组织结构
  • 第2章 Harmony总体架构介绍
  • 2.1 Harmony背景介绍
  • 2.2 设计目标
  • 2.3 总体架构介绍
  • 2.3.1 Harmony架构组件介绍
  • 2.3.2 Harmony的架构特点
  • 2.4 本章小节
  • 第3章 Instrumentation的相关技术研究
  • 3.1 不同层次的Instrumentation
  • 3.1.1 源代码层次的Instrumentation
  • 3.1.2 预处理层次的Instrumentation
  • 3.1.3 基于编译器的Instrumentation
  • 3.1.4 目标代码层次的Instrumentation
  • 3.1.5 字节码层次的Instrumentation
  • 3.1.6 运行时层次的Instrumentation
  • 3.1.7 虚拟机层次的Instrumentation
  • 3.2 Bytecode Instrumentation的应用领域
  • 3.2.1 监测
  • 3.2.2 面向方面的编程
  • 3.3 Bytecode Instrumentation阶段
  • 3.3.1 静态Instrumentation
  • 3.3.2 加载时的Instrumentation
  • 3.3.3 动态Instrumentation
  • 3.4 Bytecode Instrumentation现存问题
  • 3.5 本章小结
  • 第4章 Instrument模块设计
  • 4.1 Instrument模块的描述
  • 4.1.1 使用说明
  • 4.1.2 使用场景
  • 4.2 Instrument模块的设计
  • 4.2.1 模块化设计方式
  • 4.2.2 两种设计方案比较
  • 4.2.3 框架设计
  • 4.2.4 运行流程
  • 4.3 关键技术
  • 4.3.1 Java Native Interface
  • 4.3.2 JVM Tool Interface
  • 4.3.3 本机代码与Portability Layer
  • 4.4 Instrument模块提供的接口,类和具体方法
  • 4.4.1 接口ClassFileTransformer
  • 4.4.2 接口Instrumentation
  • 4.4.3 类ClassDefinition
  • 4.4.4 类IllegalClassFormatException
  • 4.4.5 类UnmodifiableClassException
  • 4.5 本章小结
  • 第5章 Instrument模块的实现
  • 5.1 定义Native接口
  • 5.2 修改Harmony的Launcher
  • 5.3 使用VMI来沟通各个部分
  • 5.4 使用JVMTI实现功能
  • 5.5 实现的基本流程图
  • 5.5.1 VM读入用户的命令行输入
  • OnLoad'>5.5.2 AgentOnLoad
  • 5.5.3 VM初始化完成
  • 5.5.4 对目标类的改变
  • 5.6 本章小结
  • 第6章 总结与展望
  • 6.1 总结
  • 6.2 展望
  • 参考文献
  • 致谢
  • 相关论文文献

    • [1].英政府支持模块堆开发和部署[J]. 国外核新闻 2020(07)
    • [2].装配式模块建筑的研究与实践[J]. 城市住宅 2018(10)
    • [3].模块育种的理论与方法[J]. 天津农学院学报 2017(03)
    • [4].高校构建以居家养老为核心的多模块数字化服务实训平台及其实现路径研究——以东北师范大学人文学院为例[J]. 市场周刊 2020(02)
    • [5].车用控制系统模型参考模块自动更新方法应用[J]. 重庆交通大学学报(自然科学版) 2020(06)
    • [6].就地模块的设计及工程应用[J]. 电气技术 2020(09)
    • [7].大学生社团综合管理平台报名模块的设计[J]. 电脑知识与技术 2017(23)
    • [8].从“化学与生活”的模块定位看课程目标和教学安排[J]. 中学化学教学参考 2011(10)
    • [9].运用“六模块”,引领教师专业成长[J]. 小学教学研究 2012(23)
    • [10].小学数学“六模块”建构式课堂的调查与思考[J]. 中国校外教育 2012(28)
    • [11].洋思经验在六模块课堂中的有效运用[J]. 小学科学(教师论坛) 2012(08)
    • [12].“‘六模块’建构式课堂”中质疑模块初探[J]. 新课程导学 2011(32)
    • [13].LEA-5T:精确授时GPS模块[J]. 世界电子元器件 2008(05)
    • [14].天生的道德模块(下)[J]. 大众心理学 2019(08)
    • [15].关于心理模块的工作原理初探[J]. 牡丹江大学学报 2014(09)
    • [16].构建模块图[J]. 软件 2008(07)
    • [17].浅析宝骏汽车模块编程与配置[J]. 内燃机与配件 2019(24)
    • [18].面向5G的光模块技术应用分析[J]. 中国新通信 2020(11)
    • [19].校企共同开发肝性脑病虚拟仿真实验模块的探索[J]. 佛山科学技术学院学报(自然科学版) 2020(05)
    • [20].砼模块砌体用于检查井关键技术研究[J]. 公路与汽运 2015(06)
    • [21].混合模块及其应用[J]. 电气传动 2016(04)
    • [22].产学研协同创新视角下的模块商嵌入模式研究[J]. 科技管理研究 2016(16)
    • [23].核电站机械模块制造设计要求探究[J]. 产业与科技论坛 2015(08)
    • [24].在轨维护模块更换适配器的研制[J]. 机械设计 2015(10)
    • [25].对“六模块”建构式课堂教学的新认识[J]. 中学课程辅导(江苏教师) 2011(04)
    • [26].行人保护下腿碰撞器模块分析[J]. 汽车工程师 2010(09)
    • [27].模块营销与我国企业自主创新能力提升的路径[J]. 山东经济 2008(03)
    • [28].现代服务业发展的模块论及对我国的启示[J]. 软科学 2008(08)
    • [29].1+N宜居综合模块未来适应性研究[J]. 住宅与房地产 2020(12)
    • [30].移动之家[J]. 新建筑 2019(S1)

    标签:;  ;  ;  ;  ;  ;  

    开源J2SE项目Harmony-Instrument模块的设计与实现
    下载Doc文档

    猜你喜欢