李查瑋 吳艷霞 羅棋 周洋
摘要:目前地震前兆觀測儀器學(xué)科種類繁多,儀器組成復(fù)雜、備機(jī)備件信息不易及時完善等現(xiàn)象較為普遍。為提高儀器管理運維人員工作效率,實現(xiàn)地震前兆觀測儀器信息化管理,采用微信小程序應(yīng)用開發(fā)方式,通過分析華南片區(qū)儀器運維管理功能需求,研究微信小程序關(guān)鍵技術(shù)并比較應(yīng)用程序性能,發(fā)現(xiàn)微信小程序具有占用內(nèi)存小、開發(fā)框架簡單、便于后期維護(hù)升級等優(yōu)勢,在地震前兆觀測儀器管理信息化工作中具有一定的實用性。
關(guān)鍵詞:微信小程序;儀器管理平臺;信息化管理;數(shù)據(jù)交互
DOI:10.11907/rjdk.192058 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP319文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2020)006-0117-04
0 引言
地震監(jiān)測預(yù)報是開展地震科學(xué)研究的重要基礎(chǔ),地震前兆觀測儀器的順利運行是地震監(jiān)測的重要保證。由于地震前兆監(jiān)測儀器涉及流體、形變、地磁、地電、重力等多個學(xué)科,儀器種類及使用周期各不相同,為了完善儀器管理體制,搭建一個系統(tǒng)的儀器管理平臺十分必要。
目前常用的儀器管理平臺主要有兩種。一種是由中國地震臺網(wǎng)中心開發(fā)設(shè)計的基于C/S框架結(jié)構(gòu)的“前兆儀器管理”客戶端,該客戶端功能齊全,界面清晰,可為儀器管理運維提供便利。但是客戶端必須安裝后才能使用,且后期維護(hù)成本高,軟件升級需重新安裝;另一種是基于網(wǎng)頁的B/S框架結(jié)構(gòu)設(shè)計,以江蘇省地震局地震監(jiān)測儀器綜合管理系統(tǒng)為例,其應(yīng)用MySQL數(shù)據(jù)庫并采用PHP語言開發(fā),在網(wǎng)頁端便可實現(xiàn)儀器管理功能,但在日常管理及野外或臺站調(diào)用查詢儀器時,僅使用網(wǎng)頁瀏覽器不能滿足所有要求。
因此,為提高儀器管理運維工作效率,儀器管理平臺需不受地理因素限制,并能從移動端對地震儀器庫存信息和使用狀態(tài)進(jìn)行實時查詢與修改。然而移動端應(yīng)用受制于手機(jī)系統(tǒng),這不利于軟件功能擴(kuò)展和后期維護(hù)升級。
為了解決上述問題,本文采取基于微信小程序的應(yīng)用開發(fā)方式,一方面微信小程序依托于微信客戶端,能夠在微信內(nèi)獲取和傳播;另一方面,微信小程序界面友好高效,可最大程度適應(yīng)和支持不同需求。
1平臺概述
基于微信小程序的地震儀器管理平臺主要由數(shù)據(jù)應(yīng)用層、數(shù)據(jù)存儲層和交互接口層組成,其結(jié)構(gòu)如圖l所示。
1.1 數(shù)據(jù)應(yīng)用層
數(shù)據(jù)應(yīng)用主要體現(xiàn)在:①個人中心用戶管理、用戶密碼管理;②儀器庫存列表顯示;③儀器出入庫管理,利用小程序端和服務(wù)器填寫和提交數(shù)據(jù)。
1.2數(shù)據(jù)存儲層
數(shù)據(jù)存儲層涉及數(shù)據(jù)庫應(yīng)用,MySQL數(shù)據(jù)庫可利用SQL查詢算法提高數(shù)據(jù)查詢速度。MySQL數(shù)據(jù)庫既可作為單獨的應(yīng)用程序,在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中應(yīng)用,也可作為庫文件引入到其它軟件中。
1.3 交互接口層
微信小程序?qū)嶋H上是客戶端界面,通過與服務(wù)器的交互才能顯示和應(yīng)用數(shù)據(jù)。在微信小程序內(nèi)的數(shù)據(jù)交互如圖2所示,wxml為視圖層,功能是讀取邏輯層數(shù)據(jù)并將其轉(zhuǎn)換成視圖,同時將視圖層產(chǎn)生的事件發(fā)送到邏輯層;js為邏輯層,功能是處理數(shù)據(jù),并將處理后的數(shù)據(jù)發(fā)送給視圖層;api為交互層,它是微信小程序特有的調(diào)用接口,其功能是充分利用微信信息和功能,如獲取用戶信息、本地存儲等功能。
微信小程序客戶端、服務(wù)器和數(shù)據(jù)庫之間的數(shù)據(jù)交互實現(xiàn)流程如圖3所示。
2 平臺設(shè)計
本文基于華南片區(qū)維修中心儀器運維管理需求進(jìn)行平臺設(shè)計。華南片區(qū)維修中心負(fù)責(zé)6?。ê?、湖北、廣東、廣西、江西、海南)前兆儀器維修維護(hù)工作,保障華南片區(qū)前兆儀器設(shè)備運行連續(xù)率與運行質(zhì)量。目前有備機(jī)及相關(guān)備件共計100余套,涉及形變、地磁、地電、地下流體、重力等多個學(xué)科,后期計劃增加更多觀測儀器。
2.1 功能需求設(shè)計
基于微信小程序的地震儀器管理平臺需完成4種功能:①查詢功能,具體設(shè)置為搜索功能,指對數(shù)據(jù)庫地震儀器進(jìn)行搜索查詢,如儀器編號、學(xué)科分類、儀器狀態(tài)、使用周期等;②添加功能,具體為新增入庫,即將新采購增加的儀器備機(jī)備件添加到數(shù)據(jù)庫;③刪除功能,具體為新增出庫,即將已報廢和使用周期超過年限的儀器更換后從數(shù)據(jù)庫中刪除;④修改功能,指修改并保存數(shù)據(jù)庫內(nèi)地震儀器信息與用戶信息。
系統(tǒng)功能架構(gòu)設(shè)計如圖4所示。
2.2 功能詳細(xì)設(shè)計與說明
2.2.1 用戶中心
地震儀器管理平臺基于微信的開放平臺接口,用戶授權(quán)微信小程序獲取個人信息,即可完成登錄,登錄后可以在用戶中心(我的)界面中修改用戶名、單位、聯(lián)系方式及用戶密碼,其界面如圖5所示。
2.2.2 搜索與查看(庫存)
顯示數(shù)據(jù)庫中的部分?jǐn)?shù)據(jù)信息,利用搜索框搜索關(guān)鍵詞并顯示結(jié)果。如圖6和圖7所示,點擊數(shù)據(jù)即可轉(zhuǎn)到對應(yīng)完整的數(shù)據(jù)顯示頁面。
2.2.3 儀器增添和刪除(首頁)
首頁主要有3個功能接口:新增人庫、新增出庫和庫存列表。新增入庫的功能是將儀器信息添加進(jìn)數(shù)據(jù)庫,儀器信息包括儀器名稱、儀器編號、學(xué)科分類、入庫人和入庫時間,新增出庫的功能是將儀器出庫信息添加進(jìn)數(shù)據(jù)庫,出庫信息主要包括出庫人和出庫時間及出庫去向。庫存列表顯示數(shù)據(jù)庫儀器庫存狀態(tài)及儀器基本信息。
3 平臺關(guān)鍵技術(shù)分析
小程序正常運行關(guān)鍵在于數(shù)據(jù)交互,主要包含兩個方面:客戶端與服務(wù)器交互、服務(wù)器與數(shù)據(jù)庫交互。因此,平臺關(guān)鍵技術(shù)主要體現(xiàn)在數(shù)據(jù)交互方面。微信小程序客戶端與服務(wù)端交互流程及原理如圖10所示。
3.1 客戶端與服務(wù)器交互
在傳統(tǒng)Web應(yīng)用中,客戶端與服務(wù)器的交互主要利用ajax長連接輪詢實現(xiàn)。輪詢指每隔一定的時間間隔,發(fā)送HTTP請求,請求獲取數(shù)據(jù)。該方式雖然可保證實時性,但仍存在弊端:首先,由于不間斷地產(chǎn)生HTTP請求,過多的HTTP請求會占用帶寬,導(dǎo)致內(nèi)存資源調(diào)配不當(dāng),加速手機(jī)耗電,使服務(wù)器響應(yīng)頻繁;其次,并不是每一個HTTP請求均會返回數(shù)據(jù)變化,因此會造成請求利用率低。
為解決上述問題,本文采取WebSocket通信技術(shù)。WebSocket是客戶端與服務(wù)器之間的一條特設(shè)通道,通過請求建立連接,可從通道中實時獲取服務(wù)器數(shù)據(jù)。在微信中,WebSocket接口由HTTP協(xié)議升級而來,可實現(xiàn)瀏覽器與服務(wù)器全雙工通信。微信小程序中WebSocket接口函數(shù)及其定義如表1所示。
3.2 服務(wù)器與數(shù)據(jù)庫交互
本文服務(wù)器與數(shù)據(jù)庫交互采用nodejs框架,Node.is是一個基于Chrome V8引擎的JavaScript運行環(huán)境。NodeJs作為服務(wù)器端JavaScript的運行平臺,JavaScript是一個事件驅(qū)動的語言,NodeJs可利用該特點編寫出可拓展性高的服務(wù)器。
利用node中的mysql模塊與數(shù)據(jù)庫連接,其交互流程如圖11所示。
4 平臺測試
系統(tǒng)測試需遵循相關(guān)原則,小程序測試與應(yīng)用軟件測試相同,需從功能、性能、兼容性和后端接口等方面進(jìn)行測試。
功能測試即測試微信小程序的設(shè)計是否符合功能需求。華南片區(qū)地震儀器管理平臺微信小程序可實現(xiàn)儀器入庫、出庫、庫存查找及相關(guān)儀器信息修改等功能,基本滿足功能需求。
兼容性測試需從操作系統(tǒng)兼容性、屏幕兼容性兩個方面進(jìn)行:①操作系統(tǒng)兼容性測試。由于微信小程序依托于微信,因此只需微信版本符合要求,小程序即可在手機(jī)操作系統(tǒng)上使用;②屏幕兼容性測試。微信小程序定義了一個新的尺寸單位rpx(responsive pixel),可適配不同尺寸的屏幕,若頁面定義對象單位是rpx,即可在不同屏幕上適配。在實際測試過程中,通過在不同型號的手機(jī)上運行小程序,以iPhone6s(375*667)、iPhone7Plus(414*736)、iPhoneX(375*812)和華為mate9(412*732)為例,其實驗效果如圖12所示,并沒有出現(xiàn)異常拉伸和壓縮畫面的現(xiàn)象。
本文性能測試主要考慮客戶端性能,包括頁面白屏?xí)r間、首屏?xí)r間、資源占用、頁面渲染時間等,由于微信小程序開發(fā)軟件中沒有集成測試功能,所以本次測試采用編寫循環(huán)腳本的方式測試小程序點擊事件和滑動事件,在運行過程中通過系統(tǒng)電源、內(nèi)存和流量監(jiān)控查看手機(jī)CPU占用情況、電池溫度和流量。測試發(fā)現(xiàn),微信小程序測試運行相關(guān)事件時,手機(jī)CPU占用不到1%,遠(yuǎn)小于手機(jī)APP運行占用率。
后端接口測試體現(xiàn)在小程序數(shù)據(jù)上傳下載中,由于可以實現(xiàn)數(shù)據(jù)庫增查刪改操作,因此后端接口的數(shù)據(jù)交互可順利進(jìn)行。
5 結(jié)語
本文設(shè)計了一種基于微信小程序的地震管理平臺,根據(jù)地震前兆儀器管理的實際需求,結(jié)合微信小程序傳播方便、用戶基數(shù)大的特點,使地震儀器管理平臺可移動使用、隨時查詢,實現(xiàn)了信息化和數(shù)字化管理。本文設(shè)計背景是華南片區(qū)儀器運維管理,目前數(shù)據(jù)量較小。因此下一步研究重點是拓展儀器管理平臺微信小程序應(yīng)用范圍,為全國儀器管理運行奠定基礎(chǔ)。