郭霞
摘要:该文从华北机电学校等级考试报名的实际情况出发,对基于校园网的网上报名系统进行了基于B/S三层结构的开发设计,包括系统总体设计,功能模块划分,数据库设计,安全设计等。该系统的实现方便了考生,简化了管理,提高了效率。
关键词:B/S三层结构;网上报名系统;.net
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)31-0059-02
全国计算机等级考试和全国公共英语等级考试在全国设有很多考点,华北机电学校是其中之一,等级考试报名人数众多,从考生到我校交费,录制信息、照相到印制和发放准考证,手续繁杂,结合学校的实际情况(学校的办公楼、教学楼、实验楼、图书馆楼都已经联网),我们决定自己开发和研制一套“网上报名管理系统”,实现考生在家里就可以上网录制信息,提供照片,网上报名,网上下载打印准考证,这样就可以大大减少学校组织考试报名工作的劳动强度,提高了准确率和工作效率,方便了报名管理工作,同时方便了广大社会考生和外地考生,对提高学校知名度,吸引更多生源也有重要意义。
1 系统开发环境与工具
整个网上报名系统的设计完全是基于Browser/Server三层结构,开发平台采用了Microsoft Visual Studio .NET 2010,服务器端语言采用了ASP.NET,编程语言主要采用了面向对象编程语言C#。以Windows Server 2008为服务器操作系统,数据库服务器使用SQL Server 2005,通过ADO.NET方式访问数据库。信息服务器使用Internet Information Server7.0。[1] 系统基本设计思想如图1所示。
图1
2 系统总体设计
2.1三层结构设计
Browse/Server模式的三层结构是将应用系统复杂的开发工作进行划分,在每一层中只实现系统相应层的功能设计,层间的交互由相邻层对应的功能模块进行调用,信息传递只由接口进行传送。本系统采用表示层、业务逻辑层和数据访问层三层结构来设计。[2]在ASP.NET中,对三层架构可以如下理解:ADO.NET中集中了主要的数据库层知识点,例如调用数据库时通过OLEDB,ODBC,SQLClient等方式,并包含DataSet,DataReader等数据操作对象;由组件组成了业务逻辑层,用户自定义控件与类库的设计是业务逻辑层的主要知识点,例如建立自己的数据检索函数、数据库操作函数;ASP.NET的上层页面程序就是HTML,XML以及ASP.NET中的服务器端控件等。
2.2系统功能模块划分
网上报名系统是由网上报名和用户管理、角色权限管理、报名管理、成绩管理、系统维护等功能。这些功能的具体描述如下:
1)网上报名:包括初始报名(选择新报名或补考,填写身份证号,如果是补考,则提取原信息到填报信息页面)、信息填报(姓名、证件类型、证件号码、报考等级或补考等级及类型等)、照片上传、网银支付(选用支付宝实现网上支付)、报名查询、报名修改、取消报名、准考证打印等。
2)用户管理:考生提交信息后可以增加考生为普通用户、可以修改考生用户、删除考生用户,系统用户角色划分包括来宾、系统管理员和普通管理员三种。
3)角色权限管理:可以添加、修改、删除角色,可以对角色权限进行管理如来宾只有浏览网站和报名权限,系统管理员拥有最多权限,报名管理员只有管理报名和管理成绩的权限。
4)报名管理:包括报名浏览、报名添加、报名删除、报名修改、报名查询、统计报名、备份报名、结算报名费等功能。
5)成绩管理:包括成绩浏览、成绩查询、统计成绩等功能。
6)系统维护:包括发布信息、更新版面、报名开始、报名结束、文件导入、文件上传、管理日志等功能。
3 数据库设计
本系统使用SQL Server 2005作为应用程序的数据库。[3]根据系统的实际需要和数据库建模分析,系统需要建立一个网上报名数据库(BMDataBase),其中包含6个表如下:
1)角色表(Roles_table):存储用户角色信息。其字段及类型有:角色代号(RoleID int)、角色名称(RoleName nvarchar(32))和角色说明(Notes:ntext)。
2)用户表(Users_table):存储系统用户信息,用角色表中的RoleID字段作为表的外键。其字段及类型有:用户表主键(UserID:int)、用户名称(UserName:nvarchar(32))、用户密码(Password:nvarchar(100))、用户所属角色(RoleID:int)等。
3)报名表(Examinee_table): 存储考生报名信息,该表引用用户表的UserID字段作为表的外键。其字段及类型有:报名表主键(ExamineeID:int)、考生用户号(UserID:int)、报考等级(ExamGrade:nvarchar(40))、报考类型(ExamType:nvarchar(20))等。
4)成绩表(Scores_table):存储考生成绩信息,供考生登录查看自己参加的考试和考试成绩。该表引用报名表的ExamineeID字段作为表的主/外键。其字段及类型是:成绩表主键(ExamineeID:int)、笔试成绩(PaperTestScore:int)、机试成绩(OperationTestScore:int)、总成绩(TotalScore:int)和合格证书编号(CertificateID:String(15))。
5)考试表(Exams_table):记录每种类型考试的信息,以便于对多种考试的管理。其字段及类型是:考试表主键(ExamID:int)、考试名称(ExamName:nvarchar(40))、考试级别(ExamGrade:nvarchar(200))、考试类型(ExamType:nvarchar(40))和考试费用(ExamFee:money)。
6)报考表(RegForExam_table):记录每一种考试不同时段的报名信息,以便对多种考试多次报名的管理。其字段及类型是:报考表主键(RegExamID:int)、考试种类编号(ExamID:int)、报考开始时间(RegStartTime:datetime))、报考停止时间(RegStopTime:datetime))、考试日期(ExamDate:datetime)
4 系统安全设计
系统设计与实现中一个非常重要的环节是“安全性”问题。尽管开发人员通过各种方式来提高应用程序的安全性能,但完全安全的系统是不存在的。所谓的“安全性”并不是“百分之百的安全”。
根据需要,网上报名系统主要采取了以下安全措施:
· 为阻挡对数据库的非法侵入与操作采用了防火墙技术;
· 不同的用户具有不同的授权,对数据库合法用户进行了分组。具有数据修改权限的合法用户只有通过应用系统登录才能进行数据修改。要限制第三方的攻击,服务器内部网络可通过端口限定等方法;
· 为禁止不同IP地址对同一条数据的操作,进行了IP地址监控,严防恶意修改;设置对某些恶意IP禁止对本站点进行访问,使用IP级安全控制;
· 为了对客户端和服务器进行安全认证和数据加密,中间件服务器提供了安全接口层(Secure Socket Layer);
· 采用加密和追踪相结合的方法,通过日志追踪合法用户对非常敏感的信息的修改、插入和删除操作;
· 应用系统安全措施:审核过程都采用应用程序的方式,应用程序的获得严格采用用户身份类别。应用系统采用用户组与用户二级管理,对用户组中的不同用户分别作权限控制,防止对数据的误操作,避免给考生带来不应有的损失。
5 总结
本文探讨了基于B/S三层结构的网上报名系统开发设计,重点介绍了系统设计和采用的安全机制。这种报名方式针对考生大量信息的录入、信息的准确率、学生成绩的查询等都有了很大的改进,大大简化了报名手续,提高了报名工作效率,减少了错误率,方便了考生包括外地的考生,也方便考试管理人员随时进行报名情况的了解和管理。
参考文献:
[1] 杨放,陈成钢,基于.NET的网络办公自动化系统设计与实现[J].浙江万里学院学报,2005(8).
[2] Chris Ullman,John Kauffman. ASP.NET 1.1入门经典—Visual C# .NET 2003编程篇[M].杨浩,译.北京:清华大学出版社,2004.
[3] 周绪,管丽娜,白海波.SQL Server 2000中文版 入门与提高[M]. 北京:清华大学出版社,2001.