倪紅軍, 李 霞, 周巧扣, 郭依正
(南京師范大學泰州學院信息工程學院,江蘇泰州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 個百分點,切實提升了實驗者的實驗室安全防范意識和安全操作技能。
實驗室安全是實驗室工作的首要任務,針對目前高校實驗室安全管理面臨的問題,開發一個使用安全、性能穩定、操作簡單、靈活方便、功能齊全的實驗室安全教育平臺,具有較強的實際意義。本文提出的基于微信小程序開發框架與第三方云數據庫平臺相結合的實驗室安全教育平臺構建方案,將實驗室安全知識的學習與考試融為一體,一方面大大強化了實驗者對實驗室安全的認識,另一方面可以從根本上有效預防和減少實驗室安全事故的發生。