基于.NET的网络考试系统的设计与实现
(3) 数据库的使用安全性:在用户通过了SQL Server服务器的安全性检验后,将直接面对不同的数据库入口,在建立用户的登录账号时,SQL Server会提示用户选择默认的数据库。以后用户每次连接上服务器后,都会自动转到默认的数据库上。默认的情况下,数据库的拥有者可以访问该数据库的对象,也可分配访问权给别的用户,以便让别的用户也拥有针对该数据库的访问权利。
(4) 数据库对象的使用安全性:在创建数据库对象时,SQL Server自动把该数据库对象的拥有权赋予该对象的创建者,对象的拥有者可以实现对该对象的完全控制。默认的情况下,只有数据库的拥有者可以在该数据库下进行操作。当一个非数据库拥有者想要访问数据库里的对象时,必须事先由数据库拥有者赋予用户对指定对象执行特定操作的权限。
2.4.3 SQL Server 2000中权限管理
权限管理是数据库系统的一个重要组成部分。安全性就是确保只有授权的用户才能使用数据库中的数据和执行相应的操作。安全性管理[29]包括两方面的内容:
(1) 用户能否登录系统和如何登录的管理。
(2) 用户能否使用数据库中的对象和执行相应的操作的管理。
在SQL Server 2000中提供了一整套完整的安全机制,这些机制主要包括有:选择认证模式和认证过程、登录账号管理、数据库用户账号管理、角色管理以及用户权限管理等。
SQL Server 中的安全认证模式有两种:
Window:身份验证认证方式:当用户通过Windows NT或Windows 2000用户账户进行连接时,SQL Server通过回叫Windows NT或Windows 2000以获得信息,重新验证账户名和密码。
SQL Server身份验证方式:当用户用指定的登录名称和密码从非信任的连接进行连接时,SQL Server通过检查是否已设置SQL Server登录账户,以及指定的密码是否与以前记录的密码匹配,自己进行身份验证。
登录账号是基于服务器使用的用户名,既可以创建基于Windows组或用户账号的登录账号,也可以创建SQL Server自己的登录账号。登录账号是系统级登录信息,存储在Master数据库中。
在实现数据库的安全登录后,检验用户权限的下一步就是数据库的访问权。数据库的访问权是通过映射数据库的用户和登录账户之间的关系来实现的。数据库用户是指出
- 18 -
大连理工大学专业学位硕士学位论文
哪一个人可以访问哪一个数据库。当登录账户通过了NT或SQL Server认证后,必须设置数据库用户才可以数据库及其对象进行操作。
角色是SQL Server2000中引进的和来集中管理数据库或服务器权限的概念。数据库管理员将操作数据库的权限赋予角色,然后将角色再赋予数据库用户或登录账户,从而使数据库用户或登录账户拥有了相应的权限。
权限是用来控制用户如何访问数据库对象。一个以直接分配到权限,也可以作为一个角色中的成员来间接得到权限。SQL Server 2000中的权限分为对象权限、语句权限和隐含权限3种。其中对象权限是指用户对数据库中的对象的操作权限。如对表或视图的查找、增加、修改、删除的权限,以及对存储过程的执行权限等。
本系统采用SQL Server 2000数据库系统来进行题库设计,虽然.NET支持Microsoft Access、FoxPro等数据库作为有效的数据源,但是此类数据库引擎只适合于开发小型的应用程序系统,无法很好地满足高需求、高质量的Web应用程序的需要。考虑到性能和可靠性方面的因素,一般应用程序都使用带有“客户机/服务器数据库引擎”的关系数据库管理系统,如Microsoft SQL Server、Oracle等。SQL Serve 2000能提供超大型系统所需的数据库服务,可在多个用户之间有效地分配可用资源。它不仅提供一个巨大的数据容器,更是一个非常强大的数据处理工具,使网络考试系统在开发时,能更好的与.NET技术合作。因此是本考试系统数据库服务器的理想选择。
- 19 -
基于.NET的网络考试系统的设计与实现
3 系统总体分析与设计
3.1 系统分析
本系统是为了满足全国“化工检修钳工”技能竞赛暨首届全国化工装备技术专业技能大赛在线实时考试的需求而设计开发的,是一个开放式、实用性、可实现大容量用户并发的在线考试系统,采用流行的B/S三层体系结构,运行于Windows NT Server或 Windows 2000 Server之上,可在Intranet/Internet进行实时的各种考试。 3.1.1 用户需求
现有的各种考试系统的需求多种多样,本系统设计的在线考试系统,是为了满足实时在线考试,尤其是地区性或学校性大型在线考试的需要,因此,应实现的主要功能如下:
(1) 用户管理和权限控制 整个系统包括系统管理员、领导、教师和学生四种权限。系统管理员拥有所有权限,主要是对学生、题库和试卷的管理;领导拥有试题审核、试卷审核和考试计划的管理;教师可以查看该试卷的考试和作业的成绩并进行各种统计分析;学生只可以进行考试/练习和查询成绩。
(2) 具备一般的计算机考试系统通常具备的功能,包括:题库建设和管理;试卷自动出卷管理;用户在线考试及记录;系统自动阅卷;系统数据库管理维护;系统管理及维护。
(3) 系统严格控制整个考试过程,实行时间的监控与权限的控制,考生需要在限定的考试时间内交卷。
(4) 由于本系统既有客观题,又有主观题;客观题部分由计算机自动阅卷,主观题部分由老师给分,然后显示出考生分数。
(5) 实现用户给定约束条件下组卷的全部智能化。 (6) 能满足多用户并发访问的分布式结构设计。
(7) 成为学生学习相关课程的辅助工具。由于高职院课程都是实践性很强的课程,在原有的教学模式中,学生只能对着书本进行上机练习,缺少相应的辅助软件。该系统可以提供给学生大量的理论练习题和操作练习题,用于学生的网上练习及自我检测知识。同时可以通过系统的交互功能,增强同学们的上机积极性、提高学习效率。
除了实现上述功能以外,在线考试系统还应该具有友好、简洁的界面,安全性要高,稳定性要强,能够满足500人以上同时进行在线考试。
- 20 -
大连理工大学专业学位硕士学位论文
3.1.2 系统设计的原则
(1) 系统通用性和扩展性强 本系统基于.NET平台,能够适用于各种类别和科目的考试,严格地按模块划分,如果课程内容有所调整,只需要对题库和评分模块做一些调整即可,系统的扩展和完善非常方便。
(2) 易维护性 采用B/S模式,避免了服务器与学生客户机之间的频繁数据交换,不会使网络堵塞造成考试失败,同时,在维护时,省略客户机需要重新安装考试系统的工作程序,简化维护工作量。
(3) 安全性高 通过相关的身份验证系统,避免非法用户对系统的非法访问,通过定制试卷系统,随机地为每一位学生生成试卷,防止考试作弊,通过数据库系统安全模块,保障数据库中的信息不被破坏,通过监考模块,及时恢复因死机、误操作等原因造成的考试意外中断。
(4) 高效率性 自动阅卷、快速成绩查询、考后自动评估,提供详细的统计结果,提高考试工作效率。 3.1.3 系统模型结构
本系统的体系结构设计主要采用B/S的三层结构:表示层、应用层、数据层。如图3.1所示。这种结构的工作流程是:用户通过Web浏览器向网络中的某一Web服务器提出服务请求,Web服务器对用户验明身份后,首先执行相应的扩展应用程序与数据库接通,通过SQL语句向数据库发出数据处理申请,然后将数据库处理结果交给Web服务器后,再由Web服务器传送到客户端浏览器。
浏览器1HTTP请求基本WEB服务的应用服务器HTTP返回数据库服务器SQL SERVER2000返回PTHT求请TPHT应用服务层数据服务层浏览器N客户服务层
图3.1 三层体系结构 Fig. 3.1 Three-tier architecture
- 21 -
基于.NET的网络考试系统的设计与实现
B/S的三层结构是基于Web服务的体系结构,采用三层结构的优点:可实现应用服务器级和数据库级的全面分布,较好实现负载上的平衡,因为有了中间层,提高了数据的安全性。
通过图3.1知道B/S三层体系结构,可以使用浏览器作为用户同一界面,WEB Server作为信息系统客户机,由它来代表用户访问应用服务器,其中最重要的就是数据库服务器。因此软件开发工作主要是开发服务器端的应用程序,无须开发客户端应用程序。服务器端的所有应用程序都通过WEB浏览器来运行。由于各种操作系统都支持WEB浏览器运行,所以B/S三层体系结构可以方便地实现跨平台操作。 3.1.4 系统业务流程图
网络考试系统的业务主要包括从题库中按要求产生试卷,学生通过考试中心完成考试等。具体的系统业务流程如图3.2所示。
考卷领导管理员审核学生试卷库题库安全传输学生答卷库评价阅卷学生考试阅卷考试评价查/增/删/改组卷组卷、维护题库管理教师
图3.2 系统业务流程图 Fig. 3.2 System operational flow chart
- 22 -