1. 背景
随着时代的发展,我国高校越来越注重培养学生的创新能力、实践能力及团队合作能力等。为此投入了大量的人力、物力、财力搭建实验室,突破传统的纯理论授课模式,让学生有机会自己动手实践,全方面培养学生的综合能力。由于目前实践课程的安排只占很小一部分,导致实验室的一些资源大部分时间都是处于闲置状态。然而,在这个全民创新,全民共享的时代,我们可以充分调动各个实验室现有资源,实现资源共享。并提供授课形式外自由度更大的实验环境,打破枯燥无味实验模式,让学生参与到实验的每一个环节中,即从实验项目想法的提出、项目的确立到项目的一步步跟进。提高学生自主创新能力、学习的积极性和主动性,培养学生的各方面综合能力,同时使资源利用率最大化。与此同时,实验室就成为了一个相对开放发平台,也就加大了管理的难度。此时传统的纯人工记录式的管理模式将显得越发的吃力耗时。利用互联网辅助管理,突破了传统的实验室管理方式,简化了繁杂的工作,一定程度上解放了管理人员,在提高各方面工作效率的同时,可根据不同实验室的实际情况进行不同的调整,使实验室的管理更灵活多样。
为了实现对实验室物品管理,人员出勤管理等基本管理与对实验的基本管理能同时进行,简化学生与老师的工作内容,节省不必要的时间。目前需要一个能自主申请实验项目立项,更新项目进度,展示实验室特点,管理实验室物品及管理实验室基本信息的实验室管理平台。
2. 主要技术分析
2.1. 前后端分离开发模式
传统的MVC模式将应用程序分为:模型、视图、控制器(Model, View Control)三个部分,将业务处理与JSP页面分开了,分工明确,交互过程如图1所示。
MVC模式从上个世纪70年代起延用至今,然而不可否认的是这样经典的模式也是存在缺点的。使用MVC模式时,用户须经过“控制器->模型->视图”这样复杂的过程才能将每次请求的结果展现给用户,这样的过程增加了整体结构的复杂性,并且执行过多的更新操作可能导致运行效率的降低。然而,视图对模型数据的访问效率低,在操作接口时,可能会对未发生变化的数据进行不必要的频繁的访问,造成了不必要的资源浪费。
在对MVC模式的不断改进中,为了使数据的展现过程更加直接,诞生了REST服务即表述性状态传递,一种软件构架风格。从而将MVC模式改进为前后端分离模式如图2所示。
在前后端分离开发模式中,视图和控制器层的工作由前端负责,后台负责模型层和业务处理。前端可以做大部分数据处理工作,减轻了服务器的负担,后台的错误不会直接反应到前端,同时前端的调试

Figure 2. Front and rear separation mode
图2. 前后端分离模式图
不完全依赖于后台可以模拟数据进行调试。
2.2. Node.js
Node.js是一个划时代的技术,它在原有的web前端和后端技术的基础上总结并提炼出了许多新的概念和方法,堪称是十多年来web开发经验的集大成者。同时Node.js是一个可以让JavaScript运行在浏览器之外的平台,底层选用C++和Google Chrome是V8引擎来实现,采用单线程、异步I/O、事件驱动式的程序设计模型。在Node执行JavaScript程序速度快且性能好。
选择用Node.js做后台,使前后端运用的语言统一,降低了学习成本有利于统一公共类库、代码标准化。
2.3. React
React是Facebook在2013年开源在GitHub上的JavaScript库,把用户界面抽象成一个个组件,通过引入JSX语法,组件的复用变得非常容易 [1] 。同时,可以看做是MVC中一个高效的视图层,以组件驱动开发为基础运用组件可组合,可重用,可维护的特点及其所特有的Virtual DOM使页面的渲染更高效。
React的Virtual DOM可将其看成是一颗JavaScript的模拟对象树,用户界面数据改变时,虚拟DOM将会运用内部的React diff算法找出Virtual DOM树中与原DOM树不同的结点,统一更新DOM。Virtual DOM的更新以组件为单位,使其更高效。如图3所示。
2.4. MySQL数据库
MySQL是由David Axmark、Alian Larsson和Michael Widenius三个瑞典人于20世纪九十年代开发
的一个关系型数据库。MySQL自2001年开始引入存储引擎,并于2002年正式宣布MySQL全面支持事务,满足事务ACID属性(Atomicity,原子性、Consistent,一致性、Isolation,隔离性、Durable,持久性),并支持外键约束,使MySQL具备了支持关键应用的最基本特性 [2] 。之后MySQL有陆续支持集合操作、子查询操作、复制特性等,逐渐在功能上具备了支持企业及应用的主要特性。
MySQL并不完美,却足够灵活,能够适应高要求环境,例如Web应用。
3. 系统需求分析
3.1. 总体需求分析
当前的高校实验室种类多,结构复杂,本系统的主要实现的是实验室资源共享、实验项目开展申请及项目基本管理、实验室人员管理等功能,从而做到减轻实验室管理工作负担,提高实验室各方面资源的利用率,调动学生学习热情。由此,通过对相关实验室的管理需求的调查与分析,并结合现代互联网技术与实验室实际运行情况,实验室管理系统应有利于实验室管理者更好,更高效的管理实验室,有利于实验室内部与学生之间的交互。
3.2. 系统功能需求分析
3.2.1. 实验室展示功能
为了激发学生对学术研究的热情,方便学生挑选适合自己的心仪的实验室进行课外实验研究,每个实验室应该充分展现出各自的特色。
3.2.2. 实验室管理功能
实验室管理教师对实验室人员、物品等信息的增删改查,及对实验室的资源的状况的及时更新,使对实验室的管理有序且高效。同时,为了管理者更好的记录及整理实验室信息,对相关信息报表的提取与打印也是不可或缺的一项重要功能。
3.2.3. 用户管理功能
实验室管理云平台中有系统管理员、教师、学生三种不同权限的用户。系统管理员的用户管理功能对实验室系统中人员的权限进行管理,保证了实验室人员的分工和有效的管理。
3.2.4. 实验室公告功能
由于不同的实验室有不同的管理方式、不同的物质资源等,实验室教师可以通过公告通知实验室的物资信息,获奖信息、实验室内部公告通知等,并在发布时选择面对的对象,公开或实验室内部。
3.2.5. 个人信息修改功能
用户注册系统账号时,用户只需填写个人邮箱等少量信息。其余具体信息包括密码则通过个人信息修改功能进行更改,并进行不断的完善。
3.2.6. 实验申请功能
学生可通过系统的实验申请功能,将自己的想法及想进行的研究提交到适合的实验室、老师那里,等待老师的审核,回馈。避免了传统的实验项目申请步骤的繁琐耗时,同时节省了学生与老师两方的时间。
3.2.7. 实验进度跟进功能
当实验通过教师审核立项,将会生成一个全新的项目,为了更好的记录实验进行的情况及得到的相关成果,实验相关成员和老师可以根据实验具体情况对实验进度进行更新,记录下实验的整个过程。同时,有利于更多学生们了解相关的实验或实验室进行的工作内容、有利于实验相关成员在后期对实验进行总结回顾,在不断的总结中提升自我。
3.2.8. 签到功能
用户签到功能将可以帮助实验室教师了解成员的出勤状况及工作内容,系统会将用户的签到数据统计到实验室的签到情况表中,实验室教师可以在实验室管理界面提取并打印需要时间段内的成员出勤情况。
3.3. 系统的主要模块组成
根据实验室管理系统的主要功能该系统主要分为以下几个模块:
系统管理模块:在该模块用户具有系统的最高管理权限,可对其余用户进行权限管理,且享有系统所有操作权限。
实验室管理模块:该模块提供实验室老师用户对实验室的基本信息、成员信息、物品信息等进行基本的管理,同时用户可在此模块发布实验室通知公告。
实验项目模块:该模块提供学生对实验项目的申请,由对应的教师进行审核、立项、并有实验成员对实验进度进行实时的更新。
展示模块:该模块展示各个实验室的环境、成果等。
4. 系统概要设计
4.1. 系统结构设计
通过需求分析,该实验室管理平台划分为十一个功能模块,如图4所示。
4.2. 数据库设计
在完成平台的需求分析和详细设计后进行数据库详细设计工作。实验室管理云平台包括的数据有用户信息、实验室信息、物品信息等。如下为数据库详细设计表。数据库详细设计如下表1。
5. 系统详细设计与实现
5.1. 开发环境
在进行开发时,根据实际情况,采用合适的开发工具,该系统的开发环境如表2开发环境表所示。
5.2. 实现
在完成所有前期准备工作后,进入平台的功能实现环节,本小节将对管理员、教师、学生三个模块

Table 1. Detailed design of the database
表1. 数据库详细设计表

Table 2. System development environment
表2. 系统开发环境
所实现的用户管理、实验室管理、项目申请、项目审核等功能。用户登录后,系统对用户的身份判断,对不同权限的用户开放不同的功能模块以便用户进行操作。系统管理员拥有最大权限,可对系统中的所有信息进行管理,教师用户可对其所属的实验室和相应的实验项目进行管理,学生可对自己的基本信息和所属项目进行相应的管理。
6. 系统测试
系统测试即在特定的环境下对开发出的软件系统进行操作,评估系统是否能满足设计要求。分模块随系统进行测试:功能测试,性能测试。通过测试发现了一些小BUG并进行修复,最终结果证明系统的功能、性能达到了需求。
7. 结束语
文章提出实验室管理平台的设计方案,所预期的成果,并选择了合适的开发环境与开发工具,最终开发出来的系统通过测试,满足了设计要求。该平台通过对日常实验室繁琐工作的操作简单化、系统化,使学生与教师两方的时间安排更自由。而系统针对实验室的展示功能,可以帮助学生更好的了解学校的实验室,激发学生对学术研究或实验实践的热情,积极的参与到其中,充分利用课余的时间提升自己的各方面能力。
基金项目
国家级大学生创新创业训练计划项目(No.201811080008)。
NOTES
*第一作者。
#通信作者。