防震减灾工作是我国经济社会发展中的一项重要内容,在数字化观测网络技术蓬勃发展的背景下,对地震基础数据的正确记录和处理提出了新的需求。目前数据监控系统多依托于PC平台,使用环境受到约束。为了给工作人员提供方便快捷的技术工具,开发一套基于手机移动端的数据监控系统显得迫在眉睫。Android手机因其庞大的用户群体成为监控系统平台的首选。
仪器工作状态是否正常决定了观测数据记录质量的好坏。相对于通过流服务进行实时传输存储的测震数据(陈静等,2019),地球物理观测数据因本地存储统一交换的传输策略,导致仪器故障处理的时效性并不高。故障发生原因往往是多方面的,供电故障、电信故障、程序死机等均会造成数据传输故障,导致断记或数据缺失,从而影响观测数据记录质量。及时发现并排除故障,有利于提高数据记录完整性及台网运行效率。通过开发地震地球物理数据监控软件,为工作人员在值班及运维时提供软件和技术支持,及时获取仪器工作状态,可以第一时间发现设备故障并维修,提高工作效率。
1 系统架构设计利用Eclipse开发工具,完成地震地球物理数据实时监控软件的编写。采用数据访问层、业务逻辑层、表示层三层架构,设计实现地震地球物理数据实时监控。表示层(UI)实现用户界面功能,将用户指令传达至业务逻辑层(BLL)。业务逻辑层(BLL)实现对具体问题的逻辑判断与执行功能,是表示层(UI)和数据访问层(DBL)的中间层,是二者的连接纽带。接收到表示层(UI)指令后,业务逻辑层(BLL)连接数据访问层(DAL),实现三层之间的数据连接和指令传达,对接收数据进行逻辑处理,实现数据的增加、修改、查询、删除等功能,同时将处理结果反馈至表示层(UI),从而实现软件功能(李刚,2015)。
在本系统中,Android手机端通过布局文件Layout和Java代码实现软件界面加载、数据的展示等功能。接口类(Java Servlet)实现表示层与数据层之间的数据传输,本系统的Java Servlet是部署在应用服务器Tomcat上的程序,将手机端指令连接到服务器端,并将数据返回到手机端(王翠萍,2015)。服务器端采用阿里云服务器和Mysql数据库实现,用于响应手机端指令,为用户提供所需数据。系统架构见图 1。
地球物理数据监控系统的功能模块因其依赖的运行网络环境不同,分为局域网模块与广域网模块。局域网模块依赖于行业信息内网的网络环境实现,包括仪器状态监测、实时数据查看、历史数据浏览3大功能模块。广域网模块依赖于阿里云服务器、轻型应用服务器Tmocat及Mysql数据库实现,包括运维信息管理、维修记录管理、IP信息管理、日志信息管理、用户信息管理、台站路线导航等功能模块(陈凯等,2018)。系统功能模块见图 2,软件功能界面见图 3。通过仪器状态、实时数据、历史曲线、运维信息、维修记录、IP信息、日志浏览、密码设置、地图查看,实现系统功能。通过以上功能模块的设计,有针对性地实现了各项数据服务需求。
局域网模块包括仪器状态监测、实时数据查看、历史数据浏览3大功能模块,主要为工作中需要获取仪器工作状态和查看仪器数据服务。仪器工作状态对数据记录的准确完整至关重要,地球物理仪器因其数据传输的不连续性,导致故障处理时效性不高。为了减少故障对数据造成的不良影响,值班人员需要不定时进行仪器检查,从而及时准确的获取仪器工作状态,发现故障并通知运维人员进行故障排除,增加了值班人员工作强度。为解决此客观问题,提高故障处理的时效性,设计仪器状态监测、实时数据查看、历史数据浏览模块,分步处理数据的连续性与准确性所面对的问题。
(1)仪器状态监测模块。利用仪器状态监测模块,可以进行仪器的集中联通检测,值班人员可选取不同类型的地球物理仪器进行一键检测,查看仪器工作状态及网络联通状态。该模块主要通过与仪器进行网络联通通信实现,使用类似PC端的Ping类来实现仪器IP连接操作,将得到仪器状态信息返回给客户端并向用户进行展示。利用该模块功能,选取仪器类型并启动,系统将快速进行多台仪器的状态联通检测,连接成功显示绿色色块,失败则显示红色色块,具备与PC端相同显示效果。仪器连接状态界面见图 4。
(2)实时数据查看模块。实时数据查看模块主要针对地球物理仪器运行不稳定,主程序死机但网络通信模块依然正常的问题而设计。通过网络连接类(HttpClient)模拟登录仪器主页面,并通过WebView(网页界面显示类)获取网页信息,从而获得仪器系统时间和当前数据,并将查询结果返回客户端,客户端通过TimerTask(定时器)线程进行循环操作,并将结果循环输出至用户界面向用户展示。同时,通过MPAndroidChart图表控件,将获取数据在客户端绘图显示,则可通过数据短期变化趋势图,辅助判断仪器工作状态。利用实时数据查看功能,可有效避免Ping类命令的局限性。
仪器状态参数获取逻辑主要通过WebView来实现。WebView类通过加载不同仪器的IP地址来实现用户界面展示,并将展示页面转换成Json数据格式,进行关键信息的匹配查询,从而获得系统当前时间和不同测项的观测数据,并将数据返回客户端进入存储和绘图等后续流程。用户选择目标台站并启动实时数据查看功能,则仪器联通状态和系统当前数据分别以色块和文本予以展示,同时在图表控件中绘制数据曲线实时连续动态图像,实现手机端与仪器显示屏的实时输出。功能界面见图 5。
(3)历史数据浏览模块。该模块提供仪器前期数据波形曲线比对功能。通过FileDownloader(下载控件)连接所需数据仪器的下载页面,通过指令进行数据的后台下载,下载完成后进行数据处理,并通过MPAndroidChart(图表控件)进行绘图展示,且支持滑动、放大、缩小等操作。该模块提供当前3天以内的数据曲线浏览,用户可根据需求选择相应仪器进行浏览。点击完成日期并进行台站选取,点击Strat进行数据下载并予以转换,在MPAndroidChart图表控件中绘图输出。数据曲线界面见图 6。
广域网模块包括运维信息管理、维修记录管理、IP信息管理、日志信息管理、用户信息管理、台站路线导航模块。除台站路线导航模块外,其余模块均基于数据库中不同信息实现业务逻辑管理,故将该类模块归为信息管理类模块统一说明。
2.2.1 信息管理类模块该类模块包括上述几种具体业务信息模块,主要为工作中需要记录的操作流程服务。当运维人员进行仪器的现场维护、维修升级及IP地址更改和日志处理等操作后,可通过此类模块将进行记录存档,方便日后查阅统计。该类模块通过逻辑层的数据传输实现用户到服务器的交互,将所记录数据分门别类地存储到数据库不同数据表上。所记录数据既可通过客户端进行汇总展示,也可利用Navicat数据库管理软件导出到PC端进行统计。以往通过PC端或纸质件进行此类操作,具有一定滞后性和繁琐性,通过该类信息模块设计,可将原有记录流程简化,提高记录的时效性和工作效率。
业务逻辑层(BLL)响应客户端指令,通过界面获取用户业务需求,将数据信息进行Json格式封装,并与部署在应用服务器Tomcat上的逻辑层进行通信,完成对数据库的各项操作,将结果打包成Json数据返回客户端,实现逻辑层数据传输功能。本系统的逻辑层通过doGet数据传输方法实现。以数据管理中运维信息的查询逻辑为例,doGet数据传输方法如下:通过广域网进行数据库连接,将通过Android手机界面输入的查询运维信息内容进行格式转换,传输到在服务器上运行的数据库进行查询等操作,查询完成后将数据传回用户界面,在界面层进行布局文件的转换输出。在数据管理功能中,点击不同标签页进行信息切换,并进行分类展示,对于需要详细操作的条目,点击进入该条目进行浏览与修改等操作。数据管理功能界面见图 7。
该模块主要依托百度地图API接口开发,为仪器现场维护人员服务。百度地图API是为个人开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API、Web服务API、Android SDK等开发工具与服务,提供基本地图展现、搜索、定位、路线规划等功能,适用于PC端、移动端等多种设备。为避免环境及人为干扰,地震台站多在偏僻之地选址,无明显标识。当仪器发生故障无法远程排除需要现场维护时,受限于目标台站的熟悉程度,可能无法第一时间准确找到台站位置,导致运维的时效性降低。
地图导航模块通过查询数据表中台站的位置,调用百度地图路线规划服务,帮助运维人员及时到达台站排除故障,提高仪器运行率。在使用百度地图API之前,必须申请第三方Map服务的API key,加入系统数字证书的存储路径。导航时根据GPS信号进行系统初始定位,通过onReceiveLocation方法,获取用户经纬度坐标完成初始定位,根据目标位置调用路线规划服务,在当前MapView地图页面绘制路线反馈信息。通过该功能,用户可选取不同台站,点击路线导航,系统将调用百度地图相关服务并反馈规划路线,效果见图 8。
地震地球物理数据监控软件安装完成后,值班人员根据工作具体内容执行相应业务处理流程,软件运行逻辑流程见图 9。用户在客户端主界面点击选取不同模块,实现上述各项功能(图 3)。值班人员利用仪器状态监测模块,分时段检测同类仪器状态(图 4)。对于检测状态不正常的仪器,可通过实时数据模块查看仪器实时数据(图 5),也可对比仪器历史数据进行运行状态分析(图 6)。在对数据进行分析汇总后,若确定仪器存在故障需进行现场维护,及时通知运维人员进行故障排除。运维人员接到任务后,通过地图导航模块确定故障台站位置,并进行路线规划(图 8)。完成现场维护后,结合运维内容和仪器维修情况填写日志记录,并保存至数据库的不同数据表,值班人员亦可进行查阅、修改、删除等操作,进行数据归档(图 7)。
本软件在重庆市地震局渝西片区运维中心试运行4个月,运行效果良好,统计结果见表 1。值班人员定时进行仪器联通测试,及时发现主机死机、通信模块故障等直接表现为网络通讯异常的故障,故障发现时效性得到提高。对于网络通讯正常的软故障,在进行数据传输交换时,利用本软件进行辅助检查,并结合数据曲线进行判断。同时,运维人员利用本软件,可较为直观地获取故障表现特征,并采取相应手段恢复数据,在一定程度上缩短了故障排除时间,工作效率得以提高。
随着移动互联网技术的不断发展,手机客户端软件以其便捷的优势弥补了PC端软件的不足。地震地球物理数据监控软件开发完成后,在重庆市地震局渝西片区运维中心进行试运行,结合云服务器、MySql数据库和百度地图API等技术,有效整合了监测工作内容,简化操作流程,规范日志信息归档。当VPN连接内网权限开启后,本软件局域网模块也可在广域网运行,实现仪器状态随时监控,可直接在客户端查看数据,便于数据管理,工作效率提高。
基于用户提交需求、服务器进行处理并返回结果这一交互策略进行系统架构设计,对于实时获取仪器状态参数具有一定局限性。未来可尝试将用户主动提交需求的过程自动化,并通过在服务器上部署的应用程序进行仪器状态判断和故障信息推送,从而实现地球物理仪器状态监控软件的自动化运行。因Android软件具备开源的开发环境,本软件具有良好的拓展性,可根据不同业务需求,有针对性地开发相应功能模块,进一步完善软件功能。本软件具有良好的可移植性,通过本地区运行效果测试反馈,可向行业内其他省地震局进行推广,以期取得更好的使用效果。
陈凯, 易江, 孙国栋, 于天航. 基于Android平台的地震台站运维系统的设计与实现[J]. 华北地震科学, 2018, 36(4): 79-83. |
陈静. 基于Android的地震观测数据可视化综合服务平台研发[J]. 地震地磁观测与研究, 2019, 40(3): 168-175. |
李刚. 疯狂Android讲义[M]. 北京: 电子工业出版社, 2015.
|
王翠萍. Android经典项目开发实战[M]. 北京: 清华大学出版社, 2015.
|