论文部分内容阅读
随着互联网的迅速发展,分布式计算正在高性能计算、海量数据处理、大规模服务器端技术等领域发挥着越来越重要的影响,成为不可或缺的支柱技术。与此同时,Java虚拟机技术的作用也在变得日益重要。首先,Java虚拟机提供了跨平台的底层实现,可以为底层异构系统的实现屏蔽基础设施的细节。其次Java虚拟机的实现能够根据不同的应用场景和底层基础设施做不同的优化,同时又对上层应用保持透明,实现同一代码一次编译,在不同环境中实现执行效能的优化。另外,Java虚拟机提供的内存自动管理、垃圾回收机制和完全的动态链接特性,可以有效降低大型系统的设计和实现的复杂度。Java虚拟机因其诸多优良的特性,正在脱离纯粹的Java语言执行环境的角色,成为下一代通用计算平台。本文在深入研究了分布式计算与Java语言实现理论的基础上,分析了典型代表系统的设计与实现,提出了在Java虚拟机层次上基于线程迁移来实现分布式计算框架,为Java应用程序提供透明的分布式计算基础设施的设想。在Java虚拟机一层实现分布式计算框架有其独到的优势,主要包括以下几个方面:第一,底层分布式特性对于高层业务完全透明,Java程序员可以完全透明的像在单节点Java虚拟机上一样编程,降低从业务逻辑到分布式计算模式映射的难度,降低开发成本;第二,传统的分布式程序调试困难,分布式Java虚拟机支持首先在单节点虚拟机上编程调试再直接迁移到分布式环境发布运行,大大缩短分布式系统开发、调试、升级周期,降低系统维护难度;第三,易于遗产代码的二次分布式开发。一些遗产代码要转换成分布式程序并进行维护存在困难,成本高昂,此时可以使用分布式Java虚拟机实现平滑转换。本文在深入研究了基于线程迁移实现分布式Java虚拟机的理论问题的基础上,实现了分布式Java虚拟机原型singleJava,并对其实用性能做出了测试与评估,主要工作内容包括:1)分布式Java虚拟机上的线程迁移机制;2)任务迁移时的负载平衡策略;3)跨节点透明访问的分布式Java堆;4)分布式环境下Java线程的同步互斥机制;5)分布式环境下的内存自动管理和垃圾回收;6)singleJava的性能测试与评估。