维普资讯 http://www.cqvip.com 2008年6月 郧阳师范高等专科学校学报 Jun.2008 第28卷第3期 Journal of Yunyang Teachers College V0I-28 No.3 基于ASP.N】 的开放性实验室网络黼统的设计与实现 毕春霞 ,王绍明 (1.郧阳师范高等专科学校教育信息技术系,湖北 丹江口442700; 2.郧阳师范高等专科学校 物理与电子工程系,湖北 丹江口442700) [摘 要]以郧阳师专电工电子示范中心的建设为背景,对开放性实验室网络管理系统进行需求分析和方 案设计,综舍运用ASP.NET和SQL Server 2000数据库相关技术,实现实验仪器管理、实验预约、师生在线 交流和教学资源共享等功能.系统试运行表明:该系统设计有效可行,极大地提高了实验室的利用效率. [关键词]ASP.NET;开放式实验教学;实验预约;管理系统 [中图分类号]TP393.07 [文献标识码]A [文章编号]1008—6O72(2008)O3—0052一O5 据指导教师的空闲时间和实验室设备情况,合理安排课程 1 引言 可开放实验项目、实验室开放时间和指导教师; 在21世纪高校实验教学改革中,开放式实验教学是 (2)在线实验预约:学生可根据自己的实际情况,在实 一种很好的新型实践教学模式,也是我校电工电子示范中 验室开放时间内自行选择实验时间和实验项目,并可在线 心实验室建设的重要内容.开放性实验最大的优点是学生 阅读相关仪器使用说明书和实验指导手册等资源,提前做 可根据自己学习情况、兴趣、时间来预约实验,并且使得实 好实验准备工作; 验设备得到最有效的应用E ] .开放性实验室网络管理 (3)在线答疑和资源共享; 系统正是为了实现学生对物理实验的在线自由预约而研 (4)实验仪器管理} 制的,并不仅仅局限于预约功能,还有学生信息管理、实验 (5)预约信息的管理; 预习、师生交流、实验设备管理等功能,是一个集多种功能 (6)系统用户管理:管理教师、学生和管理员信息; 于一体的实验教学网络管理系统.因此,开放性实验室网 (7)信息发布:新闻、通知、公告的发布; 络管理系统韵开发和应用具有显著的现实意义. (8)系统维护. 2.2系统运行架构 2需求分析及方案设计 ASP.NET是一项用于创建动态web页的功能强大、 2.1需求分析 非常灵活的服务器端技术0].它支持面向对象的编程思想 目前我校在学分制教学模式下,课程安排分为两种类 和多语言编程模式,完全基于模块和组件,具有很好的可 型;按教学计划安排的必修课和学生根据自身情况自主选 扩展性和可定制性}并利用提前绑定、即时编译、本地优化 择的选修课.一般都在开学初确定下来,形成教学班后将 和缓存服务来提高性能}在数据处理方面引入了ADO. 不允许变更.而开放式实验教学则有很大的不同,开放时 NET技术;另外,对Visual Studio.NET集成开发环境 间受到许多外在因素的影响.比如,必修课的实验课一般 (IDE)的支持,不仅给Web开发人员以更好的灵活性,同 不是一开学就上,而应该根据教师上课的进度确定;指导 时有效缩短了Web应用程序的开发周期,提高了效率. 教师每周的空余时间也不尽相同;同一教学班的学生由于 本系统采用微软.NET框架1.1版本技术平台,开发 专业和课程的差异,再加上学习计划不同,空闲时间也有 工具选择Visual Studio.NET 2003,开发语言采用C#,数 很大的不同.所以,在开放性实验室建设中,实验室开放时 据存储采用SQL Server 2000,利用ADO.NET技术进行 间只能动态安排,实验内容和实验教学资源也必须要开 数据访问.整个系统完全采用B/S结构和3个逻辑层的设 放,这将增加实验室开放的管理负担.解决上述问题,开放 计模型,即:用户表示层(USL)、业务逻辑层(BLL)和数据 性实验室网络管理系统需借助MIS(Management lnfor— 访问层(DAL).为了优化系统性能,还增加了一个通用层, marion Systems)的理念,主要完成以下任务: 为整个系统提供模块接口和通用工具集类。供其他各层使 (1)对实验室开放进行宏观:实验室管理员可根 用.开发过程采用IIS 6.0Web服务器和Windows 2003 [收稿日期]2008一O3一l6 [作者简介]毕春霞(198O一),女,湖北丹江口人,郧阳师范高等专科学校教育信息技术系助教,主要从事计算机网络 技术应用和多媒体课件制作研究. YYSZXB 52 维普资讯 http://www.cqvip.com 毕眷霞,王绍明:基于ASP.NET的开放性实验室网络管理系统的设计与实现 Server服务器操作系统,系统实施后可采用Windows 2000 Server或Windows 2003 Server服务器操作系统. 放信息;。预约信息管理”主要包括查看学生预约信息和对 学生预约信息进行退选;。实验教学资源管理”包括资源所 2.3数据访问策略 数据访问策略是应用程序用来存储、检索和管理数据 的方式.本开放性实验室网络管理系统充分利用了SQL 属栏目、名称、资源类型等信息的管理,并提供了资源的上 传、下载、管理和资源回收站管理操作以及简捷明了的按 资源类型或名称等条件进行检索的功能. Server数据库系统对性能优化的特点,在数据访问层对数 据库的访问均采用存储过程的方式进行.存储过程在创建 时即在服务器上进行编译,所以执行效率比单个SQL语 句快,且能减少网络通信负担,所以利用存储过程可以保 持WEB应用程序的执行效率并简化数据层;另外可以增 加系统设计的灵活性,在数据库发生变化时,有时可以通 过改变存储过程语句而无需改变程序代码[a]. 3 系统的功能设计与实现 3.1系统的功能模块 经过对开放性实验室网络管理系统的需求进行分析 和整理,系统主要功能可以划分为以下4大模块: 3.1.1 系统管理模块 系统管理是整个系统安全可靠运行的基础,在进入每 个模块进行操作时都要进行权限验证,无模块操作权限时 系统给予警告提示.进入系统管理模块时可使用的活动或 选项如图1所示,其中。公共信息管理”主要包括学年学期 信息 ,院系、专业和班级信息,课程信息和教学楼信息的管 理I。公告、新闻管理”主要用于发布和管理通知、公告及相关 新闻、文章I。学生、教师管理”用于管理学生和教师的帐号、密 码等信息I。管理员管理”用于从已有用户中添加具有不同权 限的管理员,并控制管理员帐号状态I。登陆El志管理”用于记 录所有用户的登陆信息,是提供给系统管理员进行管理使用 的,不仅可以查看登陆信息,还可以删除过期El志信息. 圈1 系统管理模块UML活动图 3.1.2实验教学管理模块 实验教学管理是整个系统的核心,模块操作同样需要 严格的权限验证,其UML活动关系图如图2所示.其中 。实验室信息管理”是对实验室的名称、实验员、容纳人数、 地点等信息进行管理}。实验仪器管理”主要对实验仪器的 名称、编号、型号规格、所在实验室、运行状况、组别等信息 进行维护与管理及实验仪器的查询;。实验项目库管理”主 要管理所有实验项目的名称、实验学时、所需实验仪器、实 验类型、实验地点等信息;“开放信息管理”主要用于设置 每学期可开放课程信息、可开放实验项目信息和实验室开 圈2 实验教学管理模块UML活动圈 3.1.3教师管理模块 。个人信息”用于修改教师个人信息和密码;。预约信 息”包括查看实验室开放信息、所管理实验室和所指导实 验的预约信息I。在线答疑”主要是在线对学生实验中的疑 问进行回答I。实验教学资源”包括上传下载资源、管理自 己上传的资源和资源搜索I。工作El志”是为教师提供管理 工作计划和El程的功能,并设置El程提醒功能. 圈3 教师管理模块UML活动圈 3.1.4学生实验预约模块 “个人信息 用于修改自己除学号外的其他个人信息 和登陆系统的密码I“实验预约 用于查看实验室开放信息 并进行个人或小组预约、退约;。实验预习”包括阅读相关 实验大纲和指导手册、仪器使用说明书等;“实验教学资源 信息”用于下载相关教学资源I。在线提问”用于在线提出 实验中的疑问,进行师生在线交流. 圈4 学生实验预约模块UML活动图 3.2数据库的设计 根据对整个系统的需求分析和功能设计,并考虑到数 YYSZXB 5 3 维普资讯 http://www.cqvip.com 毕春霞,王绍明:基于ASP.NET的开放性实验室网络管理系统的设计与实现 据库设计的安全性、一致性和完整性,系统采用基于二维 一门课程的实验项目在同一实验室进行,在同一单位开放 表的关系数据库来管理系统数据,数据库中主要数据表及 时间内,同一实验室可进行不同的项目实验.安排实验室 字段如下: 开放时间时,管理员首先从实验项目库里选择各门课程可 (1)学生个人信息表:主要有学号、姓名、性别、密码、 开放的实验项目,然后确定每学期、每周各实验室的开放 院系、专业、班级、电话. 课程、开放时间、最大预约数及指导教师,学生就可以在开 (2)教师个人信息表:主要有编号、姓名、院系、教研 放时间内个性化地预约和退约实验. 室、帐号、密码、电话. 3.3.3学生网上预约 (3)管理员表:主要有管理员编号、教师编号、群组编 实验预约得考虑几个要素:预约时间、实验项目和实 号、状态. 验室名称.为了方便学生操作和后台管理员安排实验室开 (4)用户组表:主要有群组编号、群组名、群组描述、是 放时间,预约时间具体到第几周、星期几、一天中的哪几节 否为系统必备(系统必备群组将不能删除). 课,并在下拉列表中全部设定好.预约时学生首先得用学 (5)用户组权限表:主要有群组编号、权限编号、序号. 号和密码登陆,然后通过实验类型、周次、星期、节次等条 (6)实验室信息表:主要包括实验室编号、实验室名 件查询每个实验室的开放情况、已预约人数和可预约人数 称、容纳人数、实验室管理员、实验室位置、所属部门、所在 等信息,可预约实验项目将全部显示在列表框中,再点击 校区. “预约”按钮即可预约,效果如图5所示.预约分两种类型: (7)实验仪器信息表:主要包括仪器编号、仪器分类 个人预约和团体预约,通过预约人数来设定.预约成功则 号、仪器名称、型号、参数、所在实验室、组别、运行状态、仪 会在个人实验预约情况表中显示出来,并可点击“退约”按 器图片、使用说明书. 钮自行退约.做实验之前学生可查询相关仪器说明书、实 (8)课程信息:主要包括课程编号、课程名称、课程简 验视频、实验指导书等教学资源进行实验预习,并随时在 介、开课院系、开课教研室. 线提出实验中的疑问,查看老师的回复.为了约束学生的 (9)实验项目信息表:主要包括实验项目编号、项目名 退约行为,本系统将对学生的信用进行记录. 称、实验类型、实验学时、实验仪器、所在实验室. M。 哪 ∞:…~……… --F'I啷, f ‘ 。 ● i (9)课程实验项目安排表:包括主键号、课程编号、实 _-: 日E哪--・u: 1 n _…■jl ●●-。~一…一…一 验项目编号. 篇■t 硝 ■ (10)开放信息表:主要包括主键号、学年学期号、课程 -c辨 峰■嘲●嘲 ■ t口d■a — t●_H ● j 编号、实验室编号、可预约专业、周次、星期、节次、指导教 。_ 。岫蝉 | 。’_ 抽0’ 蔓 师、最大预约、已预约. ≥ 三 : 三暮 姜:蛋 jl;三 j 箸; (11)学生预约表:主要包括主键号、学年学期号、学 图5 学生实验预约 号、预约IEI期、预约实验项目编号、预约人数、预约状态. (12)学生预约信用信息表:主要包括学号、预约次数、 3.3.4预约信息管理 退约次数. 教师和实验员可管理自己所指导或所管理实验室的 (13)登陆IEI志表 主要包括主键号、用户帐号、登陆时 预约信息,实验教学管理员有权根据实际情况和学生信用 间、登陆是否成功、登陆主机IP、登陆失败原因. 取消学生的预约.另外,对于已经做过实验的预约信息可 3.3功能的实现 定时删除,以免数据库中存放过多冗余数据.这两项操作 限于篇幅,本文仅对实验预约功能的实现作一介绍. 都不视为学生退约行为,不计入学生信用信息表. 3.3.1学生注册 考虑到可进行实验预约的对象为我校有学籍学生,且 4 系统实现的关键技术 学生学号、姓名等信息不可随意更改,本系统不允许学生 4.1模块操作权限验证 自行注册,而是由实验教学管理人员添加学生信息.在添 在本系统中,所有的后台管理操作都需要进行用户操 加学生信息时,只需要输入学生学号,选择院系、专业和班 作权限验证,具体做法是按群组分配权限:用户属于权限 级信息,并对学生登陆密码进行初始化,学生即可通过学 号和密码登陆,进行实验预约和修改登陆密码等个人信 组(可属于多个),每个权限组拥有自己的权限列表,数据 表关系如图6所示.所有后台Web页面都继承基类Page— 息.另外考虑到学号排列的规律性,管理员还可以批量添 Base.CS,在基类PageBase.CS中提供登陆用户信息和访问 加学生信息,即只需要输入学号前缀和批量添加学生数量 权限判断,在需要进行操作权限验证的Web页的Page— 即可由系统自动生成学生学号等信息. Load事件中调用基类方法CheckRight().如果用户没有 3.3.2安排实验室开放时间 登陆,强制用户跳转至登陆页;如果用户已登陆则根据用 学生要预约实验,首先须由实验教学管理员合理安排 户所属权限组和和权限组权限列表判断是否有操作权限. 实验室开放时间.考虑到我校电工电子示范中心实验室的 有权限则可进行相关操作,无权限则给出错误提示. 功能特点和实验室利用效率,实验室按课程进行开放,即 YYSZXB 54 维普资讯 http://www.cqvip.com 毕春霞,王绍明:基于ASP.NET的开放性实验室网络管理系统的设计与实现 { > <tablecellSpacing=…0。cellPadding=’’0”width=’’1 67”a— lign=”center”> <tbody><tr> <td class=menu_title id—menuTitle< 一i > onmouseover=”this.classNtime一’menu—title2’;” style=”CURSOR:hand” onclick=showsubmenu(<%一i+2%>)onmouse— 圈6 群组与权限关系 out=”this.className=’menu_title’:” background=../skin/admin/admin_left—1.gif height 4.2用户权限菜单的动态化 =28> 一个优秀的系统除了应当能够让用户在后台处理大 <span>< =MenuName ></span></td> 量事务,还需要提供清晰、简捷的操作界面,从而使用户对 </tr></tbody><tbody><tr> 本系统的操作成为一件轻松简单的事情.本系统用户登陆 <td id=submenu<0A=i+2 >style一”DISPLAY: 后,在左窗口中显示该用户拥有的模块菜单,并且每个大 none”align=center> 的模块菜单提供很多小功能菜单.小功能菜单是可以折叠 <div class=”see—menu”style=”WIDTH:165px”> 的,单击大模块菜单后,小模块菜单会显示或隐藏,有效节 <table cellSpacing=…0’cellPadding=…0 width=”150”a— 约了空间.在左窗口选择功能菜单后,右窗口根据左窗口 Jign一”center”> 的选择加载相应的模块操作窗口,效果如图7所示. < ) >< else >< { > <tbody><tr><td height=”20”> <a href=”< =MenuUrl A0>”target:Main>< 一 MenuNtime > </a></td></tr></tbody><%)%> < ) >< dr.Close();mymenu.Close();%> </table></div></td></tr></tbody></table> </div> 圈7 用户权限菜单 4.3公共信息嗣除验证 在数据库系统中,一个数据表中的某一字段的数据如 为了方便系统功能的日后扩充,系统所有模块及功能 果在其他表中有引用,则删除本条数据将导致系统出错. 菜单都存储在数据表Sys—Menu中,主要字段有ID、 在本系统中,为了维护数据的完整性,防止用户误操作删 MenulD、MenuName、MenuUrl和MenuJB(1表示模块菜 除系统的重要数据,在操纵数据库时将进行公共信息删除 单,0表示功能菜单),左窗口web页面后台代码中定义一 验证,具体做法是在删除数据时调用方法DelConfirm()方 个Sq1DataReader对象dr用于从表Sys—Menu中读取用 法,如果返回值为空则可进行删除操作,否则提示不能删 户所属权限组菜单,在用户表示层中用以下代码动态显示 除并显示出引用该数据的数据表.方法主要源码如下: 权限菜单; /*tablename:要删除数据的数据表名,colname:要删除数 <div id一”TT”style=”OVERFL0W:hidden”> 据的字段名,cvalue:要删除的数据,info:数据表描述*/ <div id=”MENUDIV”style=”DISPLAY:block”> public string DelConfirm(string tablename,string col— < int i=0; name,string cvalue,string info) while(dr.Read()) {string sql--”select sysobjects.name as tablename,syscol— {MenulD--dr.GetString(1); umns.name as fieldname,syscolumns.id from syscolumns MenuName=dr.GetString(2); left join SySObjects on syscolumns.id=SySObjects.id where MenuUrl=dr.GetString(3); sysobjects.name<>”’+tablename+”’and syscolumns. MenuJB—dr.GetString(4); name in(” +colname+”’)and obiectproperty(sysob- if(MenuJB==”l”) iects.id,’IsUserTable’)=l”; i=i+l; > Sq1Parameier[]parameters={new SqlParameter(”@sql”, < if(MenuJB一=”1..&&i>1) sq1)}; { > DataSet ds—common.RunProcedure(”sp—Common— </table>d/d/v></td></tr></tbody></table> Search”,parameters,…dt); < } >< if(MenuJB==”l”) string message= : YYSZXB 5 5 维普资讯 http://www.cqvip.com
毕春霞,王绍明:基于ASP.NET的开放性实验室网络管理系统的设计与实现 for(int i一0;i<ds.Tables[”dt”].Rows.Count;i++) ds=this.RunProeedure(”sp—Syyy—Sel— {sql=”Select Top 1”+colname+”from”+ds.Tables[” ByOpenID”,pa,”dt”); dt”].Rows[ill”tablename”].ToString()+”Where”+col— if(ds.Tables[”dt“].、Rows.Count>0) name+”一 +cvalue+” : return”<font color—gray>时间 SqIParameter[]param一{new SqIParameter(”@sql”, 已用</font>”; sq1)}; else DataSet dss=common.RunProcedure(”sp—Common— return”<a href—javascript:order( ‘ eSarch”,param,”dtt”); +openid+”’,’”+syxmid+”’)> if(dss.Tables[”dtt”].Rows.Count>0) <font color=red>预约</font message=message+”\\n\\n注意:表[”+ds.Tables[” ></a>”; dt”].Rows[i][”tablename”].ToString()+”]中引用了 )) 该”+info+”信息!”;)return message ̄) 4.4学生实验预约 5结论 学生实验预约效果如图5所示。选择一定的搜索条 开放性实验室网络管理系统的建立,为实验预约与管 件。单击“查询 之后,系统将所有满足条件的实验项目用 理提供了一种实际可行的办法,可有效提高我校电工电子 DataGrid控件显示.为了方便学生预约操作,系统在预约 示范中心各实验室的利用效率,高度共享实验教学资源, 栏设置了三种状态:“已预约”、“时间已用 和“预约 ,只有 给学生提供个性化的实验环境,从而提高学生的创新精神 显示为“预约 状态的实验项目学生才可直接单击进行预 和实践能力;并且减少了实验室管理人员的工作量。降低 约.为此,需要给DataGrid控件添加一模板列,并调用后 了管理难度,对于保证实验室开放式运行起着重要作用. 台代码类中的方法IsYyy()显示预约状态.方法主要源码 随着实验教学的改革和发展。不断地丰富和完善该系统功 如下: 能,能更好地满足学校各部门的实验教学和管理需求. public string IsYyy(string sxh,strign openid,string syx- mid) [参考文献] {DataSet ds; SqIParameter[]parameter一{new SqIParameter(”@ [13褚清松,蒋方乐.基于Web的开放式实验教学管理系统的设计 sxh”,sxh),new SqIParameter(”@OpenID”,openid), 与实现[J].数据库及信息管理,2007.(1). new SqIParameter(”@SyxmlD”,syxmid)); [2]Chris Ullman,Chris Goode.ASP.NET入门经典——C#编 ds—this.RunProcedure(”sp—Syyy—SelByOpenI— 程篇[M].北京;清华大学出版社,2002. DAndSyxmlD”,parameter,”dt”); [33李春葆,曾慧.SQL Server 2000应用系统开发教程[M].北 if(ds.Tables[”dt”].Rows.Count>0) 京;清华大学出版社,2005. {return”<font color—blue>已预约</font [43季久峰,李 志.ASP.NET办公自动化系统开发实例导航 >”;) [M].北京:人民邮电出版社,2004. else [53陈冠军.精通ASP.NET 2.0企业级项目开发[M].北京:人民 {SqIParameter[]pa一{new SqIParameter(” 邮电出版社,2007. @sxh”,sxh), 【编校:胡军福】 new SqIParameter(”@OpenlD”,openid)); Design and Realization of Olin Lab Network Management System based on ASP・NET BI Chun—xia 0,WANG Shao—raing2 (1.Department of Educational Information and Technology,Yunyang Teachers’College,Danjiangkou 442700,China; 2.Department of Physics and Electrical Engineering,Yunyang Teachers’College,Danjiangkou 442700,China) Abstract:The authors has,based on the construction of Electrian and Electric Demonstration Centre of Yunyang Teachers’College,made a requirement analysis on and design to open lab network management system,and realized these functions of experimental instrument management,experiment reservation,teacher--student online communication, sharing teaching resources by use of ASP.NET and SQL Server 2000 database,and also proposed the key technologies to realize the system.The system’s trial operation demonstrates that the system is effective and feasible,which greatly in— creases the efficiency of the lab. Key words:ASP.NET;open lab teaching;experimental reservation;management system YYSZXB 5 6