论文部分内容阅读
随着通讯技术、互联网的发展,人们对网络应用程序的开发提出了更高的要求。随着用户数目的大量增加,传统的由单个服务器来提供服务的应用模式已经越来越无法满足快速增长的并发请求。为了解决这个问题,开发人员们提出了很多的解决方案,集群就是其中的一种。本文采用ASM、AspectWerkz以及阶段式事件驱动框架(Staged Event-Driven Architecture)技术提出了一种基于JVM层透明集群的Java程序集群方案,并实现了一个JVM层集群软件原型。目的在于能够快速透明的将普通的Java程序部署于集群环境。该软件使用动态编织加载Java字节码的技术来实现在运行期透明的配置应用程序、拷贝集群对象,达到不用修改用户源程序的目的。同时使用了阶段事务驱动框架来设计构建,而不是常见的基于线程的并发模型。这样可以避免在高负荷情况下大量线程所带来的问题,同时可以在程序运行期通过调整参数来实现性能调优。本文分析了当前J2EE应用服务器集群方案的现状和实现机制,对JVM层集群实现的可行性做出了深入的分析,Java以及J2EE规范本身并不提供对集群的描述,而真实的企业级大型应用而言,集群功能却是必不可少的,很多J2EE应用服务器提供商都在自己的应用服务器中提供集群功能。但是这样的集群技术费用高昂,开发复杂,因此本文中所提出的JVM层集群技术旨在简化J2EE集群所带来的复杂度,使用基于Java字节码编织技术和阶段事务驱动框架来实现的解决方案。在字节码编织技术上,首先考虑到了的AOP机制的实用性以及局限性,遂采用将流行的AOP框架AspectWerkz的代码集成到系统中的机制来实现运行期的Java字节码编织。然后基于此种机制,实现了一个JVM层集群方案的软件原型,提供基本的集群对象复制功能,最后在现有的条件下对该原型进行了功能和性能测试。本文以此为例,展示了一种轻量级的Java集群软件开发框架,从而探索出在JVM层透明实现集群的可能性。