高启航,李国平,闫可
面向传感器网络的复杂事件监测技术及应用
高启航,李国平,闫可
现有的水库监测中,拥有着大量的传感器组成的传感器网络,如何对大型传感器网络进行监控,则是现在面临的一个问题。现有的一般传统方式是抽取所有的传感器数据,由监控人员进行统一监控。这样变存在着需要有人员时刻监控大量数据、安装客户端不便以及无法自由监控某些指标等问题。为此,基于复杂事件处理提出了一种适用于水库水质数据监测的事件分类框架,通过事件分类框架来定义、组合事件,实现对水库水质的自由监控报警。并且通过预测模块,对于藻类的未来状况,进行预测及提醒。设计并实现了基于B/S模式的水库预警监测系统。通过抽取水库的实时数据,系统可以实时、有效地对水库各个站点的各个指标进行有效地监督管理,极大地提高水库的工作效率以及优化监控手段,满足水库对水质监控的要求。
水质监测;复杂事件;事件分类框架;藻类预警
随着国家智慧城市等计划的推进,以及对于上海自来水质的要求更加高标准。因此对于水库的监测工作提出了更高的要求。在长江口某水源水库情况监控方面,从最开始的人工观测,到后来的C/S模式实时观察,都是在不断地随着时代进步[1][2]。
但是现在的实时观察模式是有局限性的,现有的观测方式是实时的显示在线数据,由实际人员观测数值是否合理。但是这样的观测方式是十分消耗人力的,观察人员实际只需要观测异常发生的站点,异常发生多久,而不是一直盯着数值观测[3]。
为了提高生产工作的效率,改变先有的低效工作方式,本文旨在搭建一个有效便捷的基于复杂事件的 B/S模式监测预警系统。
1.1系统架构
以前的 C/S模式的操作需要在每台监控机器上安装Client,如果需要新增或者展示,则十分的不便。
因此本文采用B/S架构,用于改进原有的生产模式(监控环境),开发了监测预警系统。本系统是基于长期的长江口某水源地水质监测数据,以及每天实时监测的传感器采集的水质数据等,利用数据库、复杂时间处理、藻类预测等技术来实现对长江口某水源地藻类监测的实时监控、预警。用户只需打开浏览器,则可对水库的各项参数指标进行监控,并且对监测事件进行调整配置。
数据源来自水库的仪器观测数据,这些数据入库后通过ETL抽取到系统中心数据库然后用于监测预警系统的各项功能。
该系统包括以下5个功能模块:实时监控模块、事件配置模块、统计分析模块、藻类预测模块、站点管理模块以及人员管理模块。
系统的架构图如图1所示:
图1 系统架构图
1.2功能设计
为了实现水质监测预警的复杂业务逻辑,以及保持监测的实时性以及报警的及时响应。本文完整的设计了水质监测预警的一整套业务流程,为实现这套业务流程,系统拥有以下几个功能点:实时监控、事件配置、统计分析、藻类预测、站点管理以及人员管理等。
1.3数据库设计
在数据库设计上,考虑到实际运行环境。为了加快数据的接受及处理,水质等数据存储上分为临时数据和历史数据两种数据表存储。并且由于异常事件需要生产人员的处理信息才可以入库,而且同样是为了快速处理,数据库表中也保持了临时异常事件表和历史异常时间表。
同样,为了生产的业务逻辑,数据库表中也设计了:人员表、仪器设备表、换水维护表、事件定义表、天气信息表、编码转换对应表等。
2.1事件分类框架
在通常的监测系统中,存在的监测事件都是简单的事件定义,如一般的阈值事件等。而在实际的生产需求中,事件的组合也是需要的[4][5]。因此,在本文系统中,自定义了复杂事件的结构以及监测。通过事件的定义框架,为生产环境提供更高效便捷的工作方式和监控指导。
首先本文根据水库的实际生产环境,定义了针对特定情况的事件分类框架,如图2所示:
图2 事件分类框架
其中事件分为简单事件和复杂事件两类。简单事件通常是指单一事件,其中包括数值事件、通讯异常事件和仪器异常事件。在数值事件下又细分为阈值事件和变化率事件。
在定义事件的语言上,我们选择了 Fran¸cois Bry 和Michael Eckert所提出的基于规则的查询语言Xchange[6],该语言很好的适用于基于Web 服务标准的企业级应用。
具体定义简单事件中阈值事件举例如下:
这样,便定义了一个简单的事件,例如下游水闸水库侧水质站的pH值不能超出7.8到9.0这个范围。
同样对于复杂事件,针对水库水质监测及报警系统,我们定义的复杂事件是由多个简单事件由某种关系组合而成,这些关系包括:析取、合取以及时间约束。对于一个实时的数据监测平台,时间是一个不可缺少的考虑因素,例如如果在事件a发生了1小时之内事件b也发生了,那这必须要引起我们的重视,所以我们定义事件c,它的限定条件是
a发生后一小时内b也发生,则进行报警。
这里我们具体的定义了如下的复杂事件定义规则:
这里我们假设,在同一站点,当pH值超过了8.0,在之后的一小时内水温超过了23度,虽然如果单方面考虑pH值和水温它们均在正常的数值范围内,但是如果水温在 pH值超过8.0之后的一小时内超过了23摄氏度,那么接下来该站点区域的水质可能在接下来的几个小时内会变差,一旦监测到这个事件,水质监测系统必须要向相关人员发出警告,同理水质变差的前兆不止这一种现象,如上述中的事件c与事件d的发生,水质警告事件的定义中事件c发生后的一小时内事件d发生了,这也可能是水质变差的前兆。在上述的事件定义中涉及到事件之间的合取、析取和时序关系。
除了之前介绍的有关水库水质的预警复杂事件,还有一类事件复杂事件是关于设备故障的,一方面当设备的测量值明显的超出了往年的同期水平时,可以认为该设备可能出现故障,这当然是一种简单事件,只需要针对设备传过来的数值直接进行判断即可,在之前的简单事件查询中已经进行过定义;另一方面,当发现一个设备在一段时间内,对某一元素含量的测量结果始终保持不变,这样也可能是出现了设备故障,水质监测系统要向相关设备维护人员发出报警信息。显然后者是一个复杂事件因为它是由一段时间内的多个简单事件组合而成的(虽然是同一个设备发送的数据,但是由于是在不同的时刻获得,认为它们是不同的事件)。
同时并且本文也提出了基于机理的复杂监测事件模型,如下面公式则是用回归拟合的作出的藻类浓度公示。Chl-a=8.047+1.936X1-8.454X2+0.006X3+4.239X4-0.502X5-0 .043X6+2.761X7(X1为CODMn、X2为均水位、X3为进水量、X4为TN、X5为水温、X6为ORP、X7为pH、Y为Chl-a)。
通过将确定的多元线性回归方程中的供水量设定为全年平均值、进水量和出水量都设定为0,除选用的单项指标外,其他指标都为0,此时计算达到叶绿素a报警值所对应的单项指标值,取其值的70%作为复杂事件单项指标的预警值,其他单项指标预警值依次类推。
因此当某个值到达预先设定值时,都会对叶绿素进行报警,这侧是一个由或的关系组成的复杂事件。
2.2SQL Server数据库设计创新
由于原有数据来自SQL Server,因此数据库是基于SQL Server进行后续开发。并且SQL Server也拥有着可扩展、高性能的特点,最新版的SQL Server的内存驻留技术也极大地提高了数据库性能。
水库实时预警系统结合实时性和高效性的特点进行数据库设计与实现。在提取数据源与数据入库的阶段,考虑数据源种类较多和数据更新频率不同的因素,使用多线程分时段的方法对数据进行采集,同时根据常用维度的数据信息将数据库表格进行分区操作,提高吞吐率和存取效率。
在实时监控与预警阶段,主要是采用多索引高缓存的方法对数据进行读取,根据数据监控字段,对不同的数据源进行分别索引和复合索引,在不影响插入数据效率的基础上提高数据读取效率。
2.3藻类预测
因为藻类对于水库是一个十分重要的观测点,因此本文的系统中还拥有藻类神经网络预测这个特色点。之所以选择神经网络,是因为传统的机理模型虽然不需要大量数据,但是需要的外部条件高。而统计模型则需要大量数据,但是各因素之间关系不存在机理上的解释,解释性不强。因此本文提出了一种机理分析和统计预测相结合的方法。
根据藻类生长的机理,初步建立藻类含量关于时间的差分方程模型:
由于该差分方程模型中包含无法确定的参数,再运用统计模型求出这些不确定的参数,从而求解模型,得到藻类含量关于时间的迭代关系。而采用智能算法来构建统计模型,具有突出的优势。
通过应用皮尔森相关分析方法、线性回归方法、主成分分析法、等方法对青草沙水库监测数据进行优化筛选,构建各水质指标与叶绿素-a的线性回归方程,同时结合藻类爆发的气候条件,考虑模型结构自身的特点,确定模型的输入指标。然后通过人工神经网络(ANN)进行预测。
模型的预测是对叶绿素-a浓度的变化值进行预测,而非对叶绿素-a含量本身分析。使得在构建人工神经网络模型的过程中无需考虑已经确定的量对预测结果产生的影响,减少了人工神经网络不必要的负担,加快了模型运算的效率,也提高了预测模型的准确性。
3.1系统框架实现
本系统使用了目前 Java企业级开发中更为流行的和稳定的开源框架SSM(Spring、SpringMVC和Mybatis)作为系统的主要开发框架。之所以选择这个框架,是因为相比于传统的SSH框架,SSM框架更加轻量级以及更加的源生。Spring以及它的源生MVC来进行业务逻辑上的流程控制,而来自开源项目iBatis的MyBatis提供了基于XML或者注解的数据库操作封装。因此SSM框架提供了系统开发的统一支撑,降低了多层次之间的耦合性以及降低开发标准,提高了代码的规范化以及泛用性。并且更具有良好的可移植性以及方便部署,而且也为后续开发提供了更加便利的方式[7]。
Web端则采用Html+jsp+js的富客户端开发理念。在开发上也采用了Ajax等交互方面的技术,来实现更快的响应以及更好的交互性。并且也运用了Hicharts等图表插件来对结果进行一个更加优良的展示体验。
用户在页面上的操作请求则由SSM框架支持下的系统进行分发,发送到具体的业务逻辑模块进行处理,实现相应的操作请求及功能。并且系统在后端会实时的获取到来的数据和
数据库上则使用了 SQLServer来保持与原有系统的一致性,并且具备稳定应以及安全性,来保证业务的安全有效以及健壮性。
3.2前端表现实现
在前端方面,由于涉及到各种各样的业务逻辑以及实时处理,采用了功能以及插件都十分丰富Mitronic前端开发框架。在此框架的支持下,可以开发出功能丰富并且界面美观的前端界面。并且使用了Ajax技术后,所有的操作都可以实时的在界面上显示以及操作,让系统的操作更加的方便简洁。
并且,在对前端进行开发的过程中,为提高显示以及加载的速度,对已有的js进行了精简,删除掉无用的js,优化已有的模块,来提供更好的用户体验。
因为监控系统是B/S架构,会在不同的电脑以及不同的浏览器上运行。但是现在存在着各种各样的浏览器以及各种各样的浏览器版本。因此在前端开发过程中,尽量使用通用的插件,并且针对不同的分辨率以及浏览器做出自适应开发,确保提供良好的用户体验以及便捷的操作。因此,在系统的前端展示方面,本系统拥有良好的兼容性及泛用性。并且我们也推荐了推荐的浏览器,来使用户有更佳的用户体验。
3.3后端功能模块实现
本系统使用的SSM框架使开发变得更加清晰并且有逻辑性。在框架下实现了视图、控制器以及模型的分离,降低了代码间的耦合性,挺高项目的易合作性。
系统拥有以下模块:
3.31实时监控模块
如图3所示:
图3 实时监控模块
在这个模块下,系统提供了基于数据流的实时多事件同时监控,以及基于内存的实时处理算法[8][9]。最大程度上的保证了监测的有效性及实时性[10]。
并且在实时监控的前端展示中,站点会绘制在界面上。本文设计的系统为事件的不同类型设计了不同的标识。如正常用绿色标识、阈值报警用红色标识、维修用灰色标识、通讯中断用蓝色标识等,为用户提供直观的报警方式。并且在系统的每个界面中,为了让用户能够实时注意到报警信息,都会在右上角提供一个监控子模块。
3.32事件配置模块
本文设计的系统中,事件配置模块主要体现在数值事件配置和复杂事件配置上。
数值事件通过配置站点、监测要素、上下值(或变化率)以及监测仪器等来实现事件的定义。其他事件如通信异常和仪器异常则是根据具体仪器的说明书参数进行定义。
而复杂事件配置则是,通过与、或等关系,将简单事件进行组合,并配置成复杂事件进行监控。
3.33统计分析模块
通过实际生产的业务流程确认,以及对现有状况的分析,本系统包括如下的统计分析功能:自由要素查询、箱图图表查询、最值面积图表查询等分析功能。以及报警事件统计、设备信息统计等统计功能。
本模块使用了highcharts插件,通过对此插件的应用,极大地丰富了本模块的展示功能。并且本文设计的系统中,对此插件的 js脚本进行了在开发与优化,实现了不同时段的数据图表对比以及多站点的图表对比功能。
3.34藻类预测模块
本文通过机理与统计相结合的方法,对藻类生长进行预警。在此模块下,系统会自动向用户推送藻类预测信息,及报警提醒。
并且本模块也提供丰富的自由配置功能,用户可以供过配置神经网络训练模型的参数、迭代次数、精度等来优化训练结果。系统会自动记录以往的预测结果,并将之与实际结果进行对比展示,在预测准度方面给出一个直观的结果。
3.35站点管理人员管理模块
此模块的功能是用来对水库的站点及人员进行管理操作。用户可以自由的对站点、站点显示参数、是否加入预警网络、以及站点维修等事件进行配置。用于提高系统的泛用性以及完善日常生产操作。
通过上述的配置,可以自由的选择短信报警、邮件报警。也可以对监控的站点选择某个元素是否监测、站点是否监测等。为实际工作提高可用度。
4.1实际运行环境
为了保证系统运行的稳定性,以及对水质监控的准确及时性,进行了系统的试运行。在水库实际的运营环境阶段,系统进行了一个月以上的试运行,对测量仪器、水文测亭以及库外站点进行了监控。
监控的数据包括:盐度数据、藻类数据、水文水质数据以及库外站点的数据。数据的种类包括:水温、pH值、叶绿素 a、氨氮、总磷、含氯度等十几项观测要素。 获取的数据时间频率从范围五分钟到一天不等。需要监测的时间窗口从两小时到一天不等。
4.2实际运行效果
在一个月以上的试运营监控中,通过设定测试的监测事件以及异常监测规则,准确的监控出不同的事件类型,包括:阈值事件、通讯异常事件、以及仪器异常事件等。
对于不同的事件监测规则,均能实现及时准确的监测报警。如:四小时内站点A的pH值大于8的数据超过百分之七十报警,这样较为复杂的监测事件,也可以准确无误的进行监控报警。
在实际运行过程中,系统稳定流畅,B/S架构的易于使用特性也带来更好交互。监控模块、配置模块以及管理模块的相辅相成设计,极大地提高了水库的管理效率及人员利用率。
本文提出了一种基于B/S模式的藻类预警监测系统。通过本文的系统,可以有效地提高水库工作人员的生产效率降低监控成本,会大大降低人员的工作量。并且本文中的监测事件是可以自由定制的、多维度的复杂事件模型,可以丰富的定义监测事件,扩展监控模式。最终实现了一个拥有完整业务流程的高效易用监控平台。
[1] 侯淑英.B/S 模式和 C/S 模式优势比较[J].沈阳教育学院学报,2007,02:98-100.
[2] 李伟,马世欢,余森. ZigBee 无线传感网田间信息采集系统[J]. 微型电脑应用,2015:77-78.
[3] 杨新艳,徐建良,肖旭岭,复杂事件处理在工作流管理监控模块中的应用. 微计算机信息,2006,11(33): 12-14
[4] 李好,复杂事件处理技术在分布式系统中的应用. [D]武汉:华中科技大学,2007:46-47
[5] 司徒放,张灏龙,曹健,基于复杂事件的可配置的分布式系统监控[J]. 微型电脑应用,2010:44-49.
[6] Bry F,Eckert M,Rule-Based Composite Event Queries: The Language XChange and its Semantics [J]. Springer Berlin Heidelberg,2007,4524(3):16-30
[7] Patterson D,Brown A,Broadwell P.et al. Recovery Oriented Computing (ROC): Motivation,Definition,Techniques,and CaseStudies [R]. Computer Science Technical Report UCB,U.C. Berkeley,2002.
[8] Opher Etzion,Peter Niblett,Manning Event Processing in Action [M].Manning Publications,2010.
[9] Demers A,Gehrke J,Panda B,et al. Cayuga:a general purpose event monitoring system[C]//Proc of CIDR,2007:412- 422.
[10] P Entwurfsmuster,Power of Events,The:An Introduction to Complex Event Processing in Distributed Enterprise Systems[M], PAddison- Wesley,2002
Complex Event Monitoring Technology and Application for Sensor Network
Gao Qihang1,Li Guoping2,Yan Ke1
(1.Fudan University,Shanghai 201203,China; 2. Shanghai SMI RAW Water Co.,Ltd.,Shanghai 200123,China)
In the existing reservoir monitoring system,the sensor network is consist of large numbers of sensors. Thus,the existence problem is how to monitoring large scale sensor networks. The traditional way is extracting all the reservoir water quality indicators and monitored by certain stuff. But it was faced with the problem that the stuff should watching the system all the time,it was very inconvenient for user to use the system in a new computer and the indicators were not configurable. Thus,this paper designed and implemented a reservoir forecast and monitoring system based on the B/S structure. By extracting the reservoir real time data,the system can efficiently monitor and manage different stations. Then,the paper proposes the classified framework for event definition to define and combine events in order to monitor the water quality data freely. And the forecast module can give advice and warning of the future algae status. The system can obviously improve the reservoir working environment and fulfill the requirement for water quality monitoring.
Water Monitoring; Classified Framework For Event Definition; Complex Event; Algae Forecast
TP311
A
1007-757X(2016)03-0019-04
基于物联网的青草沙水库藻类监测预警平台研究;上海市科学技术委员会科研计划项目(14231200401);上海市科学技术委员会科研计划项目(15DZ2281800)
高启航(1991-),男,山东淄博人,复旦大学,大数据与知识工程实验室,硕士研究生,研究方向:数据集成及工程应用,上海,201203
李国平(1960-),男,上海城投原水有限公司,高级工程师,学士,研究方向:原水运营管理,上海,201203
闫 可(1993-),男,山西长治人,复旦大学,大数据与知识工程实验室,硕士研究生,研究方向:软件工程,上海,201203
(2015.12.15)