您好, 访客   登录/注册

基于微信小程序的地震仪器管理平台研究

来源:用户上传      作者:

  摘要:目前地震前兆观测仪器学科种类繁多,仪器组成复杂、备机备件信息不易及时完善等现象较为普遍。为提高仪器管理运维人员工作效率,实现地震前兆观测仪器信息化管理,采用微信小程序应用开发方式,通过分析华南片区仪器运维管理功能需求,研究微信小程序关键技术并比较应用程序性能,发现微信小程序具有占用內存小、开发框架简单、便于后期维护升级等优势,在地震前兆观测仪器管理信息化工作中具有一定的实用性。
  关键词:微信小程序;仪器管理平台;信息化管理;数据交互
  DOI:10.11907/rjdk.192058 开放科学(资源服务)标识码(OSID):
  中图分类号:TP319文献标识码:A 文章编号:1672-7800(2020)006-0117-04
  0 引言
  地震监测预报是开展地震科学研究的重要基础,地震前兆观测仪器的顺利运行是地震监测的重要保证。由于地震前兆监测仪器涉及流体、形变、地磁、地电、重力等多个学科,仪器种类及使用周期各不相同,为了完善仪器管理体制,搭建一个系统的仪器管理平台十分必要。
  目前常用的仪器管理平台主要有两种。一种是由中国地震台网中心开发设计的基于C/S框架结构的“前兆仪器管理”客户端,该客户端功能齐全,界面清晰,可为仪器管理运维提供便利。但是客户端必须安装后才能使用,且后期维护成本高,软件升级需重新安装;另一种是基于网页的B/S框架结构设计,以江苏省地震局地震监测仪器综合管理系统为例,其应用MySQL数据库并采用PHP语言开发,在网页端便可实现仪器管理功能,但在日常管理及野外或台站调用查询仪器时,仅使用网页浏览器不能满足所有要求。
  因此,为提高仪器管理运维工作效率,仪器管理平台需不受地理因素限制,并能从移动端对地震仪器库存信息和使用状态进行实时查询与修改。然而移动端应用受制于手机系统,这不利于软件功能扩展和后期维护升级。
  为了解决上述问题,本文采取基于微信小程序的应用开发方式,一方面微信小程序依托于微信客户端,能够在微信内获取和传播;另一方面,微信小程序界面友好高效,可最大程度适应和支持不同需求。
  1平台概述
  基于微信小程序的地震仪器管理平台主要由数据应用层、数据存储层和交互接口层组成,其结构如图l所示。
  1.1 数据应用层
  数据应用主要体现在:①个人中心用户管理、用户密码管理;②仪器库存列表显示;③仪器出入库管理,利用小程序端和服务器填写和提交数据。
  1.2数据存储层
  数据存储层涉及数据库应用,MySQL数据库可利用SQL查询算法提高数据查询速度。MySQL数据库既可作为单独的应用程序,在客户端服务器网络环境中应用,也可作为库文件引入到其它软件中。
  1.3 交互接口层
  微信小程序实际上是客户端界面,通过与服务器的交互才能显示和应用数据。在微信小程序内的数据交互如图2所示,wxml为视图层,功能是读取逻辑层数据并将其转换成视图,同时将视图层产生的事件发送到逻辑层;js为逻辑层,功能是处理数据,并将处理后的数据发送给视图层;api为交互层,它是微信小程序特有的调用接口,其功能是充分利用微信信息和功能,如获取用户信息、本地存储等功能。
  微信小程序客戶端、服务器和数据库之间的数据交互实现流程如图3所示。
  wx.request是微信小程序客户端与服务器端交互接口,与ujavascript的aJax请求相同,只可发起HTTPS请求。微信服务器与系统服务器进行数据交互,由系统服务器向数据库读取和写人数据。
  2 平台设计
  本文基于华南片区维修中心仪器运维管理需求进行平台设计。华南片区维修中心负责6省(湖南、湖北、广东、广西、江西、海南)前兆仪器维修维护工作,保障华南片区前兆仪器设备运行连续率与运行质量。目前有备机及相关备件共计100余套,涉及形变、地磁、地电、地下流体、重力等多个学科,后期计划增加更多观测仪器。
  2.1 功能需求设计
  基于微信小程序的地震仪器管理平台需完成4种功能:①查询功能,具体设置为搜索功能,指对数据库地震仪器进行搜索查询,如仪器编号、学科分类、仪器状态、使用周期等;②添加功能,具体为新增入库,即将新采购增加的仪器备机备件添加到数据库;③删除功能,具体为新增出库,即将已报废和使用周期超过年限的仪器更换后从数据库中删除;④修改功能,指修改并保存数据库内地震仪器信息与用户信息。
  系统功能架构设计如图4所示。
  2.2 功能详细设计与说明
  2.2.1 用户中心
  地震仪器管理平台基于微信的开放平台接口,用户授权微信小程序获取个人信息,即可完成登录,登录后可以在用户中心(我的)界面中修改用户名、单位、联系方式及用户密码,其界面如图5所示。
  2.2.2 搜索与查看(库存)
  显示数据库中的部分数据信息,利用搜索框搜索关键词并显示结果。如图6和图7所示,点击数据即可转到对应完整的数据显示页面。
  2.2.3 仪器增添和删除(首页)
  首页主要有3个功能接口:新增人库、新增出库和库存列表。新增入库的功能是将仪器信息添加进数据库,仪器信息包括仪器名称、仪器编号、学科分类、入库人和入库时间,新增出库的功能是将仪器出库信息添加进数据库,出库信息主要包括出库人和出库时间及出库去向。库存列表显示数据库仪器库存状态及仪器基本信息。
  3 平台关键技术分析
  小程序正常运行关键在于数据交互,主要包含两个方面:客户端与服务器交互、服务器与数据库交互。因此,平台关键技术主要体现在数据交互方面。微信小程序客户端与服务端交互流程及原理如图10所示。   3.1 客户端与服务器交互
  在传统Web应用中,客户端与服务器的交互主要利用ajax长连接轮询实现。轮询指每隔一定的时间间隔,发送HTTP请求,请求获取数据。该方式虽然可保证实时性,但仍存在弊端:首先,由于不间断地产生HTTP请求,过多的HTTP请求会占用带宽,导致内存资源调配不当,加速手机耗电,使服务器响应频繁;其次,并不是每一个HTTP请求均会返回数据变化,因此会造成请求利用率低。
  为解决上述问题,本文采取WebSocket通信技术。WebSocket是客户端与服务器之间的一条特设通道,通过请求建立连接,可从通道中实时获取服务器数据。在微信中,WebSocket接口由HTTP协议升级而来,可实现浏览器与服务器全双工通信。微信小程序中WebSocket接口函数及其定义如表1所示。
  3.2 服务器与数据库交互
  本文服务器与数据库交互采用nodejs框架,Node.is是一个基于Chrome V8引擎的JavaScript运行环境。NodeJs作为服务器端JavaScript的运行平台,JavaScript是一个事件驱动的语言,NodeJs可利用该特点编写出可拓展性高的服务器。
  利用node中的mysql模块与数据库连接,其交互流程如图11所示。
  4 平台测试
  系统测试需遵循相关原则,小程序测试与应用软件测试相同,需从功能、性能、兼容性和后端接口等方面进行测试。
  功能测试即测试微信小程序的设计是否符合功能需求。华南片区地震仪器管理平台微信小程序可实现仪器入库、出库、库存查找及相关仪器信息修改等功能,基本满足功能需求。
  兼容性测试需从操作系统兼容性、屏幕兼容性两个方面进行:①操作系统兼容性测试。由于微信小程序依托于微信,因此只需微信版本符合要求,小程序即可在手机操作系统上使用;②屏幕兼容性测试。微信小程序定義了一个新的尺寸单位rpx(responsive pixel),可适配不同尺寸的屏幕,若页面定义对象单位是rpx,即可在不同屏幕上适配。在实际测试过程中,通过在不同型号的手机上运行小程序,以iPhone6s(375*667)、iPhone7Plus(414*736)、iPhoneX(375*812)和华为mate9(412*732)为例,其实验效果如图12所示,并没有出现异常拉伸和压缩画面的现象。
  本文性能测试主要考虑客户端性能,包括页面白屏时间、首屏时间、资源占用、页面渲染时间等,由于微信小程序开发软件中没有集成测试功能,所以本次测试采用编写循环脚本的方式测试小程序点击事件和滑动事件,在运行过程中通过系统电源、内存和流量监控查看手机CPU占用情况、电池温度和流量。测试发现,微信小程序测试运行相关事件时,手机CPU占用不到1%,远小于手机APP运行占用率。
  后端接口测试体现在小程序数据上传下载中,由于可以实现数据库增查删改操作,因此后端接口的数据交互可顺利进行。
  5 结语
  本文设计了一种基于微信小程序的地震管理平台,根据地震前兆仪器管理的实际需求,结合微信小程序传播方便、用户基数大的特点,使地震仪器管理平台可移动使用、随时查询,实现了信息化和数字化管理。本文设计背景是华南片区仪器运维管理,目前数据量较小。因此下一步研究重点是拓展仪器管理平台微信小程序应用范围,为全国仪器管理运行奠定基础。
转载注明来源:https://www.xzbu.com/8/view-15277998.htm