论文部分内容阅读
在软件研发的过程中,针对代码的缺陷检测为软件的质量及可靠性提供了重要保证。随着云计算技术日益普及,将代码缺陷检测服务,移植到云平台上,能够充分利用服务器集群的计算资源,高效、快速地为目标用户提供代码缺陷检测的服务。DTS代码缺陷检测云平台正是基于这样的理念应运而生。在当前的版本中,其基于虚拟化技术和Hadoop分布式系统基础架构部署,在每台服务器上独立运行代码缺陷检测程序。因为每台服务器仅仅只是测试一个完整的待测工程,就运行方式而言,只是单机模式的延续,未能充分利用云计算技术,发挥出服务器集群强大的计算能力。由于各个测试工程的文件数量和大小不一致,这种运行方式会造成整个集群中部分的服务器处于闲置状态,导致服务器集群的负载不均衡。针对该问题,本文提出了新的代码缺陷检测云平台作业调度策略。该策略将用户上传的待测工程拆包后,将源文件视作最小的测试单元,每份源文件作为一个测试任务。通过作业调度器运行作业调度算法选取测试任务,选中的测试任务被分发到服务器节点上完成代码缺陷检测。本文通过Hadoop的MapReduce计算模型,使得同一个工程存储在不同服务器节点上的测试结果归并,生成该测试工程完整的最终测试结果。DTS代码缺陷检测云平台,是以Struts2框架、Spring框架为基础,按照Web应用程序的组织方式,采用MVC设计模式编码实现的。通过对经典的作业调度算法和分布式作业调度算法的比较分析,归纳出适合于代码缺陷检测服务的作业调度算法,将其作为作业调度器的任务分发策略。作者通过相关实验来验证该策略在DTS代码缺陷检测云平台上的应用。实验结果表明本文提出的作业调度策略对DTS云平台提供的代码缺陷检测服务的性能提升具有明显的作用。