俞恩軍 吳飛青 俞明輝 鄭銀盛 張豪
【摘 要】針對(duì)目前我校實(shí)驗(yàn)設(shè)備管理現(xiàn)狀及存在的問(wèn)題,利用二維碼技術(shù),實(shí)現(xiàn)實(shí)驗(yàn)設(shè)備信息化管理。本文首先介紹了系統(tǒng)架構(gòu)及工作原理,并提出我?;诙S碼技術(shù)的實(shí)驗(yàn)設(shè)備管理信息化系統(tǒng)設(shè)計(jì)思路并實(shí)現(xiàn),以期為其他學(xué)校的實(shí)驗(yàn)設(shè)備管理信息化提供參考。
【關(guān)鍵詞】實(shí)驗(yàn)室;設(shè)備管理;二維碼;系統(tǒng)設(shè)計(jì)
中圖分類(lèi)號(hào): TP311.52 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2018)13-0018-002
DOI:10.19694/j.cnki.issn2095-2457.2018.13.008
0 引言(前言)
高校的實(shí)驗(yàn)設(shè)備為學(xué)校的教學(xué)、科研提供了良好的物質(zhì)保障,具有種類(lèi)雜、分布廣、數(shù)量多、使用和更新速度頻繁等特點(diǎn),因此如何提高實(shí)驗(yàn)設(shè)備的管理效率成為一項(xiàng)新的課題。隨著信息技術(shù)的快速發(fā)展,傳統(tǒng)的純手工管理和簡(jiǎn)單信息化方式已經(jīng)不能適應(yīng)時(shí)代的要求[1-2]。也有些高校在實(shí)驗(yàn)設(shè)備管理中使用信息系統(tǒng),主要是某個(gè)設(shè)備狀態(tài)信息展示和查詢(xún)等[3-7],既沒(méi)有結(jié)合教學(xué)和科研的實(shí)際需求,也沒(méi)有考慮實(shí)驗(yàn)設(shè)備的實(shí)時(shí)信息、后續(xù)的實(shí)驗(yàn)室開(kāi)放和信息共享等情況[8-10]。本文基于目前流行的二維碼信息技術(shù),構(gòu)建新型的實(shí)驗(yàn)設(shè)備管理系統(tǒng),結(jié)合我校的實(shí)驗(yàn)設(shè)備管理基本流程,實(shí)現(xiàn)實(shí)驗(yàn)設(shè)備的高效利用和信息化管理。
1 系統(tǒng)架構(gòu)及工作原理
軟件開(kāi)發(fā)的整體架構(gòu)主要分為B/S(Browser/Server)架構(gòu)與C/S(Client/Server)架構(gòu)。B/S為瀏覽器/服務(wù)器結(jié)構(gòu),界面顯示邏輯放在瀏覽器,事務(wù)處理邏輯則在Web Server。C/S為客戶(hù)端/服務(wù)器結(jié)構(gòu),界面表示、事務(wù)處理邏輯放在客戶(hù)端,服務(wù)端主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)管理。根據(jù)本系統(tǒng)的目標(biāo),采用C/S結(jié)構(gòu)(如圖1),由移動(dòng)端(手機(jī))、Internet網(wǎng)或移動(dòng)通信網(wǎng)及服務(wù)器端構(gòu)成。
基于二維碼技術(shù)的實(shí)驗(yàn)設(shè)備管理設(shè)計(jì),包括設(shè)備信息的二維碼生成、手機(jī)端軟件設(shè)計(jì)和服務(wù)器端的網(wǎng)頁(yè)和數(shù)據(jù)庫(kù)設(shè)計(jì)。首先通過(guò)二維碼軟件生成設(shè)備信息對(duì)應(yīng)的二維碼,作為設(shè)備的標(biāo)簽,管理員或使用者通過(guò)手機(jī)軟件對(duì)設(shè)備標(biāo)簽上的二維碼進(jìn)行掃描,通過(guò)對(duì)二維碼上的信息進(jìn)行解析鏈接到服務(wù)器上的網(wǎng)頁(yè),通過(guò)網(wǎng)頁(yè)實(shí)現(xiàn)服務(wù)器中的數(shù)據(jù)庫(kù)與手機(jī)端軟件的信息進(jìn)行交互并顯示。
2 二維碼的教學(xué)設(shè)備管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2.1 系統(tǒng)功能設(shè)計(jì)
基于二維碼技術(shù)的實(shí)驗(yàn)設(shè)備管理系統(tǒng)設(shè)計(jì)主要包含兩部分:手機(jī)端的App設(shè)計(jì)和服務(wù)器端軟件設(shè)計(jì)。手機(jī)端App設(shè)計(jì)主要包含以下幾個(gè)功能,根據(jù)權(quán)限管理分為管理員權(quán)限和普通用戶(hù)權(quán)限(如圖2)。管理員通過(guò)手機(jī)App登陸設(shè)備管理信息系統(tǒng),所有設(shè)備的信息查詢(xún)(設(shè)備編號(hào)、設(shè)備名稱(chēng)、設(shè)備型號(hào)、所屬研究所、使用地點(diǎn)、設(shè)備狀態(tài)、借用人、管理員、使用統(tǒng)計(jì)、購(gòu)買(mǎi)日期、生產(chǎn)廠家、出廠編號(hào)、報(bào)廢時(shí)間等)及修改、新設(shè)備的入庫(kù)、教師設(shè)備借用審核、學(xué)生網(wǎng)上預(yù)約審核、設(shè)備清查和服務(wù)器的設(shè)備報(bào)廢時(shí)間到期提醒等;普通用戶(hù)通過(guò)手機(jī)App軟件掃描設(shè)備二維碼可以查看設(shè)備的基本信息(設(shè)備名稱(chēng)、設(shè)備的位置、設(shè)備狀態(tài)、設(shè)備功能、設(shè)備的教學(xué)項(xiàng)目及教學(xué)時(shí)間等),設(shè)備的借用申請(qǐng)、網(wǎng)上預(yù)約和解除、設(shè)備的報(bào)修等。從而實(shí)現(xiàn)對(duì)我校實(shí)驗(yàn)設(shè)備進(jìn)行規(guī)范、高效、便捷的管理。
2.2 手機(jī)端App設(shè)計(jì)
設(shè)備管理信息系統(tǒng)手機(jī)客戶(hù)端的App開(kāi)發(fā)是基于Android操作系統(tǒng)和Java語(yǔ)言開(kāi)發(fā)的,軟件使用Android Studio進(jìn)行開(kāi)發(fā)。其中g(shù)radle版本選用3.0.1,最低兼容安卓版本使用技術(shù)較多且功能相對(duì)更加完善的Android 4.1,采用Native App + Web App架構(gòu)、MVC(Model-View-Controller)開(kāi)發(fā)設(shè)計(jì)模式,包含了界面展現(xiàn)、業(yè)務(wù)邏輯、數(shù)據(jù)模型3個(gè)部分。其中客戶(hù)端的界面開(kāi)發(fā)采用使用操作系統(tǒng)的API,通信部分通過(guò)HTTP協(xié)議提供的JSON數(shù)據(jù)接口完成實(shí)時(shí)數(shù)據(jù)發(fā)送接收。標(biāo)識(shí)設(shè)備信息的二維碼碼制采用Data Matrix碼。
界面遵從Material Design設(shè)計(jì),使用support.v7.widget中的 toolbar組件,其中左側(cè)按鈕來(lái)實(shí)現(xiàn)左側(cè)菜單drawer的打開(kāi)。在主界面右下方放置floating button來(lái)進(jìn)入由ZXing支持的掃描二維碼界面。
界面設(shè)計(jì)中,對(duì)單獨(dú)的組件單獨(dú)編寫(xiě)XML文件,最后在所需的界面中整合,大大提高了修改時(shí)的便捷性與各組件間的獨(dú)立性。
在規(guī)范二維碼內(nèi)容方面,為保持app的專(zhuān)一性,使用JAVA中字符串相關(guān)函數(shù)來(lái)過(guò)濾非試驗(yàn)設(shè)備內(nèi)容的二維碼。掃描正確二維碼后截取所需內(nèi)容,在新的活動(dòng)中使用Webview來(lái)載入正確的網(wǎng)址。為了在一次掃描后更快進(jìn)入下一次,在新界面中繼續(xù)加載主界面的drawer按鈕、界面與掃描按鈕。
在網(wǎng)址訪問(wèn)控制方面,使用HTML DOM 中的userAgent來(lái)判斷訪問(wèn)者的來(lái)源。實(shí)現(xiàn)方法為通過(guò)自定義的UA標(biāo)識(shí)來(lái)判斷是否來(lái)自于實(shí)驗(yàn)設(shè)備管理系統(tǒng)APP的方位請(qǐng)求,在Webview中設(shè)置即可完成,而在網(wǎng)頁(yè)端,若無(wú)已設(shè)置的UA表示,則自動(dòng)跳轉(zhuǎn)至APP下載頁(yè)面。使用上述方法,一方面可以對(duì)登陸信息及網(wǎng)頁(yè)源碼做有效保護(hù),另一方面完全阻止了其他非本app的訪問(wèn)。
設(shè)備管理信息系統(tǒng)手機(jī)客戶(hù)端的App功能主要包括:掃描二維碼的識(shí)別與判斷,對(duì)二維碼內(nèi)容的截取,載入正確的web app網(wǎng)址以對(duì)應(yīng)不同的功能,提供正確的UA標(biāo)識(shí)。具體操作界面如圖5所示。
2.3 服務(wù)器端軟件設(shè)計(jì)
服務(wù)器端軟件設(shè)計(jì)包括PHP網(wǎng)頁(yè)服務(wù)器交互設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)。
PHP版本選用5.6,為建立動(dòng)態(tài)網(wǎng)頁(yè),基本思路為在H5網(wǎng)頁(yè)中插入PHP標(biāo)簽以連接數(shù)據(jù)庫(kù)與獲取呈現(xiàn)數(shù)據(jù)。而為在App上實(shí)現(xiàn)登錄功能,在App中使用http請(qǐng)求發(fā)送用戶(hù)名密碼,在通過(guò)用于驗(yàn)證的PHP反饋得到登陸結(jié)果。
PHP登陸中使用session保存用戶(hù)信息,在之后的權(quán)限驗(yàn)證、預(yù)約信息獲取中使用。在網(wǎng)址的處理方面,通過(guò)PHP中的GET方法,可以有效避免多個(gè)設(shè)備多個(gè)網(wǎng)址的繁雜情況。由于在數(shù)據(jù)庫(kù)中每個(gè)設(shè)備對(duì)應(yīng)設(shè)置一個(gè)唯一不可重復(fù)的主鍵(設(shè)備編號(hào)num),通過(guò)在URL中使用‘?num=的方法,即可在一個(gè)源代碼相同的PHP中顯示不同的數(shù)據(jù)。而在提交數(shù)據(jù)的action中,通過(guò)POST方法,在指向的地址中同樣傳入設(shè)置的主鍵num,即可在用于更新修改數(shù)據(jù)的PHP中同樣避免上述情況。如此大大減少了人為的修改校對(duì)時(shí)間而且在二維碼中只需要有對(duì)應(yīng)能得到主鍵num的字符,即可進(jìn)入對(duì)應(yīng)的設(shè)備頁(yè)。
在網(wǎng)頁(yè)設(shè)備圖片的選擇顯示方面,由于圖片通常較小且數(shù)量較與設(shè)備較少,另一方面考慮到載入速度,故而選擇儲(chǔ)存在服務(wù)器端而非數(shù)據(jù)庫(kù)。而通過(guò)使用主鍵num來(lái)唯一確定圖片(使用PHP中字符變量的拼接從而得到圖片文件路徑),可以有效代替在數(shù)據(jù)庫(kù)儲(chǔ)存路徑的方法,精簡(jiǎn)表中的字段數(shù)量。
為使得代碼方便修改、PHP與H5分明且美觀。應(yīng)盡可能使得PHP標(biāo)簽短,而不是一味的對(duì)H5的使用echo函數(shù)。雖然也能使得網(wǎng)頁(yè)功能正常,但由于echo函數(shù)中對(duì)單雙引號(hào)的判斷機(jī)制,H5部分也要做相應(yīng)的不利于后續(xù)修改的改變。
其中數(shù)據(jù)庫(kù)的連接,增查改刪均使用Mysqli,此擴(kuò)展一方面繼續(xù)支持老版本,另一方面可以完整使用對(duì)4.1以上的Mysql功能。連接數(shù)據(jù)庫(kù)成功后,使用mysqli_fetch_array函數(shù)對(duì)表中數(shù)據(jù)實(shí)現(xiàn)調(diào)用,在函數(shù)中傳入MYSQL_BOTH參數(shù),可以得到一個(gè)同時(shí)包含關(guān)聯(lián)和數(shù)字索引的數(shù)組。
數(shù)據(jù)庫(kù)設(shè)計(jì):數(shù)據(jù)庫(kù)作為系統(tǒng)信息的存儲(chǔ)部分,必須對(duì)其進(jìn)行較好的設(shè)計(jì)和管理才能保證信息的安全和系統(tǒng)的正常運(yùn)行。Mysql是Web應(yīng)用方面最好的rdbms(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件之一。關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就加快了速度并提高了靈活性。Mysql數(shù)據(jù)庫(kù)既可以在本地進(jìn)行管理,也可以通過(guò)php myadmin在web接口進(jìn)行管理。為實(shí)現(xiàn)用戶(hù)的不同權(quán)限,把用戶(hù)權(quán)限寫(xiě)在數(shù)據(jù)庫(kù)中[15],當(dāng)用戶(hù)登錄時(shí),從數(shù)據(jù)庫(kù)中讀取出自己的權(quán)限,然后把權(quán)限放在會(huì)話(huà)中,用戶(hù)可以有多項(xiàng)權(quán)限,也可被分配角色。角色權(quán)限指派表有兩個(gè)字段:角色I(xiàn)D和權(quán)限ID,一個(gè)角色在這里有多條記錄,代表這個(gè)角色有多個(gè)權(quán)限。用戶(hù)權(quán)限指派表有3個(gè)字段:用戶(hù)ID、權(quán)限ID和角色I(xiàn)D,權(quán)限ID和角色I(xiàn)D的一條記錄只有一個(gè)有效,一個(gè)用戶(hù)有多條記錄,對(duì)應(yīng)不同的權(quán)限。
3 結(jié)論
通過(guò)二維碼技術(shù)對(duì)實(shí)驗(yàn)室管理軟件的開(kāi)發(fā)和應(yīng)用,基于二維碼技術(shù)和數(shù)據(jù)庫(kù)的支撐,設(shè)計(jì)了基于二維碼的實(shí)驗(yàn)教學(xué)設(shè)備管理系統(tǒng)。通過(guò)手機(jī)App掃描設(shè)備二維碼來(lái)查閱數(shù)據(jù)庫(kù)并及時(shí)更新設(shè)備信息,可以準(zhǔn)確地獲得設(shè)備的工作狀態(tài)和存放地址,清楚設(shè)備的運(yùn)行狀態(tài),實(shí)現(xiàn)設(shè)備的有效管理,為其他實(shí)驗(yàn)室信息化管理提供參考。今后還可把設(shè)備通過(guò)物聯(lián)網(wǎng)實(shí)現(xiàn)實(shí)驗(yàn)數(shù)據(jù)的共享與開(kāi)放等。
【參考文獻(xiàn)】
[1]曹威,姚湘娥.高校實(shí)驗(yàn)室設(shè)備管理系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[J].技術(shù)與創(chuàng)新管理,2008,29(3):231-234.
[2]錢(qián)泉,康黎明,孟娜.實(shí)驗(yàn)室儀器設(shè)備管理問(wèn)題的分析和解決途徑[J].黑龍江教育,2011(1):47-49.
[3]關(guān)淳,王培軍,成岳鵬.基于B/S模式的實(shí)驗(yàn)室設(shè)備維修管理系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(6):221-223.
[4]華鑫.基于二維碼技術(shù)的實(shí)驗(yàn)室設(shè)備管理系統(tǒng)的研究與實(shí)現(xiàn)[D].南昌:南昌大學(xué),2015.
[5]曹威,姚湘娥.高校實(shí)驗(yàn)室設(shè)備管理系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[J].技術(shù)與創(chuàng)新管理,2008,29(3):231-234.
[6]賴(lài)力斌.基于ASP的高校實(shí)驗(yàn)設(shè)備管理系統(tǒng)的設(shè)計(jì)[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,25(5):503-505.
[7]王海波.學(xué)校設(shè)備管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2006.
[8]張昕明,朱勇.高校實(shí)驗(yàn)室綜合管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2009,26(12):91-92.
[9]賴(lài)力斌.基于ASP的高校實(shí)驗(yàn)設(shè)備管理系統(tǒng)的設(shè)計(jì)[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,25(5):503-505.
[10]古曉艷,夏志強(qiáng).基于二維碼的高校教學(xué)設(shè)備管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2017,44(6):523-525,556
[11]李民.基于手機(jī)App應(yīng)用的高校實(shí)驗(yàn)室設(shè)備管理系統(tǒng)的設(shè)計(jì)淺析[J].工業(yè)和信息化教育.2016,3:92-94.