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