APP下载

基于Spring的网络考试系统的服务设计*

2013-09-11丁振凡

关键词:视图试卷试题

丁振凡

(华东交通大学信息工程学院,江西 南昌 330013)

基于Spring的网络考试系统的服务设计*

丁振凡

(华东交通大学信息工程学院,江西 南昌 330013)

在分析网络考试流程的基础上,对学生操作部分的各环节进行服务建模,对考试控制、组卷、试卷显示、阅卷、考试登记、考试查阅分析等进行服务设计.系统实现采用AJAX结合Spring技术,给出了应用的服务调用与应用整合思路.讨论了IOC容器Bean的部署,以及应用服务间利用Json进行试卷包装传递的方法.

网络考试系统;服务建模;AJAX;Spring;Java Bean;Json

面向服务以其出色的互操作、松耦合等特性成为网络应用的热点.Spring作为一个优秀的轻量级软件开发框架,在面向服务的设计与集成上提供了良好的支持,Spring MVC支持REST风格的服务设计,Spring WebFlow支持服务流的组合,Spring Integration支持基于消息的服务应用集成[1].网络考试是网络教学平台中较为复杂的一个部分,完整系统包括教师操作和学生操作2部分,教师操作部分包括考试设置(考试时间、组卷参数、考试进入控制等)、考试用户监控、考试分析(学生成绩分析、解答分析)等.学生操作部分涉及考试过程交互各环节,通常是考试系统的设计难点,笔者拟就考试系统中学生操作部分的面向服务设计进行探讨.

1 学生考试流程

学生考试过程涉及众多环节,用UML活动图表示如图1所示.首先是检查是否允许学生进入考试;其次是从试题库抽取试题组卷;第三是试卷按何种方式显示,包括如何获取学生解答;第四是学生交卷后的考试评分处理;最后考试结束后的信息登记及反馈.

文中介绍的网络考试主要是面向程序设计语言类课程,是从题库抽题组卷.试题库有单选、多选、是非、单项填空、多项填空、编程、改错共7大类试题.其中,多项填空可安排写运行结果和程序完型填空.

试题库的试题按知识点进行组织,每类试题有独立的数据库表格,主要字段有题号、内容、答案、知识点、难度等.

图1 考试过程的UML活动图

2 网络考试系统技术实现框架

系统采用面向服务的应用开发模式,整体框架采用AJAX和Spring技术实现,如图2所示.AJAX主要实现客户方的交互,Spring实现服务方的功能.Spring的服务设计采用REST风格,服务业务逻辑部署为Bean形式,实现对象最大程度的共享,提高整个应用的效率.在视图层采用JSP模板,利用JSTL模板语言实现模型数据的显示处理.系统安全访问控制采用Spring Security实现[2].系统角色分管理员、教师、学生和匿名帐户.系统采用XML配置安全策略,通过基于角色和URL模板匹配的访问控制策略实现对服务的访问控制.一般情况下,Spring的REST服务返回结果用视图来体现,通过控制器、模型、视图的配合来展示服务功能.但部分服务也采用返回结果为消息的服务编写,在客户方,采用AJAX技术调用服务,并分析服务返回的消息,在网页中用DHTML技术显示结果[3].

服务设计应采用规范化的服务契约,具有无状态、松耦合等特点,同时又体现抽象性、重用性、自治性等原则.“无状态”意味着服务对象所依赖的变化信息应通过服务的方法参数提供,而不能作为服务对象的属性.在Spring容器中每个服务均表现为Bean的形式,应用访问效率高.

3 学生考试相关的服务设计

面向服务设计的一个关键是服务特征的提取.服务特征有流程特征、功能特征、信息特征、组织特征和资源特征[4].服务特征间的依赖关系可分为静态依赖和动态依赖.通过分析学生考试所涉及的功能和流程,将与考试相关的服务定义如表1所示.各服务之间的调用关系见图3,服务处理结果通常有多分枝,例如考试进入检查服务,在发现学生不允许进入时将显示相应信息,允许进入时才进入组卷环节.

表1 学生操作部分与考试相关的服务

图3 各服务在学生考试过程中的调用流程

值得一提的是,在很多服务方法中均需要试卷作为参数.实现试卷在应用各功能之间传递有多种方法,例如采用session对象、采用Cookie变量,本系统采用URL参数传递,其好处是不用消耗客户方和服务方的资源.但采用URL传递试卷对象需要将对象转换为字符串传递,否则,对象不能直接作为URL参数,本系统采用Google的Gson工具提供的方法实现对象到串的变换与反变换[5].

各类服务均涉及对数据库的操作访问.本系统通过Spring JdbcTemplate提供的方法访问数据库[6].由于系统连接的数据库只有1个数据库,因此将与数据源连接的jdbcTemplate定义为一个Bean,其他Bean要访问数据库只要通过属性依赖建立与jdbcTemplate的关联即可.以下为数据源“dataSource”的JdbcTemplate对应Bean配置,数据源的配置取决于具体的数据库:

3.1 考试控制服务

该服务的功能主要是检查学生是否有权进入考试,进入限制有3种:(1)禁止进入;(2)每生1次,用于正规考试;(3)可多次进入,用于训练式测试.

考试进入控制服务逻辑的主要方法有:

3.2 考试组卷服务

组卷服务是根据组卷方式和组卷参数按组卷算法产生试卷.系统提供了2种组卷方式:一种是考试时随机组卷,每个考生试卷不同,可减少作弊;另一种是随机抽取已组卷,学生考试时从预先组好的多份试卷中随机选取1份.组卷参数包括考试范围、各类试题数量要求、试卷难度等.组卷结果用试卷对象表示,包括各类试题中被抽取到的试题编号构成的数组.

3.2.1 组卷服务的方法设计 组卷服务包括组卷方式、组卷参数属性,在服务初始化时将从数据查询到组卷方式和组卷参数,实现属性的设置.当教师更改组卷参数时,将对该服务的属性进行修改.组卷服务的具体方法如下:

3.2.2 快速组卷算法 组卷算法是组卷服务要考虑的关键,好的选题算法既要保证选题的合理性,又要考虑速度要求.题库中试题的知识点标识采用“章-节-问题”的形式,但选题范围是按章为单位,所以查询设计用SQL的like关键字作模糊匹配.本系统采用的算法是先保证试题的分布均匀性,将60%的试题按知识点平均分配并依照难度要求选题;然后,剩余40%的试题在知识点范围随机选题,使用SQL的in关键词选取.另外,算法能自动适应课程的实际试题数量,数量不足时按实际数量选取,选取试题多余按随机删除处理.实际证明,该算法组份试卷的时间不超过2 s.

3.3 试卷显示服务

试卷显示服务根据显示风格要求生成不同的答卷界面,使用不同的视图模板实现试卷的显示界面.试卷显示服务由Spring的控制器、模型、服务业务逻辑、视图协作完成.控制器对应用户的请求逻辑,需要传递试卷信息;模型存放试卷的具体内容,将根据试题编号访问数据库得到相关信息;视图文件给出试卷的显示模板,它将在视图解析器的控制下将模型数据填入模板对应位置.

系统提供有2种试卷显示界面:一种是答题卡嵌入在试题内容中,在一个视图中包括试卷内容和答题控件;另一种是答题卡与试卷分开,分2帧显示(如图4所示).考试界面还有1帧控制试卷的时间显示和限时处理.

图4 试卷内容和答题卡分2帧显示的界面

3.4 阅卷服务

答卷时点击交卷按钮或因限时时间用完导致自动交卷,将提交给阅卷服务处理.

3.4.1 阅卷服务的评分处理 试题判分处理分为4类:选择类试题(单选、多选、是非)采用精确比对方法;单填空只含1空,采用精确比对方法;其他填空类试题(写运行结果、完型填空、改错)都归咎为多空问题,采用统一的判分方式,用户解答按行输入,每个空占1行,评分将按行进行比对给分;编程类采用启发引导学生编写程序的方式,在启发过程中对学生进行评分[7].阅卷服务提供了如下方法:

其中,marking方法中根据试题类别执行相应类别的评分处理.

3.4.2 阅卷控制器的方法设计 阅卷控制器是与用户的接口,控制器通过REST风格的服务处理来自用户的请求.用户通过页面表单提交解答,并通过URL参数传递试卷.为了避免过多的数据传递处理,在阅卷控制器的处理方法中还要调用考试登记服务对学生试卷解答、分数等进行登记.阅卷控制器的判分及试卷解答登记处理的process方法如下:

3.5 考试登记服务

考试登记服务在前面的阅卷控制器中阅卷完成后调用,由于登记过程涉及多表的处理,因此系统利用Spring的事务处理机制保证数据写入的完整性[8].考试登记服务的主要方法如下,排在后面的3个方法由教师操作部分调用,用于实现成绩的历史登记处理:

3.6 考试查阅服务

考试查阅服务是考试结束后供学生和教师进行考试分析调用.对于该查询服务,采用Spring MVC视图显示方式,在控制器的Mapping方法中提供相关参数信息,将查询结果直接映射到视图中显示.具体方法有查询某班学生的考试分数、查阅某学生的答卷.其中,对于班级学生考试分数将以表格形式显示,并通过VML视图显示饼图给出优秀、良好、中、及格、不及格的比例及人数[9].

4 结语

采用Spring技术实现网络考试中各环节的服务建模设计.整个网络考试的服务设计还有教师操作部分,教师控制网络考试的各类配置、过程监控以及考试结果的检查分析,其设计思想与文中一致.另外,考试过程中还涉及其他处理,在其他文献中已有介绍,如考试的限时控制[10]、考试交卷后防回退处理[11],从而保证学生在有限时间内公平完成考试.

[1] MARK FISHER,JONAS PARTNER,MARIUS BOGOEVICI,et al.Spring Integration in Action[M].U.S.A:Manning Publishing Company,2012.

[2] 丁振凡.基于Spring Security的Web资源访问控制[J].宜春学院学报,2012,34(8):71-74.

[3] 丁振凡.基于AJAX结合Spring MVC的信息访问服务模式研究[J].计算机时代,2012(6):25-29.

[4] 吴映波,王 旭,林 云.面向服务的领域分析与建模框架[J].计算机工程与设计,2011,32(8):2 704-2 707.

[5] 丁振凡.Spring REST风格Web服务的Json消息封装及解析研究[J].智能计算机与应用,2012,2(2):9-11.

[6] 丁振凡,李馨梅.基于JdbcTemplate的数据库访问处理[J].智能计算机与应用,2012,2(3):29-32.

[7] 丁振凡,张晓瑞.基于模板匹配的启发式编程训练软件的Web实现[J].华东交通大学学报,2011,28(2):60-65.

[8] 丁振凡.Spring3.x的事务处理机制的研究比较[J].微型机与应用,2012,31(10):4-6.

[9] 李明翠.SVG,VML,FLASH三种实现统计饼图的方式比较[J].电脑知识与技术:学术交流,2007,18:1 721-1 722.

[10] 丁振凡.基于Web的考试系统的限时处理研究[J].福建电脑,2004(7):18-37.

[11] 丁振凡.Web编程实践教程[M].北京:清华大学出版社,2011:261-262.

(责任编辑 向阳洁)

Service Design of the Network Examination System Based on Spring

DING Zhen-fan
(School of Information Engineering,East China Jiaotong University,Nanchang 330013,China)

In the analysis of network examination process,this paper undertakes service modeling for each link of students operating part and designs service for the examination control,generating examination paper,paper display,paper marking,examination paper logging and papers analysis.The system,implemented by AJAX combined with Spring technology,gives the ideas for application service invocations and application integration.The Bean deployment in IOC container,as well as the Json packaging method for paper transmission between application services are discussed.

network examination system;service modeling;AJAX;Spring;Java Bean;Json

TP391

A

10.3969/j.issn.1007-2985.2013.01.006

1007-2985(2013)01-0021-05

2012-11-19

江西省教改项目(JXJG-12-5-24)

丁振凡(1965-),男,江西丰城人,华东交通大学信息工程学院教授,硕士生导师,主要从事语义Web、分布式计算、计算机辅助教学研究.

猜你喜欢

视图试卷试题
2021年高考数学模拟试题(四)
2019年高考数学模拟试题(五)
《陈涉世家》初三复习试题
2019届高考数学模拟试题(二)
5.3 视图与投影
视图
Module5 A Trip Along the Three Gorges
Module5 Great People and Great Inventions of Ancient China
Module 4 Sandstorms in Asia
Module 1 Europe