倪红军, 李 霞, 周巧扣, 郭依正
(南京师范大学泰州学院信息工程学院,江苏泰州225300)
高校实验室承担着各种实践教学和科学研究的任务,它既是培养具有实践能力和创新精神的高素质人才的重要基地,也是高校安全管理和事故防控的重点场所。近年来,高校实验室安全事故引起社会广泛关注,通过对事故原因的分析发现,实验室的管理者和使用者缺乏安全防范意识和安全防控能力是导致事故发生的主要因素,而高校实验室的管理和使用者主要是教师和学生,所以加强高校教师和学生的实验室安全教育,提升他们的实验室安全防范意识和防控能力尤为重要[1-2]。实验室安全教育平台是高校开展实验室安全教育、考查教师和学生掌握实验室安全知识的有效载体。
目前,绝大部分高校的实验室安全教育通常分安全知识培训和安全知识考核两个阶段实施。安全知识培训阶段的培训方式主要包括定期邀请专家开设实验室安全专题讲座、新生入学教育课、实验前的实践指导和自主学习等方式。这些培训方式的培训内容较为宽泛和宏观、专业针对性不强,学生处于被动学习状态,达不到理想的培训效果[3-5]。安全知识考核阶段的考试方式主要包括纸质试卷、基于PC 机的Web 网站或基于移动终端设备的专门APP 等方式。这些考试方式需要浪费太多的人力、物力组织考试,或针对不同的平台开发不同的Web 网站和专门的APP,开发难度高、维护成本大,上线运行占用的系统资源多,容易出现卡顿、故障等问题[6]。
2017年1 月9 日微信小程序正式上线,它是一种开发成本较低、不需要下载安装就可以在微信环境中跨平台运行的一种应用程序。本文结合泰州学院的实际情况,充分发挥微信小程序的优势,基于微信小程序开发MINA框架和第三方云数据库服务平台,构建一个针对性强、使用方便灵活、高效通用、集培训和考核于一体的实验室安全教育平台。
微信小程序的基本架构主要包括视图层(View)、逻辑层(App Service)。视图层用来实现渲染页面结构,逻辑层用来实现逻辑处理、数据请求和接口调用,它们在两个进程里执行。视图层和逻辑层通过系统层的JSBridge进行通信,逻辑层把数据变化通知视图层并触发视图层进行页面更新,视图层把触发事件通知逻辑层进行业务处理[7]。具体架构如图1 所示。
图1 微信小程序基本架构
小程序是在微信平台上开发应用系统的新技术,开发人员只需要熟悉JavaScript、CSS 等前端开发技术就可以完成应用系统的开发。相对于原生APP、Web网站来说,借助于微信小程序开发框架提供的云开发技术或第三方云数据库平台,可以不需要购置任何硬件设备、不需要搭建后台服务器、不需要注册域名,就可以开发跨iOS、Android 等平台的应用系统,开发门槛和开发成本都很低。在实际使用时,小程序也不需要下载安装,扫码即用,用完即走,并且不占用移动终端设备的系统资源,系统效率高[8]。
实验室安全教育平台需要将实验室安全知识宣传、培训和考试等相关工作所涉及的业务信息进行整合,构建一套能够适应不同学科和专业需要、培训学习时间灵活和考试方式便携的实验室安全教育平台。实验室安全教育平台建设的最终目的是让实验者方便获得与所做实验相关的安全信息,促进他们安全防范意识和安全防范技能的提升[9-10]。移动互联网时代背景下的实验室安全教育平台发布信息的形式和内容也朝着多元化发展,为了提高实验室安全教育管理者发布信息的效率、方便实验者获取信息的途径,借助微信小程序的天然特性,结合实际情况,构建的实验室安全教育平台用户一般分为3 种:实验者、实验室管理员、系统管理员。实验者是平台上最主要的用户,即需要到实验室进行实验的人员,负责完成实验室管理员分配的学习培训和考试任务;实验室管理员是由各实验中心指定,具体负责本中心实验者的学习培训和考试工作;系统管理员由校级实验室安全管理部门指定,具体负责平台数据的管理[11-12]。
实验室安全教育平台的总体架构主要分为微信小程序客户端、微信服务器端和数据管理中心三大部分。其中微信小程序客户端部分主要利用微信小程序的MINA框架(包括WXML、WXSS 和JavaScript)以及其提供的丰富组件,采用MVC的设计模式完成客户端界面设计和功能实现,小程序客户端与用户(包括管理者和实验者)直接交互[13]。微信服务器端为数据中转站,主要负责将用户请求数据转发至数据管理中心,数据管理中心选用广州市比目网络科技有限公司提供的Bmob后端云数据库服务平台,Bmob 后端云数据库服务平台将微信服务器端推送过来的用户请求数据进行解析,并根据数据类型和内容选择相应的逻辑处理模块进行处理,处理完成的数据进行封装与加密后经微信服务器端转发至微信客户端。实验室安全教育平台的总体架构图如图2 所示。
图2 实验室安全教育平台技术架构图
基于微信小程序的实验室安全教育平台是基于跨平台、便携使用的理念研发的在线学习和考试系统。因此,系统的设计应充分考虑各功能模块的用户体验效果,在保证各个功能模块能够正常运行的前提下,还要关注移动终端设备的特点,设计与移动终端设备相适应的用户交互界面。结合系统需求分析和逻辑业务要求,整个系统由3 个主要功能模块和12 个子功能模块组成,功能结构如图3 所示。
图3 实验室安全教育平台功能结构图
(1)数据管理。系统管理员对院系、用户、题库、试卷和成绩信息等进行管理,以便校级实验室安全管理部门及时了解各院系的实验安全教育进展状况。
(2)任务配置。实验室管理员在平台上及时向需要到本中心参加实验的人员(实验者)发布与中心实验室安全教育相关的讲座通知、活动公告及学习考试内容等,以便实验者有针对性的掌握实验室的安全动态和安全知识,保证实验者进行符合学科和专业特点的实验室安全知识学习和考试。
(3)学习考试。实验者登录平台后,既能明确自己的学习内容和考试任务,也能随时查询包括学习时长、考试次数、题目及标准答案等信息的学习考试记录,以便实验者随时掌握自己的学习考试状态和复习要点,保证学习效果。
一般情况下,不同学科、不同专业的实验室对实验者进行安全教育和考核内容不同,所以在进行实验室安全知识数据库设计时,既要考虑上级行政管理部门对实验室安全教育的要求,也要考虑学校的实际情况和相关规章制度。实验者进入实验室前首先根据实验室管理者设定的学习时长和学习内容进行安全知识学习,学习完成后才能根据实验室管理者设定的开考时间、结束时间、考试时长、考试次数及合格分数等进行考试。学习和考试内容包括通识安全、消防安全、水电安全、化学品安全、生物安全、辐射安全、激光安全和设备安全等安全类知识及相关的法律法规、规章制度、实验室安全教育手册等[14-15]。这些信息主要以数据库形式存储在第三方服务器Bmob 后端云数据库平台,具体包括院系信息表(院系编号、名称、实验室管理员姓名、工号、登录密码)、试卷信息表(试卷、院系编号、开考时间、结束时间、考试时长、选择题数、题分值、判断题数、题分值、合格分数)、学生信息表(学号、密码、姓名、院系编号、学习时长)、安全知识题库表(题目编号、内容、适用院系、题型、选项A、选项B、选项C、选项D、标准答案)、考试成绩表(学号、考试时长、考试时间、考试得分、题目编号)和通知信息表(通知编号、通知标题、发布者工号)。
Bmob是广州市比目网络科技有限公司推出的后端云服务平台,它提供实时数据与文件存储、“云与端”的数据连通等可靠的Serverless云服务。通过该平台可以搭建应用数据库,并提供可视化的云端数据表设计界面,能存储String(字符串)、Number(数值,包括整数和浮点数)、Boolean(布尔值)、Date(日期)、File(文件)、Geopoint(地理位置)、Array(数组)、Object(对象)等多种不同类型的数据。在Bmob 后端云服务平台上,微信小程序开发者成功注册帐号后,就可以创建多个云端数据库,下载对应版本的SDK并将其引入到微信小程序项目的utils文件夹中,并使用如下代码进行初始化后,就可以通过微信服务器端对云端数据库进行类似于本地数据库的增、删、改、查等操作,大大降低微信小程序开发者的开发难度和开发成本。
var Bmob =require('utils/bmob.js');
Bmob.initialize(" Application ID"," REST API Key");
其中,“Application ID”和“REST API Key”字符串的值在Bmob后端云服务平台创建实验室安全教育平台应用后自动生成。
(1)创建微信小程序客户端项目。登录微信公众平台(https:/ /mp.weixin.qq.com),单击页面上“立即注册”按钮,在“请选择注册的帐号类型”页面上选择“小程序”选项后,填入相关信息即完成注册。注册成功后,在“开发设置”选项中获得小程序AppID。每一个小程序对应一个唯一的AppID,打开微信Web 开发者工具,在“新建小程序项目”对话框中输入项目名称、目录和AppID后就可创建一个微信Web开发者工具默认的微信小程序。默认创建的微信小程序包含小程序的启动入口文件app.js 和全局配置文件app.json、小程序的公共样式文件app.wxss 及用于存放页面文件子目录的page目录、用于存放共用程序逻辑库的utils目录;每个页面文件子目录中包括用于构建页面界面的.wxml页面结构文件、用于美化页面界面的.wxss样式表文件、实现页面业务逻辑的.js页面脚本文件和配置当前页面效果的.json页面配置文件。
实验室安全教育平台小程序主要由消息、学习、考试、登录和我页面组成。其中消息页面、学习页面、登录页面和我页面属于tabBar类页面,所以在创建小程序项目时,需要将这4 个页面的wxml 文件添加到app.json全局配置文件中的tabBar配置项中。
(2)考试登录页面。用户在如图4 所示“考试登录”页面的学号、密码框中输入登录信息,单击所在学院输入框在页面底部弹出学院滚动条选择器,选择所在学院后,单击“登录”按钮,可以访问Bmob后端云数据库平台的院系、学生和考试成绩表,并由考试登录页面的业务逻辑判断学号、密码、院系信息的一致性及考试次数有没有超过上限次数5,若信息一致并且没有超过上限次数,用户可以单击页面底部的“学习”或“考试”分别切换到“培训学习”页面或“正式考试”页面;否则调用wx.showModal()函数弹出警告信息,并跳转到“我”页面。
图4 登录页面
(3)培训学习页面。进入如图5 所示的“培训学习”页面,该页面的业务逻辑根据实验室管理员配置的学习任务生成培训学习内容,用户单击“向前学习”和“向后学习”可以在页面的对应位置显示学习题目、题目选项和标准答案,并且累计用户学习时长,在用户单击“返回”后将累计的学习时长更新到学生信息表。
(4)正式考试页面。进入如图6 所示的“正式考试”页面,该页面的业务逻辑首先判断登录用户的学习时长有没有达到试卷信息表中规定的最少学习时长,若没有达到,则自动跳转到“培训学习”页面,否则根据实验室管理员配置的考试任务生成考试试卷,并分别将考试倒计时、题目内容、答案选项分别展示在页面的对应位置,用户可以根据题目选择答案、单击“前一题”向前翻看考试题目、单击“后一题”向后翻看考试题目;在考试时间到或用户单击“交卷”就可以结束本次考试并给出最终考试得分,同时将本次考试相关信息添加到考试成绩表。
图5 培训学习页面
图6 考试页面
(5)其他页面。“消息公告”页面的业务逻辑将实验室管理员发布的讲座通知、活动公告及学习考试内容等从通知信息表取出,并展示在页面上,以便学习者及时了解与实验室的安全动态、安全知识及相关的通知公告等信息。“我”页面用于显示用户累计学习时长、已参加考试信息,该页面的业务逻辑实现从学生信息表中取出累计学习时长显示在页面上,从考试成绩表中取出已参加考试的考试时间、考试时长、考试得分及试卷的题目编号等考试相关信息,其中考试时间、考试时长、考试分数按flex行布局方式显示在页面上,单击页面跳转至“培训学习”页面,并将该试卷的内容按图6 所示样式显示在页面上,以便用户对做题的题目加强复习。
2019 年秋学期,基于微信小程序的实验室安全教育平台在南京师范大学泰州学院投入使用,并面向2019级2700 多名新生开展了实验室安全环保知识教育培训与考试工作,取得一定的效果。平台中最少学习时间限制让实验者在参加正式考试之前,必须按照实验室管理员分配的学习任务,系统地学习应该掌握的实验室安全知识模块,让实验室安全教育不是流于形式,而是一种有针对性的常态化训练,保证了实验室安全教育培训效果。微信小程序本身即用即走和跨平台的特点,让实验者只要借助安装有微信平台的移动终端设备,就可以随时随地进行学习和考试,把参加学习和考试的主动权交给实验者,学习方式更灵活,学习内容更丰富,学习效果更明显。从后台监测数据看,在平台上参加培训练习的学生比率明显提高,参加正式考试一次性通过率达到93.36%,比使用本平台前提高了近10 个百分点,切实提升了实验者的实验室安全防范意识和安全操作技能。
实验室安全是实验室工作的首要任务,针对目前高校实验室安全管理面临的问题,开发一个使用安全、性能稳定、操作简单、灵活方便、功能齐全的实验室安全教育平台,具有较强的实际意义。本文提出的基于微信小程序开发框架与第三方云数据库平台相结合的实验室安全教育平台构建方案,将实验室安全知识的学习与考试融为一体,一方面大大强化了实验者对实验室安全的认识,另一方面可以从根本上有效预防和减少实验室安全事故的发生。