基于Web 的多功能实验室管理系统设计及应用
2014-05-27徐华中
程 萍,吴 飞,徐华中
(武汉理工大学 自动化学院,湖北 武汉430070)
随着实验室规模的扩大及功能的复杂化,实验室在承担常规实验任务的同时,要求增加设计性、综合性、创新性和选择性实验项目,以满足不同用户个性化发展的需要,这就要求为实验室管理者和用户提供更好的技术支撑、便捷的服务以及高效的管理模式。随着使用实验室的用户人数激增,采用传统的实验室管理模式显然已经力不从心,开发多功能实验室管理系统势在必行[1]。
为了提高各类用户的实际动手能力、理论水平,需要配置各种类型的实验室。但用于实验室的面积增长有限,难以提供与用户规模相当的实验室[2]。这就使得许多管理者将功能相对单一的实验室集中起来,功能叠加,构建多功能实验室,这给实验室管理带来了新的挑战[3]。
因此,采用信息技术、计算机技术,以及网络技术,构建多功能实验室管理系统是一项十分迫切的任务。
1 功能分析
多功能实验室包括3 个区域:公共区、基础实验区和科研区。公共区主要放置微机、打印机、扫描仪。基础实验区进行用户数量较多且不复杂的实验。科研区放置各种较昂贵仪器并可在此进行较复杂的科学研究实验,该区供经授权后承担科研任务的用户使用,需要专门的预约登记手续。
在多功能实验室中主要有3 类人员,即用户、实验指导人员和实验室管理人员。用户需要接受实验安排,预约公共区计算机位,接受实验指导人员的任务安排并及时汇报实验的进展情况等。实验指导人员需要借助系统向用户发布消息、分配任务并监管用户实验的进程等。实验室管理人员包括实验室工作人员和相关部门负责人,实验室管理人员需要对实验室设备进行管理,对实验进行安排,接受和处理公共区和科研区的预约。多功能实验室管理系统主要功能如图1 所示。
2 系统方案设计
2.1 开发工具和数据库的选择
目前系统构建的应用软件开发模式分为两种:客户机/服务器(C/S)模式和浏览器/服务器(B/S)模式[4]。C/S 模式是面向应用的,一般建立在专用的小范围网络环境下。考虑到Web 应用具有不受办公地点限制的特点,因此采用B/S架构模式可以满足系统用户,特别是指导教师移动办公的需求。
在开发工具的选择上,PHP 混合了C、Java、Perl 以及PHP 自创新的语法[5]。安装PHP 可以使其比CGI 或者Perl 更快速地执行动态网页[6]。用PHP 做出的动态页面与其他的编程语言相比,PHP 是将程序嵌入到HTML 文档中去执行,执行效率比完全生成HTML 标记的CGI 要高许多;PHP 还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快的目的。PHP支持几乎所有流行的数据库以及操作系统。
在数据库的选择上,系统采用了MYSQL 数据库。MYSQL 是一个快速、多线程、多用户的SQL 数据库服务器[7],是PHP 的首选数据库。支持正规的SQL 查询语言和采用多种数据类型,能对数据进行各种详细的查询等都是PHP 选择MYSQL 的主要原因[8]。
图1 多功能实验室管理系统功能图
2.2 数据库设计
根据上述功能分析,多功能实验室管理系统所管理的对象主要有实验指导人员、基础实验用户、科研实验用户、实验室、实验室管理人员、实验设备、计算机等,包括管理员表、实验指导人员表、用户表、设备表、设备维修表、计算机表、报告文档表、月汇报文档表、材料表、项目表和实验评价表等,共计21 个表。
2.3 YII 框架的应用
随着Web 应用规模的不断扩大,为提高应用开发效率,在项目中经常需要框架[9]。YII 是一个基于组件的高性能PHP 框架,用于开发大型Web 应用[10]。YII 提供了目前Web 2.0 应用开发所需要的几乎一切功能。
作为一个PHP 开发的应用框架,该系统采用WNMP(Windows+Nginx+MYSQL +PHP)集成环境,系统架构如图2 所示。
图2 YII 框架系统构架
2.3.1 应用入口
应用入口包括访问入口、应用控制器、应用组件3 个部分,其主要功能是初始化Web 应用所需组件,并启动YII 框架。
其中访问入口是一个启动脚本文件,其配置如下:
在main.php 中,配置所需要用到的组件及其参数,包括所用数据库组件、分布式缓存组件、域名管理器组件、代码生成器组件(Gii)等,配置文件部分内容如下:
这里考虑到系统规模,设计采用两台计算机运行CMemCache 缓存服务,将经常性访问的数据存入分布式缓存中可以提高系统整体性能。使用成熟的开源数据库MYSQL 可以有效控制系统开发成本。利用可视化的代码生成器Gii,可以自动地生成MVC 代码文件,提高开发效率。
2.3.2 控制器
控制器接受用户输入并调用模型和视图完成用户的需求。控制器是继承CController 的一个类。当用户对其发出请求后,相应的控制器将会被创建,并执行用户请求的动作。
2.3.3 模型
模型用来持久化数据,描述业务规制。一个模型即是一个独立的数据对象,其既可以是数据库中的一个表又可以是一个用户输入表单。这两种数据对象在YII 框架中对应为FormModel(FM)和ActiveRecord(AR)两个对象。
FM 对象是CFormModel 的一个实例,其通常用来收集用户输入,这些数据通常是被收集、使用后就即刻被销毁的,例如用户登录,输入的用户名和密码以用户输入表单的形式提交服务器,YII框架使用FM 对象对其进行收集和处理。
AR 对象是CActiveRecord 的一个实例,其被设计成一个访问数据库的抽象对象,每一个AR对象对应着数据表中的某一字段列数据的集合。通过AR 对象,多种数据库可以通过相同的方式进行访问。
2.3.4 视图
视图是用户看得到的并与其交互的界面。YII 中视图主要是由用户交互组件组成的php 脚本文件,而通过这些脚本文件名,控制器将用户请求应答的数据回传到相应的视图脚本文件中。利用一个特殊的视图类Layout,该视图将公共的头部和尾部内容定义在一个静态文件中,编写视图脚本文件时只需要关注主题内容,可以使Web 应用具有一致的界面风格并减少重复代码量。
3 应用实例及效果分析
3.1 应用实例
该系统已经在某大学研究生实验室成功进行了应用,该系统运行4 个月以来,共计有5 名实验室管理员、13 名研究生导师和56 名研究生试用了该系统。为了节省成本、提高硬件使用效率,系统连同数据库服务器、Web 服务器,以及文件服务器一同被部署在一台主机上。主机放置在研究生多功能实验室中,通过校园网与互联网相连。实验室管理员、研究生导师和研究生既可以通过台式机上网操作,也可以用手机等移动设备无线上网操作该管理系统。
3.2 应用结果分析
该多功能实验室管理系统主页如图3 所示,学术交流功能中学习资料网页截图如图4 所示,设备预约中计算机预约功能网页截图如图5 所示。
图3 多功能实验室管理系统主页界面图
经测试,系统首页面在校园网内的平均响应时间为0.01 s,而查询全部237 名研究生的个人信息时,页面的平均响应时间为0.5 s。因此应用YII 架构可以提高系统的运行速度,满足管理系统要求。
4 结论
在实验室资源严重紧张的情况下,急需将多个功能叠加到一个实验室中,因此构建多功能实验室管理系统是十分必要的。由于手机等移动上网设备日益普及,采用B/S 结构是必然趋势,考虑到动态响应能力、降低成本等各方面因素,该系统采用PHP 开发工具、MYSQL 数据库,以及基于组件的高性能YII 框架。测试结果表明,所构建的基于Web 的多功能实验室管理系统响应快、可扩展性好。多功能实验室管理系统在某研究生实验室应用后,导师和研究生可以随时进行设备和计算机预约,提高了设备和计算机的利用效率,构造了公平和谐的学习和实验室环境。同时也大大降低了实验室管理人员工作量和实验成本。
图4 学术交流功能中学习资料网页截图
图5 设备预约中计算机预约功能网页截图
[1]孟凡奇,曲朝阳,侯松林.SSH 架构在导师实验室综合管理系统开发中的应用[J].计算机应用与软件,2013,30(8):174 -177.
[2]甘小红.高校开放式实验室管理系统的设计与实现[J].中国教育信息化,2010(5):47 -49.
[3]卢慧芬,潘再平,喻强,等. 开放性实验室管理系统的实现与应用[J]. 电气电子教学学报,2005,27(6):76 -78.
[4]卢凤珠,吴达胜,赵丽华.基于C/S 与B/S 模式的实验室管理系统设计与实现[J].宁波大学学报:理工版,2004,17(4):492 -495.
[5]黄雅萍,刘晓强,吴成义.基于MYSQL 和PHP 的分布式事务处理[J]. 东华大学学报:自然科学版,2011,37(1):81 -85.
[6]程伟根,危建国,吴荷红.基于YII 框架的实验室管理系统设计与实现[J].软件导刊,2011,11(11):99-101.
[7]高成.PHP 动态网页建设[M].北京:国防工业出版社,2002:65 -132.
[8]田德振,戴亚平,左哲.基于Web 的远程实验室设计问题研究[J].计算机应用研究,2008,25(10):3181-3183.
[9]张敏,蔡树才,耿艳霞,等.基于ASP.NET 的预约型开放实验室管理系统[J]. 实验技术与管理,2007,24(7):73 -76.
[10]冯祖洪.MYSQL 的分布式数据库访问法[J].计算机应用,2002,22(8):4 -6.