1、在线考试系统的设计与实现摘 要在线考试系统旨在实现考试的无纸化管理,基于计算机和网络技术进行在线考试系统的使用,既方便校方对考试的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。基于远程教育的推广和在线考试需求的增加,本文设计并实现了一套在线考试系统。本系统实现了系统管理、考生管理、在线考试、在线制作试卷、控制学生考试、试卷审批等基本功能。同时,为确保系统安全运行和考试信息的机密性、完整性,本系统采用了 SSL 协议来加密传输的考试数据,并实现对服务器的认证。系统采用 B/S 开发模式,以 JAVA 作为开发平台,结合JSP、JavaScript、Html 等语言,以 Tomcat
2、 为服务器和 SQL Server 2000 为后台数据库。整个系统层次结构简单,操作容易,并具备一定的安全性。考生借助此系统,可以随时随地的进行课程结业考试,同样,老师使用该系统能更高效、便捷的组织在线考试。关键词:在线考试系统;B/S 模式;SSLDesign and Implementation of Online Examination System AbstractThe online examination system aims at achieving the paperless examination management. The online examination sy
3、stem, which bases on computer and network technology, is convenience for the exam management, but also for the students. Simultaneously, such a system is absolutely suitable for the students in distance education who are dispersive and difficult to concentrate on the course. As the promotion of dist
4、ance education and the increasing demand of the online examination, this paper presents the design and implementation of the on-line examination system. The system implements the following functions: system management, examinee management, online examinations, online production of the papers, contro
5、l examinations and paper processing. Meanwhile, in order to ensure the system operating safe and the examination information confidential as well as integral, the system uses the SSL protocol to encrypt examination data and achieve the server authentication. The system bases on B/S development model
6、, using Java as a development platform, which utilizes JSP, JavaScript, and Html language as well. The web server is Tomcat. Database server is SQL Server 2000. The system structure is simple, easy and safe. Examinee can exam at any time by using the system. Simultaneously teachers can use the syste
7、m to organize online examination more efficiently and conveniently. Key words: Online examination system; B/S pattern; SSL目 录论文总页数: 20 页1 引言 .11.1 课题背景 .11.2 系统开发的意义 .12 需求分析 .12.1 问题分析 .12.2 功能需求分析 .12.3 开发环境的选择 .23 系统安全基础 .34 系统总体设计 .44.1 设计思想 .44.2 系统模块结构图 .44.3 系统流程图 .44.4 数据库的设计 .55 系统详细设计与实现 .
8、65.1 SSL 协议的配置与使用 .65.2 功能模块设计 .75.2.1 系统管理模块 .85.2.2 考生管理模块 .105.2.3 成绩查询模块 .115.2.4 控制考试模块 .125.2.5 制作试卷模块 .145.2.6 试卷中心模块 .155.2.7 考生考试模块 .166 系统测试 .17结 论 .18参考文献 .18致 谢 .19声 明 .20第 1 页 共 20 页1 引言1.1 课题背景近年来,我国的函授教育、网络远程教育、自学教育,以及国内国外的各类认证考试教育,如微软的 MCSE、Cisco 的 CCNA 等,迅速发展。在这个日新月异的时代,不学习就意味着落后,所以
9、接受教育不再局限于校园内,职场人员通过各种不同的考试来提升自我。随着 Internet 的发展,计算机的全面普及,学校的教学、教务管理、行政管理也一改传统的模式,借助现代计算机技术及因特网技术,努力朝着信息化建设的方向发展。教育的改革,给人们带来了更多的学习机会。随着学习形式灵活、学生分布广的成人教育及各种的认证培训考试教育的迅猛发展,考试的形式也变得更加多样化。比如,在线考试就已经成为广泛应用的一种考试形式,相应的,对在线考试系统的需求也越来越大。1.2系统开发的意义系统所设计的在线考试系统,是响应教育信息化的体制改革,使 Internet 技术与计算机技术在教育教学领域的应用得以拓展。在线
10、考试系统的开发与设计适合现代教育教学,也给传统的考试提供了一个很好的解决方案,今后将成为教育教学管理的辅助方式之一,让传统教育中的考试朝网络化的方向发展。2 需求分析2.1 问题分析在传统的学校教学中,进行一场考试,要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。当前盛行的在线考试系统,正是信息化建设的产物,它是传统考场的延伸。它可以利用互联网络和局域网,随时随地的对学生进行考试
11、,评分,加上数据库技术的利用,使得管理过程简化,能够轻松实现查询,控制等功能。因此在线考试是信息化教学的不可缺少的辅助手段。显然,无论采取何种方式,首要考虑的是安全性能。为此,本系统在 SSL 协议下完成了在线考试。数据、信息、资料等得以安全稳定的传输。2.2 功能需求分析1用户类别:登录系统的身份定为四种,一是超级管理员,二是学校领导,三是一般管理员( 普通老师),四是学生,只有被授权的用户才可以使用本系统第 2 页 共 20 页的资源。2权限管理:系统需要经过有效的身份验证可以登录。用户的身份不同,使用的系统资源也不同。考生只可以参加在线考试;一般管理员(普通教师)可以在线制作试卷,进行考
12、生管理,添加学生信息、控制考试、成绩查询等。学校领导可添加院系、教师、部门、科目信息及查询修改管理员信息及审批试卷、查询考生信息;超级管理员拥有整个系统的全部使用权限,但查询修改管理员信息的权限例外。3在线考试功能:考生输入准号证号登陆系统后,选择对应的试卷可进行考试。答题完毕后,可自动交卷,系统将自动评分,考生可同时获得考试成绩。4在线制作试卷:一般管理员(教师) 、学校领导和超级管理员可在线制作试卷,可设定试题的类型、难易程度、分值。5控制考试功能:可设定每次的考试时间,可禁止或允许考生参加考试,同时可查看考生的考试状态。6考生管理功能:可注册新增学生用户,同时查看个别考生及班级考生的信息
13、,也可设定考生的考试状态:允许或禁止考试。7考生成绩查询功能:提供考生各科目成绩的详细查询。8试卷审批功能:超级管理员及学校领导有此权限。教师制作试卷完毕,只有经过超级管理员或学校领导审批后才能发布,发布后学生才能开考。9系统管理功能:一般管理员只可更改登陆密码。超级管理员及学校领导除更改密码外,同时具有高级管理功能,进行添加和删除管理员的帐号。10. 系统安全性能:SSL 协议对数据的加密、对服务器的认证等能够保证数据在各个流程中流动的安全性。2.3 开发环境的选择整个系统开发完全采用 Browser/Server 模式,开发平台为 Java 平台,以Tomcat 为 JSP 引擎和 Web
14、 服务器,后台数据库使用 SQL Server 2000。在开发模式上选择 Browser/Server 模式,是因为 B/S 模式有以下优点:1开发成本及维护成本降低。由于 B/S 架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过 WWW 浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。2良好的安全性能,防火墙加技术加上 SSL 协议可以保证后台数据库的安全性。所有客户端请求都是通过 DBMS 来访问数据库,从而大大减少了数据第 3 页 共
15、 20 页直接暴露的风险。因此系统的架构就采用了 B/S 设计模式。3 系统安全基础在系统安全性能方面,以 SSL 协议作为安全保障,SSL 协议功能概述如下:SSL 协议位于 TCP/IP 协议模型的网络层和应用层之间,使用 TCP 来提供一种可靠的端到端的安全服务,它是客户/服务器应用之间的通信不被攻击窃听,并且始终对服务器进行认证,还可以选择对客户进行认证。SSL 协议在应用层通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后,应用层协议所传送的数据都被加密。SSL 实际上是共同工作的两层协议组成,如图1 所示。从体系结构图可以看出 SSL 安全协议实际是 SSL 握
16、手协议、SSL 修改密文协议、SSL 警告协议和 SSL 记录协议组成的一个协议族。图 1 SSL 体系结构SSL 记录协议为 SSL 连接提供了两种服务:一是机密性,二是消息完整性。为了实现这两种服务, SSL 记录协议接收传输的应用报文,将数据分片成可管理的块,进行数据压缩(可选),应用 MAC,接着利用 IDEA、DES、3DES 或其他加密算法进行数据加密,最后增加由内容类型、主要版本、次要版本和压缩长度组成的首部。被接收的数据刚好与接收数据工作过程相反,依次被解密、验证、解压缩和重新装配,然后交给更高级用户。SSL 修改密文协议是使用 SSL 记录协议服务的 SSL 高层协议的 3
17、个特定协议之一,也是其中最简单的一个。协议由单个消息组成,该消息只包含一个值为1 的单个字节。该消息的唯一作用就是使未决状态拷贝为当前状态,更新用于当前连接的密码组。SSL 告警协议是用来为对等实体传递 SSL 的相关警告。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。警示消息有两种:一种是 Fatal 错误,如传递数据过程中,发现错误的 MAC,双方就需要立即中断会话,同时消除自己缓冲区相应的会话记录;第二种是 Warning 消息 ,通信双方通SSL 握手协议 SSL 改变密码协议SSL 警告协议 HTTP,FTP, ,SSL 记录协议TCPIP第 4 页 共 20
18、 页常都只是记录日志,而对通信过程不造成任何影响。SSL 握手协议可以使得服务器和客户能够相互鉴别对方,协商具体的加密算法和 MAC 算法以及保密密钥,用来保护在 SSL 记录中发送的数据。SSL 握手协议允许通信实体在交换应用数据之前协商密钥的算法、加密密钥和对客户端进行认证(可选)的协议,为下一步记录协议要使用的密钥信息进行协商,使客户端和服务器建立并保持安全通信的状态信息。SSL 握手协议是在任何应用程序数据传输之前使用的。SSL 握手协议包含四个阶段:第一个阶段建立安全能力;第二个阶段服务器鉴别和密钥交换;第三个阶段客户鉴别和密钥交换;第四个阶段完成握手协议。4 系统总体设计4.1 设
19、计思想系统功能设计本着从用户角度出发的原则,要求实用,且符合用户提出的合理需求。系统设计在不违反系统整体性的基础上,可根据用户的需求进行二次开发,不断完善系统功能,便于系统的不断升级。4.2 系统模块结构图系统的模块结构如图所示,根据权限不同对用户所操作的模块也有相应的变化。各个模块在数据库的支持下具有独立性、完整性。图 2 系统模块结构图4.3 系统流程图用户对系统进行操作的流程也用图作了形象的解释,系统对操作用户反馈其对应的信息。老师能够很方面的举行考试,学生对考试过程透明,但系统能对学生的考试自动存档、打印出考试成绩。并对学生信息加以记录以方便查询。其流程图如下所示:考试系统系统管理查询
20、系统控制考试考生管理制作试卷试卷中心用户注销退出系统第 5 页 共 20 页否 图 3 系统流程图4.4 数据库的设计在数据库设计时,考虑到系统不同用户,不同权限,以及系统所使用范围和试卷的特有属性,分别建立了相应的表。各个表的主键在表中也已相应标明。以下就是系统中几个关键的表。表 1 考生信息表(student)名称 字段名称 数据类型 主键 非空准考证号 Snum varchar(30) yes yes密码 Spswd varchar(30) no no姓名 Sname varchar(20) no no性别 Ssex int no no学号 Sno int no no年级 Gragde
21、int no no班级 Sclass int no no部门号(系别) Dep int no no考试状态 State int no no考试权限 Power int no no表 2 系别信息表(department)名称 字段名称 数据类型 主键 非空部门号 Dep int yes yes部门名称 Depname varchar(50) no yes表 3 试卷属性表(pap)名称 字段名称 数据类型 主键 非空科目号 Sbnum int yes yes试卷号 Pnum int yes yes成绩管理模块是否为学生考试过程控制模块是题库制作模块成绩打印 统计查询开始用户登录结束第 6 页
22、共 20 页试卷标题 Phead varchar(100) no yes部门号 Dep int no no试卷属性 Wproper int no no教师证号 Wnum varchar(4) no no试卷状态 Pstate int no no表 4 问题属性表(question)名称 字段名称 数据类型 主键 非空科目号 Sbnum int yes yes试卷号 Pnum int yes yes问题号 Qnum int no yes问题 Question varchar(400) no no题型 Type int no No难度 Diff int no No分数 Mark int no No
23、状态 State int no No被提取次数 Num int no No5 系统详细设计与实现5.1 SSL 协议的配置与使用 由于系统采用 Tomcat 作为服务器,而 Tomcat 服务器能很好的支持 SSL 协议。因此,在如此环境下配置 SSL 协议的过程相对要容易得多。首先,系统要得到一个生成证书:在命令行输入 %Java_home%binkeytool -genkey -alias tomcat -keyalg RSA在 此 命 令 中 , keytool 是 JDK 自 带 的 产 生 证 书 的 工 具 。 把 RSA 运 算 法 则作 为 主 要 安 全 运 算 法 则 ,
24、这 保 证 了 与 其 它 服 务 器 和 组 件 的 兼 容 性 。 系 统 自动 产 生 .keystore 文 件 。 其 默 认 密 码 为 changeit.在 生 成 文 件 过 程 中 , 系 统要 求 出 示 密 钥 密 码 , 这 必 须 和 .keystore 文 件 密 码 一 致 。操 作 界 面 如 图 :第 7 页 共 20 页图 4 配 置 证 书 图其 次 , 在 Tomcat 配 置 文 件 中 有 个 server.xml 文 件 , 找 到 如 下 程 序 :在 这 段 程 序 中 将 注 释 符 消 去 , 并 加 上 keystoreFile 和 ke
25、ystorePass两 个 属 性 。 keystoreFile=存 放 证 书 的 路 径 keystorePass=密 码 。这 样 , SSL 协 议 配 置 完 成 , 系 统 可 以 通 过 SSL 访 问 Tomcat 支 持 的 任 何web 应 用 程 序 。 只 不 过 指 令 需 要 像 这 样 : https:/localhost:8443通 过 指 令 可 以 在 页 面 上 看 到 如 下 图 所 示 的 内 容 :图 5 Tomcat SSL 配置成功出现上图 6,就说明在 TOMCAT 服务器配置成功了 SSL。5.2 功能模块设计整个模块分为系统管理、考生管理、控制考试、查询系统、制作试卷、试卷中心、考生考试七大模块。