论文部分内容阅读
多线程技术是构造下一代分布式应用的基本技术。通过将分布式应用对于Web应用服务器的多线程服务需求提取出来,以统一的编程模型提供给用户,Work Manager是目前构建基于Web应用服务器平台的分布式应用的重要手段。
并发运行环境是Work Manager在Web应用服务器的后台实现,保证了用户对于基于Work Manager的编程模型的使用可以在Web应用服务器端获得正确的、预期的执行结果。目前,对并发运行环境的研究还处于初始阶段,主要研究成果形成了CommonJ、JSR237等规范,这些规范定义了Work Manager的接口形式,解决了分布式应用与编程模型的交互问题,然而对于编程模型与Web应用服务器的交互问题仍然缺乏研究。
针对该问题,论文基于CommonJ规范,根据并发运行环境与传统应用服务器任务执行环境的差异,提取了若干并发运行环境的非功能需求,并针对这些需求给出了我们的解决方案,包括分布式应用的并发控制和失败恢复、应用服务器系统过载保护、运行空间的隔离等。
首先,论文分析了现有的Web应用服务器的系统架构,指出了现有架构存在的缺陷及引入并发运行环境带来的优势,随后,对目前业界已有的关于并发运行环境的研究成果进行了总结阐述。在此之上,对并发运行环境所需要实现的各种特定应用需求及偏好进行了萃取,给出了并发运行环境需要实现的功能及非功能需求,如最大最小线程控制、任务运行调度、失效检测及过载处理等。
其次,给出了一个基于CommonJ规范的并发运行环境OnceCRE(OnceConcurrent Runtime Environment)的框架设计与实现。OnceCRE通过对现有Web应用服务器业务逻辑进行再划分,将任务的传递与执行相分离,构建了应用服务器的统一的业务执行层。在保证了应用服务器端的管理需求的同时,OnceCRE还支持用户自定义的原子性,从而可以灵活的组合各种应用需求及用户偏好。然后,针对并发运行环境中统一的任务调度可能导致的性能瓶颈及分布式应用对于服务差分的需求,提出了一种基于日历队列的优先级队列调度算法——PRAM。通过引入Markov Chain来对任务密集到达进行更加准确的响应,有效解决了日历队列在任务事件密集到达时产生的颤抖现象,保证了日历队列O(1)的时间复杂度。
最后,对OnceCRE进行了功能测试及性能测试,从实验上证明了OnceCRE在功能上的有效性及PRAM在性能上的高效性。