陈颖悦
(厦门理工学院商学院经济与管理实验中心 福建厦门 361024)
基于ASP.NET环境的实验室报障系统设计与实现
陈颖悦
(厦门理工学院商学院经济与管理实验中心 福建厦门 361024)
及时有效地排除解决各种突发故障,对保障正常的实验教学活动的顺利开展,构建和谐的实验环境是必不可少的。本文通过设计一套实验室报障系统,取代传统的电话故障报修的形式,服务于实验室管理,规范实验室损坏仪器设备的报修流程,监督管理人员的排障响应速度和效率,并进行数据统计分析,有利于管理团队整体的业务能力的提升和形成故障处理应急机制,保障正常的实验教学活动的顺利开展,构建和谐的实验环境。
实验室,故障,维修,报障
随着高校的发展,实验室的建设规模也相应地日益扩大,师生对实验室的依赖性也日益增加,这给实验室管理人员带来了一些不容忽视的问题,一旦实验室实验设备出现故障,或将导致学生无法正常进行上课实验或者实践设计,甚至有可能无法保证正常的教学活动。因此,如何在有效范围内减少由机器故障造成的对正常教学活动的影响,在尽量短的时间内发现、解决故障,利用和分析历史故障信息,对故障信息发生的频率、情况等进行分析总结、吸取经验教训,利用分析结果研究故障率高的设备,并形成应急处理预案等,已成为实验室管理员必须考虑和解决的问题。通过建立及时有效的故障报修系统,贯穿实验服务于教学、技术服务于管理的理念,及时有效地排除解决各种突发故障,对保障正常的实验教学活动的顺利开展,构建和谐的实验环境是必不可少的。
实验室报障系统是实验室信息化管理系统中的一部分,服务于实验室管理及相应的故障监督管理体制,可规范实验室管理中的报修流程、监督管理人员的排障响应速度和效率,并进行数据综合分析,统计故障率、故障原因等,从而可以形成故障处理应急机制[1]。该系统主要具有以下特点:
(1)信息实时处理。对于报障者,通过该系统可以第一时间将故障信息反馈到系统中,对于管理人员能够及时处理故障申报,对故障处理情况实时传达和反馈等。
(2)信息共享开放。由于系统属于实验室信息化管理平台的一部分,因此对于部分报障的仪器设备,未能及时维护或者短期内维修不了的,可以在系统中显示“维修中”,并将该信息共享给实验室预约管理系统,对于实验室审核人员来说也可以第一时间了解设备的情况,预防预约申请到维修中的设备或者实验室。
(3)故障自助解决。对于一些常见的、易排除的故障,报障者可以通过故障自助解决的功能,对故障的情况进行查询,寻找出解决的方法。
(4)数据统计分析。系统可以实现对故障数据的分类统计以及对不同管理人员处理故障的工作量进行的统计。通过对统计故障数据进行分析,寻找出哪些仪器设备故障率比较高、哪些操作容易导致故障,并形成预防机制和解决故障的长效机制。通过对管理人员处理故障情况的统计,可以分析排障速度、管理人员的业务水平和工作量等,有利于管理团队整体的业务能力的提升。
2.1系统开发主要技术基础
由于实验室报障系统据有实时性、数据共享开放以及故障自助处理等特点,因此设计采用B/S结构,基于Asp.net环境进行开发,为保证数据读取的速度,数据库采用微软的Microsoft SQL Server 2008。
B/S结构(Browser/Server,浏览器/服务器模式),是一种网络结构模式,这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,使系统的开发、维护和使用更为简便。客户机上只要拥有一个WEB浏览器,如Internet Explorer,服务器只需安装SQL Server或Oracle等数据库以及IIS服务器即可。浏览器通过Web Server同数据库进行数据交互。这样可以实现数据的实时交互、共享开放,避免了安装客户端的麻烦,又可以与实验室信息化系统进行对接[2]。
Asp.net是基于通用语言的动态网页开发工具,也是将面向对象的网络编程工具,具有强大性和适应性,可以运行在Web应用软件的大多数平台上。Asp.net是完全基于组件与模块,具有良好的可定制性与可扩展性,给开发人员更多的灵活性,可以解决系统的代码修改更新频繁、多用户访问、高效率检索与响应快等问题,为用户提供了一个更为稳定、高效、安全的运行环境[3]。
Microsoft SQL Server 2008 是一个全面的集成的商业智能工具的数据库平台,使用关系型数据和结构化数据引擎,可以提供安全、可靠、高可用和高性能的存储功能,具有可扩展性、高兼容性和安全性等特点,可以很好地提供搜索、查询、数据分析、报表、数据整合以及强大的数据同步等功能[4]。
2.2系统的模块设计
2.2.1用户管理模块 主要用于用户管理,包括普通用户和管理用户。普通用户可以进行故障的报修、故障处理情况跟踪查询以及该用户一段时间的故障报修情况汇总。管理用户权限既可以用在服务器上以WEB形式登录,也可以以客户端的形式登录。当以客户端的形式登录时,一有用户报障,立刻在客户端弹出消息,接收到信息的管理员点接收,该报障信息状态即变为“处理中”,处理完成后维修工作量将自动记录到统计分析数据库中,状态也相应的变成“完成”。
2.2.2故障管理模块 主要用于故障的提交、故障处理的情况反馈、故障的分类以及故障汇总分析等。用户提交上来的故障情况可以透过该模块进行跟踪、查询、反馈、汇总等。管理员也可能通过该模块与用户进行互动,这是一个管理员、用户、设备交互的平台。
2.2.3故障通知模块 该模块与用户管理模块、故障管理模块相关联,实时跟踪故障信息,发现有新的故障信息或者故障信息状态变更时,可以以邮件的形式发送到用户邮箱进行通知。当管理员管理客户端开启的时候,也同时会弹出消息进行通知,可使故障信息可以第一时间传达出去,防止信息的滞后而影响维修周期。
2.2.4数据统计分析模块 该模块主要用于用户提交的故障统计、各种故障情况统计、设备故障情况统计以及管理员维修情况统计。通过这个模块,可以查看哪个用户任课期间故障率比较高,什么故障出现的频率比较大,哪些设备容易出故障以及哪个管理员处理故障的工作量比较多。经统计分析比较,对于故障的解决、预防可以起到指导性的作用,对于设备的使用、维护,降低故障率也具有重要意义,特别可以计算管理员的工作量,为实验室的建设、人员管理以及对实验员的技术业务水平的提升也具有深远意义。
2.2.5故障自助解决模块 通过故障数据统计分析,得知哪些故障率比较高,管理员可以将一些故障率较高,且维修方法相对简单的故障进行归档,当用户遇到相应的情况时,可以透过该模块的功能进行查询解决方法,自助进行维修,减轻管理人员的工作量。通过自助维修,还可以提升用户的技术水平,使用户知道故障产生的原因,有利于平时实验仪器设备的养护,从而起到降低故障率的效果。
2.3部分关键代码
故障列表绑定显示部分代码:
Dim param As New ArrayList
If ddlLab.SelectedIndex > 0 Then param.Add("labid=" & Convert.ToInt32(ddlLab.SelectedValue).ToString)
If txtTimeStart.Text <> "" Then param.Add("addtime>'" & Convert.ToDateTime(txtTimeStart.Text).ToString("yyyy-MM-dd HH:mm:ss") & "'")
If txtTimeEnd.Text <> "" Then param.Add("addtime>'" & Convert.ToDateTime(txtTimeEnd.Text).ToString("yyyy-MM-dd HH:mm:ss") & "'")
If ddlStatus.SelectedIndex > 0 Then param.Add("status=" & Convert.ToInt32(ddlStatus.SelectedValue).ToString) Dim condition As String = ""
For Each paramstr As String In param
If param.IndexOf(paramstr) > 0 And param.IndexOf(paramstr) < param.Count - 1 Then
condition &= " and " & paramstr
Else
condition &= paramstr
End If
Next
Repeater1.DataSource = GetFaultByPage(_totalCount, _totalPage, AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex, condition)
Repeater1.DataBind()
添加故障情况部分代码:
Dim addsql As String = "insert into fault (faultid,addtime,computerno,faultdescription,teacher,labid) values(@faultid,@addtime,@computerno,@faultdescription,@teacher,@labid)"
Dim sqlparam(5) As SqlParameter
Dim faultid As String = Guid.NewGuid.ToString
sqlparam(0) = MakeInparam("@faultid", NVarChar, , faultid)
sqlparam(1) = MakeInparam("@addtime", DateTime, , Date.Now)
sqlparam(2) = MakeInparam("@computerno", NVarChar, , computerno)
sqlparam(3) = MakeInparam("@faultdescription", NText, , faultdescription)
sqlparam(4) = MakeInparam("@teacher", NVarChar, , teacher)
sqlparam(5) = MakeInparam("@labid", Int, , labid)
ExecuteNonQuery(getconnstr, CommandType.Text, addsql, sqlparam) If FileUpload1.HasFile Then
Dim ext As String = IO.Path.GetExtension(FileUpload1.FileName).ToLower
Dim allowext() As String = {".jpg", ".png", ".gif", ".bmp", ".jpeg", ".rar", ".zip", ".doc", ".docx", ".txt"}
If Array.IndexOf(allowext, ext) >= 0 Then
Dim savefolder As String = Server.MapPath("~/Attachment/" & Date.Now.ToString("yyyyMMdd"))
If Not IO.Directory.Exists(savefolder) Then IO.Directory.CreateDirectory(savefolder)
FileUpload1.SaveAs(savefolder & "/" & faultid & ext)
Dim addattachment As String = "insert into attachment values(@faultid,@attachmentpath)"
Dim attachmentsqlparam(1) As SqlParameter
attachmentsqlparam(0) = MakeInparam("@faultid", NVarChar, , faultid)
attachmentsqlparam(1) = MakeInparam("@attachmentpath", NVarChar, , "/Attachment/" & Date.Now.ToString("yyyyMMdd") & "/" & faultid & ext)
ExecuteNonQuery(getconnstr, CommandType.Text, addattachment, attachmentsqlparam)
End If
End If
实验室报障系统采用了基于Asp.net的面向对象编程设计方法,具有较好的可移植性、可扩展性和兼容性,可以与实验室信息化管理平台进行对接。系统的设计具有实用性、实时性和通用性,可以用于实验室仪器设备的故障报修,也可用于其他部门如电教室的故障报修等,起到了一个系统多用的功能。通过该系统的使用,可以及时有效地排除解决各种突发故障,有利于管理团队整体的业务能力的提升和形成故障处理应急机制,对保障正常的实验教学活动的顺利开展,构建和谐的实验环境起到重大的作用。
[1]顾琼.构建基于共享平台的银行故障报修系统[J].技术与应用,2004,12(11):58.
[2]张晓倩.基于BS增量下装的在线投稿系统设计[J].办公自动化杂志,2011,20(12):20.
[3]但正刚. ASP.NET高级编程[M].北京:清华大学出版社,2002.20.
[4](美)韦拉 著,马煜,孙晧 译. SQL Server 2008编程入门经典(第3版)[M].北京:清华大学出版社,2010.51.
(责任编辑胡安娜)
2013-12-30
陈颖悦,537682155@qq.com。
TP 393.09
A
1674-9545(2014)02-0047-(04)