APP下载

分布式数据监测与上传系统设计

2018-05-07刘九夫张建云贾雅兰刘宏伟廖敏涵

水利信息化 2018年2期
关键词:子系统客户端数据库

卓 鹏,刘九夫,张建云,贾雅兰,刘宏伟,蔡 钊,廖敏涵

(南京水利科学研究院, 江苏 南京 210029)

0 引言

实验数据的存储与共享事关重大,是实验所得的最终产品,是分析研究的基础,因此保证数据的准确和安全是研究工作成败攸关的大事,水利信息化的趋势也要求自动采集、存储数据[1-4]。 仪器长时间工作,难免出现一些小问题,由于仪器故障产生时间难以事先获知,单纯靠定期的维护有时不能满足业务需要[5],及时发现仪器故障要求全天 24 h 不间断地审查数据合理性,如:翻斗式雨量计、数据采集系统电压过低,仪器数值异常等。毕朝达等[6]曾研究过数据的自动存入,不过研究侧重于数据的初步计算处理并将数据存于本地。李松等[7]研究过海上警戒区的数据自动采集,但侧重于数据预警,并未涉及数据的自动上传与处理。童海滨等[8]在开封市气象局实现了单站地温数据的采集及监控,但没有数据的入库操作,也不利于数据的长期保存和后期处理。

鉴于此,南京水利科学研究院(以下简称“南科院”)利用 Qt 设计友好界面,开发了数据监控与上传软件——分布式数据监测与上传系统(以下简称“软件系统”),已经于 2016 年在南科院水文水资源与水利工程科学国家重点实验室滁州水文实验基地(以下简称“滁州基地”)正式投入业务使用,解决了数据分散各地带来的问题,实现了基础数据的初步鉴别及设备和数据异常预警。

1 软件系统总体框架

软件系统设计分为后台数据库和前台软件图形用户界面两部分设计。后台数据库的设计以开源数据库软件 MySQL 为平台,将每个仪器汇总的数据单独存成一个数据表,防止时间步长不同带来的数据量不一致问题,以数据的“日期时间”为主键索引方便数据查询;图形用户界面的设计以简单实用为指导原则,使基层业务员快速掌握,操作方便。

软件系统主要有以下 3 个功能:1)实时上传各地数采仪采集的数据,为数据的实时调用处理奠定基础;2)实时检测数据异常,使业务人员及时发现数据的异常从而检查软硬件条件,及时维护以避免更大的损失,增强数据可靠性;3)自动过滤冗余数据,减少数据赘余。

软件系统分为以下 4 个子系统:

1)时间控制子系统。定时启动循环程序,让程序持续运作,或者人工启动上传系统。

2)数据整编子系统。主要负责将原始资料文件数据化成固定格式,以方便后续操作。

3)数据监视与上传子系统。实时监测数据异常,将数据整编系统产生的标准化文件上传至云端服务器;在异常时发出警告,并将数据与数据警告的具体说明上传至云端服务器。

4)数据存储与查询子系统。提供数据存储与查询服务。

在数据整编的基础上,运用多线程并行处理技术保证监视和上传互不影响。软件系统总体框架如图1 所示。

图1 软件系统总体框架图

2 软件系统功能及关键技术

2.1 时间控制子系统

读取当地或网络时间,以保证客户端机器可以按照设定时间间隔周期性地上传当地数据到服务器。系统中的定时函数可周期性地触发其他子系统,触发周期可由操作人员显式地在操作界面设定。由于数据上传进度可实时存入缓存,故无需担心在上传过程中发生数据遗漏现象。此模块的关键在于使用定时器,周期性触发各类功能函数。

2.2 整编原始记录子系统

软件系统会按时读取先前指定的文件,根据上次读取过的文件位置(支持断点续传),一次性读取新产生的所有数据到内存,然后将所得字符串按一定格式数据化,分成时间、数据编号、基本数据等类型,按照设定好的格式分别存入内存与缓存中。在内存中生成中间文件,准备进入数据监视子系统;在缓存中生成缓存文件,准备接受数据上传子系统的调用。

2.3 数据上传子系统

软件系统使用 MySQL 数据库,数据上传子系统将整编好的数据上传到对应的数据库中,重复数据自动过滤,防止数据冗余。数据上传与监视 2 个子系统互不联系,异常的数据依然要上传到系统数据库中以备查验和更改,故无先后顺序,可同时执行。此模块的关键是快速上传数据,使用 SQL 语句中上传速度最快的命令,将整个中间数据文件直接上传,可减少上传次数,大大增加上传速度。

2.4 数据监视子系统

根据软件系统中数据的特点,单独设定检查方式。检查方式有单个和多个数据值函数关系的异常检查。单个数据值的检查,如:可对电压值按照大于或小于某数值检查异常;函数关系的检查是对数据同一时刻的其他数据或不同时刻内在关系进行检查,如同一时刻临近地点采集的 1 min 内降雨数据之间的差值不应超过自动翻斗式雨量计规格的 2 倍。当数据发生异常时,软件系统通过弹窗在机器客户端上显示错误类型及原因的推测,并可调动其他软硬件发出报警声音,或者发送信息通知相关业务人员,提醒业务人员及时发现错误,修正处理机器设备异常,将错误信息保存在文件中,上传到数据库,以供将来数据分析时查阅。

利用 TCP/IP 协议,可以将错误信息推送到其他电脑客户端。

由于数据监视子系统对每条记录中的每个数据进行检查时需运行多种计算方法,所以是系统中最耗时的过程。为防止界面假死(卡死)或延误其他数据上传工作,采用多线程技术将数据监视部分单列为一个线程,其他子系统列为一个线程。此模块中多线程技术是最为关键的技术。

3 软件系统数据安全保障办法

数据安全关系重大,必须要特别注意。软件系统所面临的主要威胁有:误删数据;意外关闭软件,导致数据不能检查和上传;上传混乱,导致数据对应错位;下载权限存在问题,导致数据泄漏。

针对这些问题,主要采用密码系统解决包括软件关闭在内的权限问题。软件系统开始运行后,应持续不断地上传数据,如遇到特殊情况要关闭软件系统,客户端应该得到管理员的同意,正确输入密码才能顺利关闭,该密码存储在云端服务器上,如果有足够的权限,可在服务器端修改。多个用户对上传查询的不同数据有不同权限,避免上传混乱的现象,也能大大减少数据被意外删除的风险,同时下载权限问题也能迎刃而解。

4 软件部署配置

4.1 客户端配置

后台配置客户端软件直接安装在采集数据的电脑上,然后配置初始文件,以确定机器上待传原始文件的路径、当前上传状况,以及对应文件上传到数据库中的位置。配置文件的目的主要是增加软件系统的灵活与鲁棒性,使得软件系统在外部环境发生变化时能更方便地调整,在客户端机器发生故障时能尽快恢复运行。如果业务需要增加或减少采集数据条目,只需在对应文件下增加或减少 1 条指令即可。

登录界面打开软件系统后选择数据存储位置,输入登录名和密码,进入上传设置界面后,选择输入数据上传的时间间隔,并选择是否对数据进行监测。

4.2 服务器端配置

服务器端要建立一个 MySQL 数据库,用来存放整理好的数据。在数据库中建立与客户端对应一致的数据表,并分配用户权限保证整个软件系统的数据安全与正常运作。

5 结语

将采集的数据自动处理、集中保存管理意义重大,不仅方便分布式数据的管理,增加数据的安全性,使数据的调用处理变得更加方便,也是实时联合处理分布式数据的基础。

软件系统的自动检测数据功能可以根据用户设定的方式监视数据,发出警报,使得业务人员能够及时发现仪器设备异常,减少数据错误,也能提醒数据使用人员考虑数据的可靠性。

软件系统操作简单,通过配置文件的修改即可轻松应对外部环境的改变,使得小范围的业务修改变得简单可行。

软件系统在滁州基地运行正常稳定,各项功能都能正确及时地执行。在测试运行的 3 个月里,共监测到数据错误 40 余处,并根据错误信息成功找到仪器故障。

软件系统的输入数据以自动化仪器生产的数据为原始输入,所监测到的异常是各种累计误差的结果,不能够直接发现问题的根本所在。原始输入的数据依赖于仪器厂家的原始设计,有较大局限性,将来应当与硬件的监测相结合,更加精准地监测仪器。

参考文献:

[1] 刘庆涛,崔瑞玲,耿丁蕤. 水利信息云建设初探[J]. 水利信息化,2012 (2): 5-9.

[2] 艾萍,吴礼福,陈子丹. 水利信息化顶层设计的基本思路与核心内容分析[J]. 水利信息化,2010 (2): 9-12.

[3] 陈燕红. 基于网络的远程数据自动采集和收集系统[D].郑州:中国人民解放军信息工程大学,2002.

[4] 朱跃龙. 水利信息化与云计算[J]. 水利水电技术,2013,44 (1): 7-11.

[5] 李震,杨海亮,胡毅,等. 需求工程对于软件开发的重要性[J]. 计算机技术与发展,2013,23 (3): 199-202,207.

[6] 毕朝达,李宏恩,杨阳. 边坡位移数据自动化分析及结构化实时存储[J]. 水电能源科学,2013 (12): 233-235.

[7] 李松,孔凡邨,关克平. 警戒区水上交通冲突数据自动采集系统[J]. 交通运输工程学报,2011,11 (2): 121-126.

[8] 童海滨,刘晓君,王其英,等. 单站地温自动绘图监控系统设计研究[J]. 水电能源科学,2012,30 (1): 189-191.

猜你喜欢

子系统客户端数据库
不对中转子系统耦合动力学特性研究
GSM-R基站子系统同步方案研究
如何看待传统媒体新闻客户端的“断舍离”?
驼峰测长设备在线监测子系统的设计与应用
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
数据库
数据库
数据库