欢迎来到天天文库
浏览记录
ID:34037601
大小:227.19 KB
页数:3页
时间:2019-03-03
《基于b_s架构及linux系统的acm竞赛在线评判系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2010年第11期福建电脑151基于B/S架构及Linux系统的ACM竞赛在线评判系统刘鑫标(湖南工业大学计算机与通信学院湖南株洲412008)【摘要】:基于Linux环境开发了OnlineJudge系统,即在线评判系统,主要应用于ACM/ICPC国际大学生程序设计竞赛中,同时还可以用于教学,能减轻教师低层次工重复性工作量,吸引学生主动学习、主动实验,从而切实提高学生的程序设计能力。文章主要分析了ACM在线评判系统的功能,阐述了系统的总体架构以及系统所使用的开发环境与技术,最后着重介绍了评判内核的设计与实现思路。【关键词】:OnlineJ
2、udge;ACM/ICPC;B/S;Linux;在线评判系统;程序设计竞赛引言据服务作为前台,评判服务作为后台。使用WEB端与ACM/ICPC(ACMInternationalCollegiateProgram-数据库的通信、评判服务器与数据库的通信构成整个mingContent,国际大学生程序设计竞赛)是由历史悠系统的完整数据管理体系。从而将前台的数据处理和久、颇具权威性的组织ACM(AssociationforComputing后台的数据处理分隔开来,形成两层分隔的数据操作Machinery国际计算机协会)主办的,是世界上公认的结构。
3、用户提交题目时,前台通过套接字连接,给后台规模最大、水平最高的国际大学生程序设计竞赛项目,发送一个加密的数据包,通知后台做出响应。评判服务其目的是促进大学生提高运用计算机分析问题和解决器与Internet没有直接连接,彻底保证测试数据不被问题的能力。外泄。1、系统分析前端设计基于B/S模式进行Web服务器设计。B/本系统的出发点是为程序设计类竞赛提供一个高S,即Browser/Server(浏览器/服务器)模式,它相对于C/效的评判与管理平台,为编程爱好者及参赛队员提供S(客户端/服务器)模式来说具有客户端零维护,容易一个练习与交流的平台
4、。系统具有以下几点需求:扩展等诸多优点,非常适用于用户群庞大的程序在线(1)因为要运行用户提交的程序,需充分考虑系统评判系统。后端Judge服务器采用多线程,多进程并发的安全性问题,保证系统安全稳定地运行。处理机制,在保证系统稳定性的同时极大地提高系统(2)用户代码应保密,做题信息公开,以增强竞争的响应速度,系统体系结构图如图1所示。性。(3)提供友好的用户界面,增强交互性和用户体验。(4)用户管理,提供不同用户权限,如解决问题的用户越多,权限越高,这样更能激发用户做题兴趣,提高编程能力。(5)题库管理,题库是整个系统的核心,应提供题目批
5、量录入、修改、删除等功能。(6)赛事管理,主要是参赛队员的管理,赛题管理,赛事例程管理。(7)编译,应该支持各种常用程序设计语言,如C,C++,Java,Pascal等。使用户真正体会到程序设计竞赛的灵魂是算法的设计与实现,给予竞赛队员更大的发图1评测系统体系结构挥空间。3、开发环境与技术(8)程序运行与测试:这是该系统的核心,主要是监3.1J2EE技术控程序的运行状态,运行的时间空间消耗,运行的权限J2EE是一个基于组件的体系结构,用于构建N层管理,以及运行结果的评判,尽量给出用户确切详细的的、基于Web的、以服务端计算为核心的、模块化
6、的企信息。业级应用。由于使用Java语言进行开发,可以很轻松2、系统总体架构地实现系统的跨平台部署,即"一次编写,处处运行"。系统架构采用分离可缩放结构。采用WEB端与数3.2Linux+MysqlLinux是一个基于Posix和Unix的多用户、多任152福建电脑2010年第11期务、多CPU并支持多线程的类Unix的网络操作系统。确;如发现只是相差空格、Tab、回车,则给出该程序为Linux以它的开源、高效能和灵活性著称,其模块化的输出格式错误信号(Presentationerror);如果发现其他设计结构使得它能运行在大型的工作站上
7、,也能够在字符不匹配,则立即中止该程序,给出该程序为结果错普通计算机上。在网络病毒日益风行的今天,使用误的信号(WrongAnswer)。从程序运行时刻开始计时,Linux系统可以提供更好的安全性与稳定性。在时间运行范围之内,得到了正确答案,则次程序符合Mysql是最受欢迎的开源SQL数据库管理系统,它题目要求并通过了时间和内存的限制,给出程序正确由MysqlAB开发、发布和支持,目前由Oracle提供支的信号(Accepted)。反之,如果运行时错、答案错、超时持。MySQL是一个快速的、多线程、多用户和健壮的或者超过内存限制,则向该进
8、程发出sigkill信号,强行SQL数据库服务器。Mysql服务器支持关键任务、重负中止该进程,对数据库记录进行相应的修改,执行过程载生产系统的使用。如图2所示。4、核心评判模块的实现后台评判
此文档下载收益归作者所有