




已阅读5页,还剩64页未读, 继续免费阅读
(计算机科学与技术专业论文)基于web的程序评测系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
d e s i g na n di m p l e m e n t a t i o no fa no n l i n e p r o g r a m m i n gl a n g u a g ee v a l u a t i o ns y s t e m s p e c i al t y :c o m p u t e rs c i e n c e & t e c h n o l o g y ma s t e rd e gr e ec a n di d a t e s q n gl i 垒n g j i s u p e r v l s o r :p r o f j i a n e rc h e n c o l l e g eo fi n f o r m a t i o ns c i e n c e e n g i n e e r i n g c e n t r als o u t hun i v e r s i t y c h a n g s h ah u n a np r c 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均己在论文中作了明确的说明。 作者签名:鋈盏日期:巡年月翌日 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文并根据国家或湖南省有关部门规定送交学位论文, 允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 摘要 随着计算机技术的高速发展和国际互联网应用的不断深化,将信 息技术与教育的有机结合的信息化教育是新型教育模式的重要发展 方向。本文在深入研究信息化教育模式和分析了程序设计相关课程的 传统教学模式的弊端的基础上,提出了基于w e b 的程序评测系统,系 统注重充分互联网技术的优势,对教学资源进行开发和组合,以提高 教学效率、优化教学模式为目的。 系统基于b s d b m s 典型三层开发架构,分为浏览器层、w e b 服 务器层、以及数据层,提供多语言、多编译器的程序评测功能,包括 功能评测、效率评测以及安全检测。系统利用j a v aw e b 平台技术实 现瘦客户端设计,降低维护负载;通过w i n d o w s 子进程技术创建编译 和评测子程序,并利用管道技术作为数据传输载体实现w e b 端和后端 评测内核的无缝结合;以动态测试和黑盒测试作为评测功能的底层模 型,借助系统的测试用例库实现用户程序的功能测试;结合w i n d o w s 平台进程技术的监控机制来准确测算程序的执行效率指标,为用户提 供了高价值的数据参考;以w i n d o w s 工作组机制为基础,实现了用户 进程安全容器,结合j d b c 数据库连接池技术作为数据库连接对象管 理机制,保障了系统的稳定性和健壮性。 本文最后对系统开发过程中的研究工作进行了总结,并对后期系 统功能扩充与完善的方向进行阐述。 关键词网络学习平台,程序评测,进程安全 a bs t r a c t w i t ht h er a p i dd e v e l o p m e n to f c o m p u t e rt e c h n o l o g ya n dt h ei n t e m e t u s a g e ,i n f o r m a t i o nt e c h n o l o g ye d u c a t i o ni sa ni m p o r t a n tn e we d u c a t i o n a l d e v e l o p i n gd i r e c t i o n b yi n d e p t ha n a l y s i s o fi n f o r m a t i o ne d u c a t i o n m o d e la n dt h ed r a w b a c k so ft h et r a d i t i o n a lp r o g r a m m i n gt e a c h i n gm o d e l , t h i sp a p e rp r o p o s e sa nw e b - b a s e dp r o g r a me v a l u a t i o ns y s t e mw h i c h d e v e l o pa n dc o m b i n et e a c h i n gr e s o u r c e su s i n gi n t e m e tt e c h n o l o g yi n o r d e rt oi m p r o v ee f f i c i e n c ya n d o p t i m i z et h ep r o g r a m m i n gc u r r i c u l u m t h es y s t e mi sb a s e do nt y p i c a lb s d b m st h r e e - t i e ra r c h i t e c t u r e , w h i c hi sd i v i d e di n t ot h eb r o w s e rl a y e r , w e bs e r v e rl a y e r , a n dt h ed a t a l a y e r s y s t e mo f f e r sm u l t i p l ep r o g r a m m i n gl a n g u a g e se v a l u a t i o nf u n c t i o n , i n c l u d i n gl o g i cf u n c t i o n a lt e s t i n g ,e f f i c i e n c yt e s t i n ga n ds a f e t yt e s t i n g s y s t e ma d o p t s t h i nc l i e n t a r c h i t e c t u r e ,w h i c hi sd e s i g n e dt or e d u c e m a i n t e n a n c e l o a d ,b yu s i n gj a v aw e bp l a t f o r mt e c h n o l o g y t h e c o m p i l i n ga n de v a l u a t i n gp r o c e d u r e si si m p l e m e n t e db yu s i n gt h e w i n d o w ss u b p r o c e s st e c h n o l o g y a n du s ep i p et e c h n o l o g ya sad a t a t r a n s m i s s i o nc a r r i e rt oa c h i e v et h es e a m l e s sc o m b i n a t i o no fs y s t e m w e b s i d ea n de v a l u a t i o nk e r n e l e v a l u a t i o nm o d u l eu s i n gd y n a m i c t e s t i n ga n db l a c k b o xt e s t i n ga st h eb a s ee v a l u a t i o nm o d e la n dt h e n a c h i e v ef u n c t i o n a lt e s t i n go fu s e rp r o g r a mb yt h et e s tc a s e l i b r a r y p r o v i d e di nt h es y s t e m s y s t e mg e tt h ee f f i c i e n c yo ft h ep r o g r a mb yu s i n g w i n d o w sp l a t f o r mp r o c e s st e c h n o l o g yc o m b i n e dw i t ht h e m o n i t o r i n g m e c h a n i s m ,a n dp r o v i d eav a l u a b l er e f e r e n c e s e c u r i t yc o n t a i n e r so fu s e r p r o g r a mb a s e do nw i n d o w sj o bg r o u pa n de f f i c i e n tm a n a g e m e n to f d a t a b a s ec o n n e c t i o no b je c t sw i t hj d b cd a t a b a s ec o n n e c t i o np o o le n s u r e t h es y s t e ms t a b i l i t ya n dr o b u s t n e s s f i n a l l y , t h ep a p e rs u m su po u rr e s e a r c hd u r i n gt h ed e v e l o p m e n t ,a n d d i s c u s st h ep o s t e x p a n s i o na n di m p r o v e m e n to ft h es y s t e m k e y w o r d so n l i n el e a r n i n gp l a t f o r m ,p r o g r a me v a l u a t i o n ,p r o c e s s s a f e t y h 一r 硕士学位论文目录 目录 第一章绪论1 1 1 课题的研究背景i 1 1 1 信息化教育的发展1 1 1 2 源代码程序人工批阅评测的弊端2 1 2 基于w e a 的程序评测系统的发展现状3 1 3 课题的研究目标。4 1 4 论文的组织结构5 第二章系统总体设计6 2 1 系统需求6 2 2 系统的总体架构设计7 2 - 3 系统的网络拓扑结构。9 2 4 系统运行环境1 0 2 4 1 服务器端的架设环境1 0 2 4 2 客户端的运行环境11 2 5 本章小结1 1 第三章系统主要模块的设计与实现1 2 3 1 系统w e b 端设计与实现1 2 3 1 1 用户模块1 3 3 1 2 评测信息交互模块1 4 3 1 3 远程后台管理模块17 3 2 系统数据存储设计与实现2 1 3 2 1 对象数据存储设计2 l 3 2 2 高效数据库连接2 2 3 3 系统源代码评测策略设计与实现j 二二:- - 2 4 3 3 1 评测状态信息一2 5 3 3 2 编译器动态匹配2 5 3 3 3 源代码评测流程2 6 3 4 本章小结一2 8 第四章系统实现的关键技术2 9 4 1 利用t o m c a t 数据库连接池管理连接对象2 9 4 2 利用w i n d o w s 进程技术实现评测流程3 0 4 2 1 评测内核程序的子进程创建3 0 i i i 硕士学位论文 目录 4 2 2 进程间通信策略3 1 4 2 3 编译子进程与用户程序子进程的实现。3 3 4 3 系统评测模块的安全机制3 5 4 3 1 源代码分析策略3 6 4 3 2 用户程序权限控制策略3 7 4 3 3 用户程序进程容器3 8 4 4 本章小结。4 4 第五章源代码评测实例4 5 5 1 排序算法评测实例4 5 5 2 本章小节4 9 第六章总结与展望5 0 6 1 工作总结。5 0 6 2 工作展望51 参考文献5 2 致谢5 7 攻读学位期间主要的研究成果5 8 硕士学位论文 第一章绪论 第一章绪论弟一早三百t 匕 随着信息技术的高速发展,计算机作为一种信息工具广泛服务于各个领域, 信息化正以无形和有形的方式积极地改变着我们日常的工作、生活和思维。最近 二十年以来,国际互联网( i n t e m e t ) 技术更是得到了极大的发展和应用,并且在 全球范围内获得极大的成功,而i n t e m e t 和教育相结合的网络教学平台模式已经 是当代教育界的热点研究课题和重点发展方向【1 。2 】。很多国家和地区已经利用 i n t e m e t 技术广泛服务于各个教学领域,实现网络化的远程教育服务,教学资源 共享,教学活动的互动交流等。 1 1 课题的研究背景 1 1 1 信息化教育的发展 当今人类社会无疑已经步入了信息化时代,以计算机为核心的智能信息化网 络需求已经是各行各业发展的重要新增长点,信息化提供了高度的资源共享和信 息交互渠道,集合深度信息技术应用,全面改变经济和社会结构。信息化并不是 单一的独立个体,互动关联性是信息化的基础模型,它是一个具有庞大规模的, 相互之间有机有机结合的的信息组织体系,它的快速智能特性正不断促使我们的 工作、生活模式极为积极和深刻的改变。 信息化教育是在信息化技术的支撑下,即继承传统的教学模式和资源,又对 教学资源进行重新开发、组合、优化、共享的一种全新的现代化教学模式,典型 应用为计算机辅助教育( c o m p u t e ra i d e di n s t r u c t i o n ,简称c a i ) 平刽3 羽。计算 机辅助教育是以计算机技术为基础支撑而进行的教学活动,着重提供自主探索型 的学习环境,全面运用多媒体、人工智能等技术改善了传统教学模式较为刻板和 单一的弊端,以提高教学效率和教学质量,实现优化教学为最终目的。当代计算 机辅助教育系统具备以下特性: 1 网络化 网络化是当今教学模式的发展趋势,也是当今信息时代的真实写照,为教学 信息的传输和共享提供了一个便利的高速通道。网络不仅拥有全面海量的各类科 学信息和教学资源,网络化的合作交流背景亦充分激活了教学活动的人与人之间 的互动关系、构建了一个更为广阔的快速便捷交互平台,为多样化教学关系的建 立需求提供了无限可能性【6 j 。 2 虚拟化。 硕士学位论文第一章绪论 随着计算机性能的强化,高速度中央处理器和大容量存储器不断出现,利用 计算机处理大容量信息已经变得越发的轻而易举,随之而来的现实虚拟技术和人 机交互技术亦充分应用在各种虚拟实验室、协同实验室等教学平台中。文献 7 8 】 分析了基于i n t e m e t 技术的虚拟实验平台架构,文献 9 1 0 提出了以i n t e m e t 和 n s 2 平台为基础进行构建的计算机网络虚拟实验室,文献 1 1 1 3 阐述了基于各种 构件的虚拟实验平台的设计实现方法,文献 1 4 贝i j 给出了一种基于多线程的计算 机硬件的仿真方法。通过现实虚拟化技术和人机交互技术,学生在教学过程中就 不仅仅停留在传统教学授课模式的看和听的被动层面上,还能身临其境式的感受 学习内容,大为增强可理论教学过程中的实践体验。 3 扩展化。 计算机辅助教育作为一项系统性工程,应制定和遵守统一的开发标准,保证 系统的易扩充性,做到高内聚、低耦合,为系统资源的有机建设和集成提供支持。 虽然不同的计算机辅助教育系统侧重方向和架构设计上各不相同,但其应该提供 标准的扩展外部接口。系统除提供充足的网络教学资源,配置高效便捷的信息传 输网络和完善的远程学习机制,还应具备设计良好的人机互动界面,提供完备的 管理维护体系,以便系统信息数据进行后期扩展和维护【l 孓1 6 】。 1 1 2 源代码程序人工批阅评测的弊端 高级语言程序设计课程是计算机相关专页的教学的核心内容之一,语言的掌 握水平和程序的设计能力也是衡量计算机专业从业人员水平的重要标准。程序语 言功能强大,表达方式多样化,要提高程序设计能力最关键在于反复的进行实践 上机编程训练,只有通过大量的编写源代码才能打下扎实的语言基础,提高设计 水平。在传统计算机高级语言程序设计类的课程教学中,对程序作业的评测方式 往往采用人工评测的简单模式:教师布置好习题或作业,让学生编程完成,学生 以书面纸质,电子邮件等方式提交源代码内容给教师,教师对提交上来的源代码 进行逐行阅读,最后评分给出成绩。显然,这种对源代码进行人工批阅的评测模 式存在一定的弊端【r 九 1 批阅人负担过重 一个教师往往要负责几个班级的程序语言课程的教学工作,假设每次作业布 置数道题目,则每次源代码作业的源代码数目成百上千。如果对每个学生作业的 每一份源代码都逐一仔细分析,则工作量着实过于巨大,若要对每一份源代码都 进行实际的上级编译运行再测试,这更是几乎是不可能完成的任务。 2 低时效性 人工批阅源代码的特点决定了这一评测方式所消耗的时间必定不会短,因此 从学习者的角度来看,这一方式是很难得到及时有效的反馈信息,对于有错误的 2 硕士学位论文第一章绪论 程序便无法及时进行更正修改和总结,不知道程序错误产生的具体缘由【1 8 1 ,显然 这会对学习效果大打折扣。 3 侧重于标准答案 计算机程序语言表达方式极为灵活多交,这一特点决定了某一问题可能会存 在很多不同的解决方法,例如一个将输入的数字按从小到大排序的问题,可以采 用数组的方法,亦可以采用链表结构,但可能也有些学生采用堆栈来解决这个问 题。但在作业批阅过程中,教师往往对于某种标准答案或模式比较熟悉,由于思 维定式的影响,在遇到采用标准做法的作业时,教师能较容易快速的做出评测, 但对于一些“非标准”的,不太常见的解决方案,可能难以在短时间内进行有效 的判断,不易验证正确性。 4 难以量化运行效率 对于程序语言学习者来说,单凭源代码很难判断一个程序的运行效率,例如 时间开销,内存开销等。在数据结构或算法设计等课程中,对算法的效率进行分 析是该类课程的重点内容之一。在初学者的角度看来,两个不同算法的时间复杂 度,例如o ( n 2 ) 和o ( n l o g n ) 两个不同时间复杂度可能显得太为抽象,需要更具体 的运行实例来帮组理解。实际上,即使将源代码编译后运行,由于计算机的运行 速度十分之快,时间刻度以微妙级别计算,根本无法准确扑捉运行时间,对于更 为抽象的内存占用数据,更是毫无度量依据。因此,传统的手工评测无法评判一 个程序是否高效。 显而易见,对程序的评测、统计、分析是工作量十分巨大的工作,当代计算 机程序语言教育已经逐步开始逐渐发展各种基于w e b 的程序评测系统来代替人 工评测,着重改进传统教学的一些弊端,加强学习过程中的实践体验,提高高级 语言程序设计或算法等相关课程的教学质量【1 9 2 0 l 。 1 2 基于w e b 的程序评测系统的发展现状 国际大学生程序设计竞赛a c m i c p c ( a c mi n t e m a t i o n a lc o l l e g i a t e p r o g r a m m i n gc o n t e s t ) 是在计算机领域颇具权威性的美国计算机协会a c m ( a s s o c i a t i o nf o rc o m p u t i n gm a c h i n e r y ) 主办的全球最高水平,最大规模的大学 生程序设计赛事,旨在展现大学生创新能力、团队精神、分析和解决能力f 2 l 】。大 致的比赛流程为:每个参数队伍在一段给定的实践内采用程序设计语言进行编写 程序解决一定数量的问题,完成之后提交裁判在计算机上运行评测。最早的程序 评测系统大多是为适应各种程序设计大赛进行设计开发,随着网络远程教育系统 的不断发展,也逐渐出现了很多针对实际课程教学辅助的评测系统,这些系统在 硕士学位论文 第一章绪论 竞赛评测系统的基础上添加了对应的辅助教学的模块,对教学起到了很好的促进 效果。评测系统的大致运行流程是:系统接收用户提交的源代码或源代码文件, 再对其进行分析和预处理后进行编译,进而调用对应测试用例对程序执行测试, 最后给出反馈信息。 p c 2 ( 称为p c 平方或p c t w o ) 程序测试控制系统是国外应用较好的程序评 测系统1 2 2 1 ,也是是目前国外最具影响力的程序评测系统之一,它由美国加利福尼 亚大学设计,专为支持a c m i c p c 而研发。系统提供了完整的程序竞赛的评测 解决方案,系统接收比赛选手提交的源代码并对该源代码进行检查、编译、执行, 最终将评测结果返回给参赛者。竞赛举办方也可通过系统的后台配置信息接口来 定制具体的竞赛规则,例如竞赛题库的选择设定、限制使用的程序语言种类、具 体的权重和计分模式等。文献【2 3 】是t i m u so n l i n ej u d g e 在线程序评测系统,该 系统由俄罗斯乌拉尔大学( u r a l ) 学生自主研发,提供目前俄罗斯国内最大最 全的程序设计题库。文献 2 4 是新加坡国立大学( n u s ) a l g o r i t h m i c s n u s 的在 线评测系统,该系统较多的应用于算法设计和数据结构等课程中,且目前是一个 开源项目。 国内的程序评测系统起步相对较晚,但是随着a c m i c p c 在国内的逐渐兴 起,也促使了许多程序评测系统在国内的开发应用,为数不少的国内高校和组织 自行开发的基于w e b 的程序评测系统不断涌现。典型的有北京大学的在线评测 系统( p k uj u d g e o n l i n e ) 【2 5 。2 6 】,系统除了源代码的编译、运行、评测等标准化 功能之外,亦提供了很多教学辅助功能,例如用户管理、在线考试、讨论区服务、 邮件服务等,教师可在系统布置程序作业,学生可登陆系统在线提交并及时获得 系统反馈信息,可针对某一问题进行专项讨论等,让教学活动变得更为立体化。 国内类似的评测系统还有浙江大学的z j uo n l i n ej u d g e t 2 7 】、中国科技大学的 u s t co n l i n ej u d g e l 2 3 1 、高中生程式解题系统( a no n l i n ej u d g es y s t e mf o r b e g i n n e r s ) 等。文献 2 9 3 0 是中南大学虚拟实验室提出的一个基于i n t e m e t 的c 语言学习支撑平台,系统采用c s 架构设计,包含经典t u r b oc 环境,提供完备 的语法检验和逻辑检错功能,专门针对c 语言初学者进行研发。 1 3 课题的研究目标 基于w e b 的程序评测系统以平台内核编程技术作为技术支撑,以计算机网 络作为信息渠道,以加强学习者在高级语言程序设计课程的教学活动过程中的实 践体验为目的,本课题基于面向对象技术思想、面向w e b 、采用网络化体系设计 并实现了基于w e b 的程序评测系统,提供给学习者一个高度自主化的学习平台, 4 硕士学位论文 第一章绪论 本系统的应实现以下研究目标: 1 低接入标准 系统采用瘦用户端设计,用户只需一台配置了浏览器的计算机便能即可接入 系统,通过注册获取权限即可使用系统资源服务,无需额外安装客户端程序。 2 高时效性 迅速的系统反馈是程序机器化自动评测的基础支撑,以高速的网络化教学模 式改进传统教学模式的弊端。 3 安全性 系统的安全性极为关键,是系统向用户提供持续稳定的学习服务的重要基 础,保障数据安全、用户安全,具备防范恶意非法操作的入侵能力。 4 扩展性 系统充分利用面向对象的设计思想,注重系统的后期信息维护和功能升级。 1 4 论文的组织结构 本文分为六章。 第一章:绪论。介绍基于w e b 的程序评测系统的相关研究背景,研究当前 该系统在国内外的研究和发展现状,最后提出了基于w e b 的程序评测系统的设 计目标。 一 第二章:系统总体设计。提出了系统架构的设计思想以及各功能模块的划分 和设计,从宏观上对系统设计思想进行概括。 第三章:系统主要模块的设计与实现。根据系统模块之间的关联关系,重点 陈述了主要模块的设计思想和实现方法。 第四章:系统实现的关键技术。本章系统实现的关键技术进行的详细的解析, 并对系统的高效稳定运行的控制机制进行了详细说明。 第五章:系统评测实例。以具体的排序算法为例,介绍了系统的评测过程, 并将得到的评测反馈结果进行对比和分析。 第六章:展望和体会。本系统的设计和开发工作进行总结,并阐述了系统将 来的完善方向。 硕士学位论文 第二章系统总体设计 第二章系统总体设计 互联网化的教育是现代信息技术应用于教育领域的新型教学形式,互联网远 程教学给学习者实现了完全自主化的学习模式,根据程序语言设计课程的学习特 点,基于w e b 的程序评测系统需提供完善的自主程序语言学习平台,创建良好 的自学环境,注重提高学习者的实践动手能力和编程创新能力。 2 1 系统需求 程序设计语言十分灵活,具有完备的数据类型和语句控制结构,易于处理复 杂数学建模和数据结构,便于开发各种功能丰富应用软件,其源代码通过相应编 译器和系统平台处理后,通过调控计算机资源解决各种复杂应用问题。 在传统教学模式中,存在教学双方之间信息交互响应较慢的弊端,为提高教 学活动的时效性,网络化教学模式是十分必要的。由于网络教学活动教学双方可 能不便于面对面接触,因此,基于w e b 的程序评测系统在教学活动上应体现为 学生与教师之间的一个互动纽带,改进传统教学模式的弊端,实现一个高度自助 化的学习平台,致力于向学习者提供良好的学习体验。系统的设计目标为: 利用计算机图形界面技术,提供友好易用的图形用户界面,丰富信息表 现形式。 支持多种程序设计语言,要求评测和反馈信息自动化,系统评测结束后 立刻返回结果信息,包括编译器信息、运行结果测试信息、代码长度、 c p u 时间开销、内存开销的效率指标信息等。 保证评测的公平性,具有良好的客观性,运用完备的测试用例库剔除传 统人工评测方式的主观人为因素。 系统必须具备完善的安全机制对各种可能出现的危险情况进行限制,保 证系统安全稳定地提供服务。 充分运用面向对象的设计思想来设计系统模块,使其具有良好的扩展 性,易用系统的后期维护和扩充。 除了对源代码评测的核心功能之外,提供相关的辅助教学功能,设置大 容量的系统题库,使其适用于不同层次的学习者。 系统自动记载学习者的学习轨迹和评测结果,方便学习者自我总结,为 往后的学习活动提供依据。 评测系统的参与者主要包括普通用户( 学生) 和管理员( 教师) 两个大类, 6 硕士学位论文第二章系统总体设计 系统用户的用例图1 3 2 1 如图2 - 1 所示。 图2 1 系统用户用例图 普通用户( 学生) 是系统核心评测功能的使用者,使用系统前首先需要注册 新用户,注册成功并登录系统后才可获得系统功能的更大应用权限。学生参与的 用例主要包括在线评测、用户个人资料维护、讨论区等。管理员( 教师) 是系统 的维护者,主要负责系统信息管理,对系统的用户信息、系统题库、辅助教学信 息、讨论区等进行维护工作,保证系统正常有序运行。 2 2 系统的总体架构设计 , “ 、 田园 动卷交互网站 请求 系统僻息 测览器 一请求- l 处理逻辑 用户显示逻 调用 辑 一反馈一 i 习 一l 一 反馈 一l 数据库 i 届端 评测内捩 l 、。掰览器层 l 图2 - 2 系统总体架构 基于w e b 的程序评测系统的总体系统架构如图2 2 所示,系统采用典型的 b s d b m s 三层架构作为开发模型f 3 3 1 ,本系统的三层架构主要划分为浏览器层、 7 硕士学位论文 第二章系统总体设计 w e b 服务器层和数据库层。浏览器层位于系统用户端,提供系统的显示逻辑,通 过i n t e r n e t 浏览器对系统应用服务器发出请求,同时接受系统应用服务器的信息 反馈并生成应用视图。w e b 服务器层位于系统的应用服务器段端,它获取用户浏 览器发送的h n p 请求信息流,根据请求信息流内容生成调用对应业务操作并与 数据库服务器进行数据交互,最后将处理结果信息也以h 卸流的方式返回至前 端i n t e r n e t 浏览器。数据库层位于系统的数据库管理系统服务器,它提供系统全 局数据支撑,数据库管理系统接收系统应用服务器的数据存取请求并给予响应, 请求内容包括数据查询、数据修改、数据更新、数据视图等。 一个设计优良的系统必须保证系统的后续升级和维护,基于w e b 的程序评 测系统的b s d b m s 三层架构注重于简洁化的开发模式和后期维护模式,并采用 了“瘦客户端”和“胖服务器端 的功能分布策略,系统的浏览器层仅提供系统 视图功能,系统其余事务逻辑均由w e b 服务器层和数据库层共同承担。系统的 客户端是i n t e r n e t 浏览器,显然客户端对系统的功能结构影响极小,因此,无论 系统的客户端分支有多么庞大,都不会对系统的后续升级和维护造成任何工作量 的增加,在i n t e m e t 浏览器已经成为计算机的一个标准配置的情况下,系统的后 续升级和维护将会非常的容易。由于系统服务器端承担了大部分系统负载,在这 种情况下,基于w e b 的程序评测系统对服务器端的要求较高,后端服务器不能 出现任何的差错,服务器端任何一个小瑕疵都有可能对系统全局造成恶劣影响, 因此,如何保证系统服务器端的安全稳定运行是十分关键的。 在本评测系统的b s d b m s 三层架构中,采用面向对象的基本思想和方法, 根据运行处理流程的需求对系统应用服务器又做了具体功能的划分,系统的应用 服务器包括前端动态交互网站和后端程序评测内核程序两大模块。其中动态交互 网站又可分为两个子层,即u i 层和业务逻辑层。u i 层提供用户和系统的动态交 互界面,业务逻辑层负责对系统的用户动作进行调度分配,包括普通用户功能集、 管理员功能集、评测功能集等教学辅助类功能的业务逻辑处理。程序评测内核主 要负责对用户提交上来的源代码进行完备的程序测试,包括代码分析、代码编译、 程序运行、逻辑检测,安全性检测、性能检测等。 业务逻辑层和u i 层逻辑分离后,系统的业务逻辑维护便于升级维护。考虑 到对于基于w e b 的程序评测系统来说,系统投入使用后的后期维护是必需的, 可能会经常对系统功能进行更改,例如修改系统文件组织结构、增加普通用户功 能、增加管理员功能,增加新的评测模块、增加对更多种类编程语言的支持等。 在这种情况下,对系统功能的升级维护只需要对业务逻辑层的代码进行修改即 可,不会因为系统功能的微小变更而修改整个系统的代码,非常利于系统后期维 护工作的开展。将u i 层单独划分出来有利于系统维护人员的合理分工,网页维 8 硕士学位论文第二章系统总体设计 护人员可以无需理会后端的业务逻辑,只要遵守后台的接口标准对系统对有关数 据做处理,可以方便的对前端交互界面做修改,解决了前端维护人员不熟悉后端, 后端维护人员不熟悉前端的开发难题。 w e b 服务器层中,后端评测内核程序与动态交互网站采用分离化设计,但在 不少的程序评测系统中,评测模块是内嵌在动态交互网站之中,容易造成系统 w e b 服务器负载过重,而且增加了系统的维护难度。本评测将评测内核从动态交 互网站中剥离出来,专门单独生成一个评测进程,评测进程与动态交互网站无太 多交集,逻辑上相对独立,双方只需约定通信方式来交换数据信息。分离化设计 也降低了系统评测模块的维护复杂性。首先,评测模块易于维护,任何对评测模 块的修改只需直接在评测内核内部进行即可,只要对外接口不变,与之连接的动 态交互网站和数据库都无需做出任何改动。其次,有效的降低系统模块间耦合度, 易于控制系统业务负载平衡性。当动态交互网站和评测模块在同一台服务器运行 时,由于评测步骤往往是多用户,多进程的方式进行,非常消耗服务器资源,当 同时在线用户较多时,容易照成服务器负载过重。由于评测内核采用分离化设计, 在条件运行的情况下,可根据实际情况专门设立一个评测服务器,专职负责系统 的评测工作,专职的评测服务器显然可以有效分担系统负载,可有效地提升系统 的运行效率。 2 3 系统的网络拓扑结构 图2 - 3 系统网络拓扑结构 系统的网络拓扑结构如图2 3 所示,系统用户位于系统客户端,需要一台配 置i n t e m e t 浏览器程序的计算机即可访问系统应用,系统服务器端可以根据实际 的负载情况配置服务器组织。可以将动态交互网站、数据库管理系统、评测内核 9 硕士学位论文第二章系统总体设计 都放在一台服务器上,但这样比较容易照成系统负载过重,资源不足。另一方面, 也可以将动态交互网站单独配置一台服务器上,数据库管理系统和评测内核也分 别配置在数据库服务器和程序评测服务器上,这样的配置使得三者之间互不影 响,提高了系统的稳定性和安全性。系统维护管理员位于服务器端,直接监控整 个系统的运行状态,及时处理系统有可能出现的各种突发事件,保证系统的正常 有序的运行。 2 4 系统运行环境 系统的运行环境包含系统客户端的运行环境和系统服务器端的架设环境。系 统采用典型b s d b m s 三层架构开发,以下分别对服务器端和客户端两个部分阐 述系统的运行环境。 2 4 1 服务器端的架设环境 基于w e b 的程序评测系统的动态交互网站采用j a v aw e b 开发技术的解决方 案,j a v aw e b 解决方案在用户浏览器端可以采用传统的h t m l 页面或j a v a a p p l e t , j a v a a p p l e t 是用j a v a 语言编写的j a v a 网页应用程序,可以与w e b 页面嵌套叠加 使用,浏览器端需提供j r e 支持。j a v aw e b 技术的服务器端的应用较为丰富,常 见的构建方案有j s p s e r v l e t 以及第三方框架等【3 4 】。j s p 是一种j a v a 服务器页面 技术,与a s p 技术相仿,j s p 页面由h t m l 代码和嵌入在其中的j a v a 代码段和 标记构成,j s p 是跨平台的动态页面,能在w i n d o w s 平台下执行也能在l i n u x 等 其他平台执行,具有平台无关,面向网络的特点。s e r v l e t 也则是一种j a v aw e b 技术的服务器端程序,同时也是j s p 的技术支撑,j s p 页面在j a v aw e b 容器加载 后自动转化为s e r v l e t ,转化过程对用户透明。j s p 和s e r v l e t 在服务器端执行后 通常返回给客户端的就是一个纯h t m l 标记页面,因此客户端只要配置浏览器即 可浏览。 j s p s e r v l e t 与j a v a 桌面程序从命令行启动的运行方式不同,j s p 和s e r v l e t 都需要由支持j a v a w e b 的w e b 容器加载运行。基于w e b 的程序评测系统采用的 w e b 容器为t o m c a t ,由于s u n 的参与主导,t o m c a t 总能很好的支持j s p 和s e r v l e t , 其特点是运行时占用服务器的资源非常小,扩展性优秀,运行稳定,技术先进同 时也支持邮件服务负载平衡等功能。由于j a v a 的跨平台特性,基于j a v a 的t o m c a t 也具有跨平台特性,因此基于w e b 的程序评测系统可以架设在各种主流平台之 上。 基于w e b 的程序评测系统的评测内核的服务器平台需提供m i c r o s o f t 1 0 硕士学位论文第二章系统总体设计 w i n d o w s3 2 位平台的应用程序编程接口,它也是w i n d o w s 平台的一个重要构成 部分,提供给应用程序一个资源接口,使其能调用w i n d o w s 平台的各种服务和 功能【3 甜。由于系统的评测内核程序是系统的核心应用部分,负载也相对较重,对 服务器的稳定性要求较高,更推荐使用w i n d o w ss e r v e r2 0 0 3 或者w i n d o w ss e r v e r 2 0 0 8 等w i n d o w s 平台的服务器版本。 2 4 2 客户端的运行环境 基于系统采用b s 三层架构的特点,系统对于客户端环境的要求几乎没有任 何限制,客户端可以是任何平台,无论是m i c r o s o f tw i n d o w s 平台、a p p l em a co s 甚至是s y m b i a n 或a n d r o i d 等手机平台。浏览器是目前最常使用的系统程序之一, 它主要通过h t t p 协议与服务器端进行交互并获取信息。目前个人计算机常见的 浏览器包括微软的i n t e m e te x p l o r e r 、m o z i l l a 的f i r e f o x 以及g o o g l e 的c h r o m e 储 叶o 2 5 本章小结 本章主要对系统的设计在宏观架构上做了详细分析。首先根据教学应用特点 分析了基于w e b 的程序评测系统的功能需求,列举了具体的系统用户用例,然 后介绍了系统的总体架构设计和网络拓扑结构设计,并对设计的思想进行了简略 的分析,最后介绍了系统的具体运行环境和架设环境。 硕士学位论文 第三章系统主要模块的设计与实现 第三章系统主要模块的设计与实现 基于w e b 的程序评测系统基于典型b s 三层架构设计,支持多种程序设计 语言,实现用户端与系统编译器无缝结合,提供程序语言设计相关学科的教学辅 助功能。本章将对系统的主要模块的设计思想进行详细介绍。 3 1 系统w r e b 端设计与实现 , 基于w e b 的程序评测系统的用户视图作为客户端显示逻辑,面向用户提供 系统功能应用的外部接口,是整个系统的基础支撑。系统w e b 层的动态交互网 站模块实现了系统用户视图功能,负责系统业务逻辑信息的交互,为用户提供交 互界面和功能应用接口,用户通过动态交互网站可应用系统提供的所有功能服 务。动态交互网站模块布局如图3 1 所示。 图3 - 1 动态交互网站模块布局 系统w e b 端按功能性划分,主要包括用户模块、评测信息交互模块、远程 后台管理模块。 1 2 硕士学位论文第三章系统主要模块的设计与实现 3 1 1 用户模块 用户模块是系统动态交互网站主要模块,是用户使用系统其他服务的基础, 也是系统安全性和用户权限分级化的重要保障。用户模块面向用户主要提供系统 的用户注册服务、用户登陆服务、用户信息维护处理服务。 1 系统用户的分级权限 系统用户权限又可分为两种权限级别,一是普通用户级别( 学生) ,二是管 理员用户级别( 教师) 。普通用户权限可通过系统提供的注册用户得到,具备系 统功能的使用权限,例如维护个人信息,在线评测练习,参加考试或竞赛等。系 统初始化状态会预设一个管理员用户账号,该账号拥有系统的管理权限,负责系 统的用户信息维护、题库信息的维护、项目信息管理等功能。管理员用户权限的 获取必须先进行权限申请,申请后需经系统已有管理员批准,系统的后台管理模 块提供管理员权限申请的审核功能。 2 用户注册 普通用户可通过系统用户注册服务进一步的获得系统的使用权限,在系统的 注册过程中,用户需要录入用户名、密码、电子邮件、学校、地址以及其他的必 需信息,其中密码信息需重复输入第二次进行信息确认,注册信息提交采用验证 码机制,限制机器频
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机一级WPS市场分析工具试题及答案
- Msoffice效率提升策略试题及答案
- 戏剧与表演艺术的试题及答案
- 统计税法变更对企业影响试题及答案
- 2025年税法考试复习试题及答案
- 叙述者与故事的角色试题及答案
- 羊饲料配方与管理对养殖效益的影响
- 康复医疗服务体系创新商业模式与运营模式研究报告
- 2025年K12辅导行业双减政策实施后的行业监管与合规经营研究报告
- 经济发展模式的转变试题及答案
- 部编版三年级语文下册口语交际:劝告 课件
- 《药物分析与检验技术》课件-异烟肼中游离肼的检查方法
- 手术室的健康教育
- 海水的淡化技术及应用
- 食堂餐饮服务方案
- 中职学校设计说明
- 医保政策下物价培训课件
- 加油站安全风险分级管控和隐患排查治理双重预防机制运行手册
- 攻博计划书模版
- 2024年《大学语文》期末考试复习题库(含答案)
- 早产的护理查房课件
评论
0/150
提交评论