● 摘要
由于采用了相对复杂的SOAP技术和XML交互,Web服务的性能和效率一直是研究人员关注的焦点。将Web Services技术引入到网格计算中,无疑也会带来相应的问题。随着网格计算的兴趣由科学计算渐渐扩展到了商业应用,网格性能的关注点也发生了变化。对网格计算性能的要求已经不再局限于强大的计算能力和海量的存储空间,诸如高吞吐率、快速反应、高可靠性等要素也随着电子商务的利用成为了性能要求的必要指标。 引入异步的事件驱动机制是并发编程中用于减少同步阻塞提高吞吐量的常用方法,本文首先综合考察了在并发编程上常用的事件和线程两种模式,然后立足网格环境下服务容器在高并发情况下的性能需求,结合事件驱动带来的异步性和线程模式的便利性,在基于事件的架构上重新设计了网格服务容器。该架构通过划分功能阶段的方式解除耦合,在阶段之间采用事件进行异步消息通信,而在阶段内部采用线程方式进行调度,最大限度的利用了系统的并发性,实现了在高并发请求下性能表现更好的网格服务容器。在此基础上利用系统功能解耦带来的良好模块封装性,引入了更为精确也更为实用的网格服务容器监控接口,并实现了一个简单的容器阶段控制器。论文的主要工作体现在如下几个方面:(1)分析了网格环境下服务容器的性能需求和现有大多数网格服务容器采用多线程模式的利弊,为研究和实现事件驱动的网格服务容器提供了必要的现实依据;(2)通过对国内外大量文献资料和技术标准的阅读研究,在综合考察事件和线程的各自特点基础上,立足网格服务容器的应用场景对并发性能和可伸缩性进行了分析,着重研究了CROWN Node Server中存在的问题和在网格服务容器中引入事件驱动方式的可行性和效益,预测了可能带来的系统重构中的问题和挑战,为下一步设计和实现提供了充分的理论和技术准备;(3) 分析功能需求,详细介绍了网格服务容器中的事件驱动机制的设计与实现。实现后的容器用于CROWN网格中间件中,取名为CROWN EDA Server。通过和CROWN原有服务容器Node Server进行性能评测比较,结果表明,事件驱动机制的确能在性能和可伸缩性方面带来效益,异步的消息通信有效的减少了系统中的同步阻塞,获得更好的并发特性。