APP下载

基于Android的“知天气”数据主动监控系统设计与实现

2017-04-25郭昌松朱添福林仲

数字技术与应用 2017年1期

郭昌松+朱添福+林仲

摘要:针对“知天气”数据监控不及时的问题,提出了基于Android的数据主动监控方案,该方案使用服务器模拟客户端请求“知天气”的接口数据,并根据数据的更新时间与当前的时间作对比,如果时间差超过预定的缺失数据时间,就通过信鸽服务向数据监控手机推送数据缺失的报文,数据监控客户端接收并解析数据缺失的报文,将数据缺失的报文展示在手机客户端上。

关键词:android;推送;知天气;气象数据

中图分类号:TP39 文献标识码:A 文章编号:1007-9416(2017)01-0174-02

Abstract:Aiming at the problem of "ZhiTianQi" data monitoring, an active data monitoring scheme based on Android is proposed. In this scheme, the server simulates the client's request for "weather" and compares the update time with the current time. If the time difference exceeds a predetermined missing data time, a data missing message is pushed to the data monitoring handset through the XinGe service. The data monitoring client receives and parses the missing data packets, and displays the missing data packets on the mobile client.

Key Words:android; push message; ZhiTianQi; meteorological data

“知天气”是福建省气象局基于手机平台开发的气象手机客户端服务系统,是福建省首个全省统一客户端系统和服务平台。为了向用户提供及时、专业、丰富的气象信息服务,该客户端包括自动站实时数据、一周预报、旅游气象、天气综述、雷达图、卫星云图、数值预报、台风路径、生活指数等气象数据,“知天气”拥有专业和公众两个版本,欢迎大家到各商城搜索“知天气”下载试用。

现在主要是通过人工的方式定时监控知天气系统是否正常,导致维护人员工作量比较大,而且不能及时发现数据的缺失。“知天气”客户端的大部分数据是定时生成、有规律的数据,因此能够使用程序实现对数据及时有效的监控。本文提出了基于Android系统的数据主动监控方案,可有效解决数据监控问题。

1 系统总体架构

“知天气”业务系统是一个比较复杂的系统,知天气业务系统主要有两个版本:“知天气-公众版”和“知天气-专业版”,知天气两个版本共用同一套数据采集服务和数据库,但是两个版本由于请求的数据不同,所以使用不同的web服务,虽然知天气业务系统内部比较复杂,但是我们只关注知天气的web服务,通过模拟手机客户端的数据请求服务来对数据进行监控。

该系统的总体框架(如图1所示)由知天气数据监控服务、信鸽推送服务,手机监控客户端三部分组成。知天气数据监控服务是在服务器上模拟手机客户端请求数据的服务,通过调用知天气业务系统的web服务获取数据,根据已对每种数据制定的监控策略,使用程序判断该数据是否及时到达,如果数据没有及时到达就生成数据缺失报文,把数据缺失的报文通过信鸽推送服务推送到手机监控客户端。

通过对第三方数据推送平台的比较,本文使用腾讯的信鸽推送服务,该推送服务免费、简单、实用,这样我们可以将更多的精力放到业务系统的监控上来,节省了推送服务的研发。通过在知天气数据监控服务和知天气手机数据监控客户端集成信鸽推动服务,完成数据的推送功能。

手机监控客户端主要是接收并解析监控服务推送过来的数据确实报文,并能夠查询发送过的历史信息,还包括手机APP常用的功能,比如系统升级、系统缓存的清理等等。

2 系统功能与实现

该系统的主要功能集中在知天气数据监控服务端,而手机客户端主要负责接收和展示推送过来的信息;知天气数据监控服务端和手机客户端分别集成了信鸽服务的服务端和客户端,从而实现了信息的推送和接收。

2.1 知天气数据监控服务端

知天气数据监控服务实现了对知天气所有数据种类的监控,包括自动站实时数据、一周天气预报、旅游气象预报、天气综述、雷达图、卫星云图、数值预报、气象视频、生活指数、空气质量、交通气象、海洋气象等气象数据。由于每种数据的更新周期各不相同,比如自动站实时数据每5分钟更新一次、雷达图每6分钟更新一次、卫星云图每小时更新一次,数值预报每12小时更新一次,因此根据不同的更新频率,将更新频率相近的数据种类分在同一个分组,每个分组由不同的线程实现数据的监控,这样能够更有效的监控数据。

本文用判断福州雷达图是否缺失的过程来讲述数据监控的实现过程,首先获取福州雷达图的相关配置,相关配置包括是否监控福州雷达图的标志、数据的标准缺失时间(这里的数据标准缺失时间是指当前时间与数据更新时间的时间差超过该标准缺失时间时,就认为数据已经缺失)、数据的接口。再根据是否监控雷达图的标志进行操作,如果需要监控就根据接口使用post方式请求雷达数据,如果不要监控就跳出;本次获取的只是雷达图的地址和更新时间等,是JSON格式的字符串,解析JSON字符字符串,提取福州雷达图的更新时间,使用当前的时间与更新时间作时间差,如果该时间差大于福州雷达的标准缺失时间,就认为福州雷达图已经缺失,就生成缺失报文,通过信鸽服务向客户端发送数据报文。

2.2 信鸽的集成

信鸽提供了两种通知方式,一种是推送通知,推送通知是在设备的通知栏展示的内容,由信鸽SDK完成所有的操作,手机客户端可以监听通知被打开的行为,这种方式实现比较简单,只要在新歌注册成功后就可以完成通知的下发;另一种方式是透传消息命令,这种方式下发的消息默认是不会展示在通知栏的,信鸽只负责将消息从信鸽服务器下发到APP这个过程,不负责消息的处理逻辑,需要APP自己实现,这种实现比较复杂,但是灵活性强,可以自定义处理消息的存储和展示等。通过对两种方式的比较本系统选择使用透传消息命令,主要原因是推送通知的字符数受限制,不能满足本系统的要求。

要在知天气数据监控服务端集成信鸽服务,只要在工程文件中加入信鸽服务端的jar包,并在工程文件中引用,调用信鸽服务端相应的接口就能完成数据的推送。

在手机客户端集成信鸽服务相对于在服务端集成要复杂得多,第一:在工程文件中加入信鸽客户端的jar包,并在工程文件中引用;第二:在手机客户端的工程文件AndroidManifest中加入对信鸽客户端的配置,该配置可以参考信鸽服务的demo,需修改为自己的ACCESS_ID和AccessKey;第三:在MainActivity文件的OnCreate()函数中注册信鸽服务,需要添加信鸽服务的相关代码,注册成功后;第四:为了能够弹出推送通知,需要在工程文件中添加一个java文件,并命名为App.java,并继承自Application类,在该类的onCreate()函数中加入xGNotifaction.doNotify()。第五:由于该系统使用的透传消息命令的方式,所以该系统要继承信鸽服务的XGPushBaseReceiver类,并在里面实现接收消息,展示消息的功能。

2.3 知天气数据监控手机客户端

知天气数据监控手机客户端主要负责在接收数据缺失数据的报文,并展示数据缺失报文,前文已经介绍本系统使用的是信鸽的透传消息,所以要继承信鸽服务的XGPushBaseReceiver类,在onTextMessage()函数中处理接收到的信息,将数据保存到sqlite本地数据库中,并使用弹窗的形式弹出刚刚接收到的报文。

本系统使用一个列表视图(listView)来展示接收到缺失数据的报文,点击单条项目后会显示消息的详细内容。为了减少sqlite保存的數据量,该系统提供了删除三天前数据的功能,同时该系统还具备手机客户端常用的功能,比如系统升级、关于我们等等。

3 结语

该系统结合实际业务需求,使用移动互联网技术,通过手机客户端主动监控未准时到达的数据,该系统已经在本单位中使用,能够有效解决数据监控的问题,提高了工作人员的工作效率,通过对服务端的修改,该系统还可以监控本单位的其他业务系统,具有很大的扩展性。

参考文献

[1]杨贤栋,王笑,袁翔.基于Android的新一代气象通信传输监控系统[J].计算机系统应用,2015,24(3).

[2]杨丰盛.Android应用开发揭秘[M].机械工业出版社,2007.

[3]软件开发技术联盟.Anroid开发开发实战[M].北京出版社,2013.

[4]徐强建,杨飞,翁玲瑜.基于Android的一种主动监控系统设计与研究[J].2014,24(4) .