文件名称:基于 jQuery 的 Web 源程序在线评测系统的设计与实现
文件大小:8.32MB
文件格式:NH
更新时间:2015-01-18 04:39:20
在线评测系统
基于 jQuery 的 Web 源代码在线评测系统(Design and Implementation of JudgeOnline System Based on jQuery)是基于软件工程的黑盒测试理论,是以 Java、 Servletj、Query 和数据库技术为基础搭建起来的一套可以对多种语言的源代码进行自 动编译、测试、分析及评判的系统。 该系统最初是为了支持 ACM/ICPC(ACM International Collegiate Programming Contest,国际大学生程序设计竞赛)而开发的系统。在实际应用中取得了非常好的 效果,近年来有很多高校教师将该系统引入到日常教学当中,取得了巨大的成功。 本论文的意义不只在于讨论如何实现一个可用的在线评测系统,并以此为基础思 考如何提升源代码在线评价系统的性能,更是讨论了如何完善系统功能的新方向。其 成果就是实现了一个已经在使用的在线评测系统,并给出了完成这个系统所需要的所 有关键技术和设计步骤。 本论文的创造性不仅在于讨论了在 Linux 系统上实现评判核心单元的关键技术和 具体方法,还在于使用了较大篇幅讨论了在线评测系统的层次结构,而这个结构常常 制约着现今很多在线评测系统的发展。ACM/ICPC 在国内发展得如火如荼,各种在线 比赛也层出不穷。就在这些比赛中间常常出现系统崩溃、反应缓慢等问题。这是因为 竞赛的时候并发请求集中爆发,给系统造成了巨大的压力,如果系统设计有缺陷则会 出现各种问题。而本文不但注重技术的讨论,更是重点论述评测系统的体系结构。 在运行平台和开发工具方面,许多在线评测系统都使用 Windows 操作系统做为 运行平台,使用 Asp.net 做为开发环境,使用微软的 SQLServer 数据库做为数据库服 务器。这样可能会使开发效率有一点提高,但是如果从长期考量这种搭配是不合适的。 首先,Windows 操作系统、SQLServer 数据库系统都需要昂贵的购买费用。其次, Windows 操作系统病毒横行,游戏众多,这些都不利于服务器的管理和安全。再次, 从并发性能、安全性、稳定性及操作系统体系结构成熟度而言,Windows 操作系统都 不是在线评测系统的首选。这一点从世界众多 IT 巨头在部署关键业务时操作系统平 台的选择就可见一斑。 在开发平台方面,Asp.net 平台的成熟度、安全性也需要进一步完善。而 Java 阵 营的 Java EE 企业平台经过多年的发展已经非常安全、稳定,同时 Java EE 拥有众 多结构合理、效率出众的框架可以使用。反观.net 平台的 MVC 框架也是刚刚出现, 这从一个侧面显示出了.net平台的落后。到目前为止.,net平台基本只部署于Windows 平台,号称 Linux 上.net 平台的 Mono 现在还不能完全与微软的.net 平台兼容。C# et 还实质性地掌握在微软这样一个商业公司手中,其前途是不确定的。 数据库方面使用 SQLServer 就更加不可行。体积庞大、费用高昂都是该数据库 的弱点。并且该数据库系统是只能运行在 Windows 操作系统上的商业数据库,源代 码和文档结构不公开。其日志文件结构保密会导致数据恢复困难(有实际教训的)。 在这方面 MySQL 数据库都比 SQLServer 数据库更好。而使用 MySQL 还是 PostgreSQL 则是仁者见仁智者见智的事情,主要还是看对数据库结构的设计、数据 库操作的优化上。 AJAX 技术的使用在众多的源代码在线评测系统中是不多见的。主要是很多在线 评测系统在创建之初还没有 AJAX 技术或者还没有如 jQuery 般成熟的 AJAX 框架。 所以几乎所有的在线评测系统都将精力放在后台评测核心的开发和评测指标的扩展 上面。近年来随着 jQuery 等 AJAX 框架的成熟,越来越多的网站采用 AJAX 技术作 表现层的开发。所以现在使用AJAX技术开发源代码在线评测系统的时机已经成熟了。 将 AJAX 技术用于源代码在线评测系统除了界面的漂亮,同时还大量减少了客户端和 服务器端传输的数据量,节约了带宽,提高了相应速度。这样也就提高了在线评测系 统的并发能力。而并发能力的强弱对于在线测试系统,或者任何在线考试系统、甚至 任何网站来说都是至关重要的。从一个狭隘的角度说,可以用更低廉的硬件平台,支 持更多的用户。这不是一件非常有意义的事情吗?