摘要:
《基于B/S结构的实验室预约模型系统》是采用ASP.NET开发的一个开放实验室预约系统。本系统是针对目前实验室手工管理效率低下,缺乏安全性、可控性等缺点,以校园网为依托,采用科学、高效的教学管理方式,使学校的教学资源得到充分的利用。本系统主要实现了教师根据实际教学情况预约实验室、查看预约结果,学生查询实验室教学安排,实验室管理员对实验室的管理、用户信息的管理和系统消息发布等功能,同时系统提供了简单友好的用户界面,并通过身份验证机制实现了系统的安全性。考虑到可能出现的教师同时预约实验室的情况,本系统采用了预约时避免冲突、受理时解决冲突的方法,尽最大努力实现实验室资源的优化配置。系统具有网络化、界面友好、操作简单、功能强大、管理方便等优点,能够完全按照用户的需要,稳定、安全快速地运行于校园局域网之上。最后总结了本系统的不足之处,和还有待开发的后续工作。


2.1 系统实现基础
2.1.1 概述
本系统工作在B/S模式下,实际上是一种3层模型,包括前台用户窗口、后台数据库和中间应用程序。用户窗口围绕主页展开,主页设计采取自顶向下的规则,逐级分解各功能链接点的子功能。Microsoft Windows 2000 server + IIS 5.0 + IE 6.0;Microsoft SQL Server 2000 Enterprise Edition ;Microsoft .NET Framework SDK 1.1 + MDAC 2.7。Microsoft SQL Server 2000 Enterprise Edition;Microsoft Visual Studio.NET 2003。系统要求服务器端运行于安装了IIS服务器组件的Windows 2000 Server及以上版本的Windows平台。为了提供对.NET应用和ASP.NET数据库通信的支持,系统还必须下载安装Microsoft .NET Framework(.NET框架)和Microsoft Data Access Components (MDAC)2.7。同时还应当安装7.0版本以上的Microsoft SQL Server数据库系统提供后台的数据库服务系统对客户端基本没有要求,凡是安装有Web浏览器并能对校园网进行访问的计算机都可以作为客户端使用。

2.1.2 Microsoft SQL Server 2000 简介
SQL Server 2000是由Microsoft开发推广的关系型数据库管理系统。它是基于客户端/服务器模式的数据库系统,图形化界面使用户能够更加快捷方便地对数据库进行管理,同时提供了丰富的编程接口,为程序的开发提供了更多的便利。SQL Server 2000数据库管理系统既可以对Web应用支持也可对数据仓储支持:SQL Server 2000对Web应用支持主要表现在对XML的支持,对数据的Web访问支持,对分布式分区视图的支持,对Web和应用程序宿主的支持,安全性的支持,与.NET Enterprise Server Microsoft BizTalk 和Microsoft Commerce Server的集成。SQL Server 2000对数据仓储的支持主要表现在:可伸缩性,数据转换服务,索引视图,数据挖掘,综合性分析服务,联机分析处理, OLAP灵活性,可支持Web的分析,元数据服务。本次设计将SQL Server 2000作为系统的后台数据库。
2.1.3 ASP.NET 2003 简介
.NET是一个理想化的未来互联网环境。.NET被定位为可以作为平台支持下一代互联网的可编程结构。.NET的最终目的是让用户随时都能访问所需要的信息、文件和程序。ASP.NET 是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的Web应用程序。ASP.NET是一个基于.NET框架的编译环境,可以用任何.NET兼容的语言创建应用程序。另外,整个.NET框架可用于任何ASP.NET应用程序。包括管理的公共语言运行库环境、类型安全、继承等。与以前的Web开发模型相比,ASP.NET具有以下优点:增强的性能、世界级的工具支持、威力和灵活性、简易性、可管理性、可缩放性、可用性、自定义性和扩展性。本次设计将采用ASP.NET 2003作为前台开发工具。
2.1.4 ADO.NET简介
Microsoft通过ADO.NET为编程人员提供了功能强大的数据访问能力。在ADO.NET中通过Managed Provider所提供的应用程序编程接口(API),可轻松地访问各种数据源的数据包括OLEDB所支持的和ODBC支持的数据库。ADO.NET的优点主要表现在这几个方面:互操作性、可维护性、可编程性以及可扩展性。ASP.NET作为Web应用程序的开发工具,可以用来开发前台应用程序界面,但对后台数据库的操作就有些力不从心了,而ADO.NET则是专门针对数据库进行操作,而且专门为SQL Server数据库定义了一系列的操作规范以及操作函数、方法、对象。在应用程序的创建过程中,将它们结合在一起,可以使软件功能更加完美,并是它们充分发挥各自的优点。
2.2 系统功能设计
通过对用户需求调研并分析,确定本系统应该具备的功能,包括:用户注册/身份验证、实验室管理、实验室预约和预约情况查询。各模块的具体功能设计如下:提供给用户注册和登录接口,实现教师、学生、管理员三者身份的用户注册、修改、添加、删除管理等。提供接口为管理员管理实验室服务,使管理员能够添加、修改、删除实验教室及相关信息,能够对学生、教师的基本信息进行管理,对公共信息的发布管理以及对实验室预约进行受理等。提供接口为教师预约服务,功能有:实验室状况列表,已经预约的情况,通知服务等。提供接口为用户(教师、学生和管理员)查询服务,如实验室的使用情况查询、教师的预约情况查询、其他查询服务等。
2.3 功能模块划分
2.3.1 基本模块划分
按不同用户的权限划分,本系统主要包括以下几个模块,如图3所示:

2.3.2 超级管理员模块

2.3.3 管理员模块

2.3.4 教师模块

2.3.5 学生模块

2.4 数据库结构设计
2.4.1 数据库设计概述
本系统是一套基于网络平台的系统,它要求系统具备对大批数据的操作能力并含有大量与数据库交互的事件,因此在后台数据库的选择和设计方面具有较高的标准。鉴于以上考虑,系统选择了SQL Server 2000作为系统的后台数据库。SQL Server 2000与ASP.NET同为.NET战略的重要组成部分,它们的组合是基于微软Windows平台下Web站点的完美数据库解决方案。SQL Server 2000作为微软企业级的数据库产品,在可靠性、易用性、可伸缩性、业务职能功能等方面都具有非常优秀的表现,是大规模联机事务处理(OLTP),数据仓库和电子商务等应用的优秀数据库平台。ASP.NET作为.NET平台的Web解决方案,通过ADO.NET提供的OLEDB(对象链接和嵌入数据库)技术实现了对广泛数据源的访问能力。而且对于同门的SQL Server 2000,.NET框架特别提供了一个专门的SQL Server.NET数据提供者对其进行支持,并对其进行了专门的性能优化,可使.NET应用程序在访问SQL Server 数据库时性能大大提升。数据库数据的初始化输入,本系统采用了自动生成数据库条目的方式。管理教师只需在页面上点选、输入少量必要的数据,后台程序将自动对条件进行组合,然后写入数据库中,减轻了教师的输入工作量;另外,系统将大量数据库操作都要用到的数据库连接字写入ASP.NET提供的Web.config配置文件中进行统一的调用管理。当数据库的路径名称等发生改变时,无需进入每个页面进行相应字段的代码更改,只需对Web.config中的连接字设置进行修改,即可完成全部页面相应数据的修改,从而减少了系统变更的代码编写量。
2.4.2 数据库组成
数据库文件:LabBooking_Data.MDF事务日志文件:LabBooking_Log.LDF
2.4.3 数据库建表
根据本系统各个功能模块的需要,在数据中建立了若干张表,下面列出各主要表的相关信息:
预约情况表,BookingDetail,如表9所示表9 BookingDetail(预约情况)表结构
2.5 系统安全性设计
本系统是一个基于Web网络的开放式系统,它可以被校园网中的任何一台计算机访问,同时它又包含了一些比较敏感的数据,不允许随意地被更改或删除,因此维护站点的安全性就显得尤为重要。ASP.NET提供了多种强大的身份验证机制,考虑到系统运行的实际情况,本系统采用了基于表单的身份验证方式。它建立在cookie的基础上,当用户登录到ASP.NET应用程序上时,ASP.NET会发出一个用于身份验证的cookie,在以后的Web请求中,该cookie会在服务器和客户机之间来回传送,用于验证用户请求的合法性。实验室预约系统放置于系统根目录下的LabBooking文件夹中。通过在该文件夹中放置一个名为Web.config的XML文件,就可以实现对文件夹中的所有页面的保护。当客户端请求该文件夹中的页面时,Web.config文件会对收到的请求进行验证,如果请求中包含所需的cookie文件,则可顺利提供响应;如果请求中不含有所需的验证信息,则ASP.NET会强行将页面定位到login.aspx文件要求用户进行验证,通过后在客户端系统的临时文件夹中生成LabBooking的cookie供以后的请求使用。当客户端退出系统或关闭对应的浏览器窗口时,该cookie将从客户机系统中自动删除,以保护系统的安全。
2.6 系统界面初步设计
本系统的设计和开发都力求做到在后台为用户处理大量的事务并提供简单、明晰的操作界面,努力使用户承担最少的工作量,从而使用户对系统的操作成为一件轻松简单而又愉快的事情。本系统提供实验室的预约,指导教师可以根据自己实际的教学情况自行选择实验室进行预约。但是,由于实验室有限,实验项目、实验周次、实验课时都有可能会出现人数约满的情况。在这个问题的解决上,系统采用了四组下拉列表,可轻松地完成预约的任务。下拉列表的采用使用户无需进行键盘输入,减少了操作量,同时也避免了可能发生的输入错误。由于页面中有很多表项,很容易导致用户的误操作,因此系统页面在设计时,使鼠标停留的表项进行反转显示,这样使用户在选择的时候不容易发生错误。若要删除一条表项时,会弹出消息框,确认是否删除,以避免用户在操作中的误删除带来的不便。
2.7 预约冲突处理初步设计
在指导教师使用本系统进行实验室预约时,可能会发生冲突的情况:几个教师在同一时刻预约同一个实验室。本系统在教师提交预约申请时,将尽最大努力避免这种冲突,在冲突发生后,会及时解决冲突。避免冲突的实现:在指导教师申请预约实验室时,若此时实验室为开放状态且空闲,将成功提交此次申请,并提示“预约成功”;若此时实验室已有教师预约,将提示“已有教师在申请中,但此次申请依然有效”,预约成功;若此时实验室已有教师预约成功且已通过实验室管理员受理,则提示“预约失败”,此时预约申请无效。解决冲突的方法:为了解决指导教师由于同时申请预约实验室而产生的冲突,本系统采用实验室管理员手工处理的方式来解决。手工处理比起自动处理将具有更加人性化和更加合理化的特点。而本系统也会使用十分友好的、易操作的界面将由手工处理带来的繁琐降到最低程度。若有两个教师同时预约一个实验室,实验室管理员需要进行实验室预约受理,当选中一条预约申请时,系统会提示管理员此时有另外一个教师也预约了这个实验室,这样管理员将视具体情况来决定是否受理申请。






