一种面向OSGi的资源加载委派反转机制研究

一种面向OSGi的资源加载委派反转机制研究

论文摘要

软件工程的主要原则之一是软件的模块化,以提高软件复用的能力。传统的复用过程中一般将功能代码以类库的形式提供,而为了解决模块动态更新、多版本共存等问题,当前的模块复用主要采用模块化框架技术,如Java技术中的OSGi(Open Service Gateway Initiative)。当我们希望将既有类库移植到OSGi框架中时,对大部分的类库来说,这样的移植工作只需要添加必要的元数据信息使其符合OSGi的模块形式。但是有一些类库由于其运行涉及应用的执行上下文,而在OSGi框架中,模块与模块是对等的关系,这种对等关系导致执行上下文的隔离,从而导致这些类库不能直接移植。对于Java技术下类库向OSGi集成框架移植而言,这个问题集中体现为资源加载机制在移植过程被破坏。因此,本文提出了一种面向OSGi的资源加载委派反转机制,该机制通过对OSGi框架下程序运行堆栈中的模块调用顺序分析,来确定类库模块所需加载的资源所在的模块,并在类库模块加载资源时将加载请求委派给资源所在模块的类加载器。通过在Felix框架上进行系统实现和验证实验,我们验证了此机制在OSGi框架下的有效性。具体而言,本文的工作主要包括以下几个方面:1.基于对类库的资源加载方式和OSGi下的资源加载技术的研究,分析当类库移植为OSGi模块、运行于OSGi框架中时由于上下文隔离,不能正确加载资源的问题,提出了面向OSGi的资源加载委派反转机制。2.基于上述机制,提出了对OSGi规范的扩展,通过对OSGi模块层的类加载机制的扩展,使得移植到OSGi框架中的类库能正确加载所需的资源,并在Felix框架中进行了实现,给出了传统Java类库能直接移植的OSGi运行平台。3.在上述平台上,模拟类库模块运行的可能情况做了验证实验,验证了面向OSGi的资源加载委派反转机制的有效性,并通过Hibernate这一典型类库移植实例,展示了平台的实际应用价值。

论文目录

  • 摘要
  • Abstract
  • 第一章 绪言
  • 1.1 研究背景
  • 1.2 研究现状
  • 1.3 本文工作
  • 1.4 论文组织
  • 第二章 相关工作
  • 2.1 Java类加载机制
  • 2.1.1 类的表示:代码类与运行时类
  • 2.1.2 类加载器(Class Loaders)
  • 2.1.3 双亲委派模型
  • 2.1.4 非双亲委派模型
  • 2.2 OSGi规范
  • 2.2.1 模块层(Module Layer)
  • 2.2.2 生命周期层(Lifecycle Layer)
  • 2.3 Felix框架
  • 2.4 本章小节
  • 第三章 资源加载委派反转机制
  • 3.1 特殊类库的资源加载方式
  • 3.1.1 Hibernate POJO中资源加载方式
  • 3.1.2 Jboss5中Hibernate的资源加载方式
  • 3.1.3 Hibernate在OSGi中的情况
  • 3.2 资源加载委派反转机制
  • 3.3 本章小节
  • 第四章 OSGi规范扩展及Felix框架扩展实现
  • 4.1 OSGi的模块层扩展与实现
  • 4.1.1 MANIFEST属性扩展
  • 4.1.2 资源加载机制扩展及代码实现
  • 4.1.3 模块层其余内容说明
  • 4.2 OSGi生命周期层比较
  • 4.3 本章小节
  • 第五章 实验验证
  • 5.1 资源加载委派反转机制的验证
  • 5.1.1 OSGi bundle的开发
  • 5.1.2 对资源加载委派反转机制的实验验证
  • 5.2 Hibernate集成与测试
  • 5.2.1 工具Bundlor介绍
  • 5.2.2 Hibernate的集成
  • 5.2.3 集成测试及动态更新测试
  • 5.3 本章小节
  • 第六章 总结与展望
  • 6.1 工作总结
  • 6.2 研究展望
  • 致谢
  • 简历与科研成果
  • 参考文献
  • 附A 映射文件
  • 附B hibernate配置文件
  • 相关论文文献

    标签:;  ;  

    一种面向OSGi的资源加载委派反转机制研究
    下载Doc文档

    猜你喜欢