基于Web的结构安全监测云平台设计与实现
2015-06-08宗原严冬
宗原,严冬
(江苏大学 江苏 镇江 212013)
随着土木工程领域的发展以及大型结构物搭建的日益普遍,我国已经进入了建筑结构安全事故高发期,国内结构物失效的突发性和灾难性事故日益增多,而传统的离线式结构安全监测型系统[1]是根据某一具体的结构物进行监测,通过对该结构物下传感器数据采集[2]来监控反应结构物状态的数据(如:温度、湿度、风速风向等)和在出现数据异常的时候产生对应的数据预警。因此建立在线的结构安全监测机制已经刻不容缓。
目前,国内外已有一些基于Web的桥梁、尾矿库[3]等结构物的安全监测系统的研究工作,其中大部分是基于历史数据的展示,监测系统只能应用于单一结构物且缺少对结构物整体状态的评估,整体系统的设计和上线运行时间耗时较长,存在展示信息单一且系统不可重用等缺点。针对以上问题,本文提出了安全监测云平台的体系结构,在确保以往结构物数据展示的基础上,新增了监测数据和告警的实时推送、结构物整体的实时评分、用户定制的数据报表以及基于Web的结构物接入和配置功能,大大减少了结构物接入的周期和工作量。
本文旨在搭建一个结构安全监测的云平台来弥补传统的监测型网站[4]的不足,在该云平台数据库中预先配置各种类型结构物需要的传感器、监测因素以及一些结构参数,并可以根据需要接入结构物的类型进行动态调整。该云平台总体分为两部分:1)用户下所属结构物的数据展示分析,数据告警等;2)结构物接入云平台的详细配置功能,接入完成后分配给对应的用户即可立即上线进行安全监测。针对整个云平台的数据采集存储和展示过程,本文提出了分层的安全监测系统体系结构,数据接入层将底层传感器的数据采集传输到数据库,服务平台层提供数据的存储和持久化操作,并向外提供一些定制的数据接口,应用层为用户提供可视化的数据展示界面和结构物接入的入口,使得用户能够在Web端查看到结构物监测历史和实时数据[5]的曲线图、表格等,同时还能查看结构物传感器分布的拓扑结构、管理传感器节点[6]、接收数据告警等。
1 系统体系结构及设计
本文提出了分层的结构安全监测云平台系统,其体系结构如图1所示,由下到上可以分为:数据接入层、服务平台层和应用层。
图1 云平台体系结构Fig.1 Cloud platform architecture
基于图1的体系结构,构建的结构安全监测云平台的工作方式是:数据接入层中有大量的传感器节点,通过数据采集和发送模块把数据上传到网络服务器,服务平台层将采集到的数据存放到数据库,并定制相应的数据接口和一些进程用于实时的评分和告警,最终应用层通过向数据接口请求数据,通过浏览器将数据合理展示出来。各个层次的具体说明如下:
1.1 数据接入层
数据接入层由传感器和数据发送模块DTU组成。常见的一些传感器类型有:表面应变计、加速度传感器、温湿度传感器等。云平台中不同的结构物下配置不同数量和种类的传感器节点,传感器接入到DTU上,由DTU将采集数据通过3G或者WIFI发送到服务平台层。
1.2 服务平台层
在分层的结构安全监测云平台中,服务平台层是应用层的数据支撑,上层Web端稳定可靠的运行离不开服务平台层提供的数据接口和各种服务进程。在本云平台中,服务平台层主要包括以下几个模块:数据接口、推送服务模块、评分进程、告警进程。
1.2.1 数据接口
数据接口的主要任务是为Web端提供数据源,Web端将得到的数据以曲线图、表格等多种形式展现给用户。数据接口使用了ORM的数据持久化框架[7],通过NHibernate技术[8]将持久化类映射到SQL关系数据表结构,如图2所示。
图2 数据接口持久化框架Fig.2 Persistence framework of data interface
基于图2的数据持久化框架,NHibernate通过创建持久化类来完成对象关系映射,再通过一系列XML映射文件,将持久化类与关系数据库表一一对应起来,从而实现系统业务数据的持久化。当Web应用通过数据接口访问数据库时,首先读取NHibernate配置文件,再通过配置文件中找到持久化类的XML映射文件,根据该映射文件得到相应的持久化类,从而可以对类进行操作。最后将这些对类的操作封装成Web API的数据接口,并对外发布成Web服务,客户端可以通过HTTP的GET和POST请求方式向数据接口请求数据或者提交表单,服务器根据请求的URL内容操作持久化类来查找对应的数据集,并以一种轻量级的数据交换格式JSON返回给客户端。
ASP.NET Web API可以创建功能强大的数据接口,支持在浏览器或者移动客户端中访问,定义了默认的路由机制通过查询请求URL中的参数来定位资源,关键在于构建易于理解且结构良好的URL。Web API采用JSON作为返回数据的格式,因为JSON较常见的XML格式更加轻量级,更易于阅读和解析处理。如返回传感器某段时间历史数据的接口如下所示:
其中sensorID是传感器编号,startDate和endData是查询的起始时间和结束时间,返回的JSON格式的数据集如下所示:
服务平台层的数据接口整体结构如图3所示,总体包括用户、结构物、告警、监测因素、传感器、采集设备、数据报表、系统日志等模块。每个模块都有对应的增删改查的数据接口。
1.2.2 推送服务模块
在云平台中,对于一些实时性要求比较高的功能,比如一些监测因素数据的实时展示、告警的实时推送等,这些功能的实现都需要一种服务端向客服端主动发起通信的机制。
图3 数据接口整体结构Fig.3 Contents of data interface
在传统的Web客户端中,由于http协议本身是无状态,只能由客户端主动发起连接。其中Ajax长轮询是最常用的解决实时性展示需求的技术,通过间隔不断的异步Ajax请求去保持数据刷新,但这也很大程度加重的服务器的负载。随着HTML5技术的发展,出现了另一种实时通信机制:Web Socket。WebSocket是一种全双工的双向通信机制,可以在Web客户端和服务器之间提供一种类似TCP socket的持续的、双向的、有状态的通信方式。推送服务模块的整体框架如图4所示。
图4 推送服务模块整体框架Fig.4 Overall framework of pushing service
基于图4的框架结构,应用程序建立一个实时连接需要向推动服务模块发送订阅请求,订阅服务进程将订阅请求加入消息队列MQ中,当产生新数据时由推送服务通过Websocket向Web端推送数据,产生新告警时推送给订阅进程,由短信模块向用户发送短信告警。推送结束后将该连接从MQ队列中移除。
1.2.3 告警和评分进程
告警进程和评分进程是作为服务平台层的业务数据的支撑,其处理流程如图5所示。告警进程是根据传感器的采集数据所在的阈值范围来判断是否产生对应的数据告警。评分进程是通过结构物下各个传感器配置的阈值和权重分级计算出当前结构物的整体评分,并提供历史评分和实时评分的查询接口。评分规则按如下公式计算:
公式中:W是权重,S是评分,即结构物下所有传感器评分和对应的权重乘积之和,其中传感器的评分由配置的阈值范围决定。
图5 评分和告警处理流程Fig.5 Processing of rate and data alarm
1.3 应用层
在本文提出的结构安全监测云平台体系结构中,应用层位于最上层,主要是基于Web的监测数据展示和结构物接入后台管理。其主要功能结构如图6所示。
图6 云平台应用层体系结构Fig.6 Application layer architecture of cloud platform
图6是云平台应用层的主要模块划分,数据展示和结构物接入是应用层的两大模块。其中数据展示模块详细说明如下:
1)系统主页。该模块主要展示用户最关心的当前结构物的总体评分,可以反映出结构物的实时健康状态。拓扑图是展示结构物下传感器的分布情况,并可以通过鼠标悬浮事件查看各个传感器的最新数据。
2)监测项目数据展示。该模块主要提供传感器历史和实时数据查询功能,用户选择传感器类型、节点、起始时间后,在Web端以曲线图和表格的形式展示出传感器数据,其中绘制图表时采用了开源的JS插件Highcharts。
3)GIS地图展示。当一个用户下接入多个结构物时,用GIS地图模块直观地展示接入结构物的位置信息,便于用户在多个结构物之间做切换。
4)告警管理。该模块主要是查看当前用户下所属结构物产生的告警信息,并按照已处理和未处理分类,用户可以通过确认未处理告警将告警状态置为已处理。此外,用户还可以配置短信预警的接收人,当系统产生新的告警时会以短信的方式通知接收人。
5)报表管理。系统会按结构物、监测因素生成对应的数据报表,报表类型有年、月、日报表,用户可以查看和下载。
结构物接入模块是可以快速将新的结构物接入配置并上线监测,其详细说明如下:
1)结构物管理。该模块除了包含新增、修改、删除结构物的操作外,还包括对结构物分配需要监测的因素,配置对应的传感器组,然后对传感器设置阈值和权重。
2)告警管理。不同于用户下的告警管理模块,该模块是在后台进行告警过滤,将需要展示的告警下发给对应的用户,并可以设置告警产生的规则等。
3)报表管理。该模块主要用于配置展示给用户的报表模板。
4)用户管理。该模板用于创建或删除接入云平台的用户,用户创建完成后可以将系统中的结构物分配给用户,用户和结构物之间是多对多的关系。
如上所述,借助服务平台层提供的数据支撑,云平台的应用层提供给用户数据展示、告警推送、后台接入等功能,满足了监测数据的可视化、预警的实时推送和平台接入入口等需求。
2 系统实现与测试
按照如图1的体系结构搭建结构安全监测云平台系统,传感器采集的数据通过DTU传输到服务平台层,系统服务平台层部署在一台Windows Server 2008服务器上。其中数据接口和推送服务模块都是由.NET技术实现,数据库采用SQL Server数据库并使用了NHibernate数据持久化的技术。
Web端开发使用基于BootStrap的前端开源框架,数据绘图等使用了Highcharts的开源插件,已在谷歌、火狐、IE等主流浏览器上测试运行成功。如图7所示,用户选择查询的传感器节点和时间段后,可以得到对应历史数据的趋势图,右边的表格展示了数据的最值和传感器的历史告警、阈值等信息。如图8所示,在结构物接入管理页面,用户可以新增结构物,结构物的方案配置里包括结构物监测因素、传感器、阈值权重的配置等。
3 结束语
本文以结构安全监测应用为背景,提出了搭建一个分层的在线安全监测的Web云平台系统,根据市场和用户需求,实现了结构物快速接入并上线运行监测的基本功能,给用户提供了可视化的监测界面。在后续工作中,可以根据不同结构物展示的内容差异,对云平台进行优化以提高系统的可扩展性,从而满足各种应用场景。
图7 云平台数据查询运行效果Fig.7 Operating results of cloud platform data query
图8 云平台结构物管理运行效果Fig.8 Operating results of cloud platform structure management
[1]WANG Hong-hui,TUO Xian-guo,ZHANG Gui-yu.Panzhi hua airport landslide and an emergeency monitoring and warning system based on the internet of things[J].Journal of Mountain Science,2013(5):873-884.
[2]LIU Xing,WU Zhong-ru,YANG Yang.Information fusion diagnosis and early-warning method for monitoring the longterm service safety of high dams[J].Journal of Zhejiang University-Science A (Applied Physics&Engineering),2012(9):687-699.
[3]王建国,李磊.基于ASP.NET的尾矿库在线安全监测系统设计[J].计算机与数字工程,2014(1):91-94.WANG Jianguo,LI Lei.Design of tailing pond online safety monitoring system based on ASP.NET[J].Computer&Digital Engineering,2014(1):91-94.
[4]张勇华.基于Web中间件的运维管理系统的性能优化方法研究与实践[J].电信科学,2011(11):147-154.ZHANG Yong-hua.Research and practice of middleware performance optimization based on Web EOMS[J].Telecommunications Science,2011(11):147-154.
[5]贺超波,陈启买.基于Web的实时数据监测系统的研究与实践[J].计算机技术与发展,2011(3):200-204.HE Chao-bo,CHEN Qi-mai.Research and practice of realtime data monitoring system based on Web[J].Computer Technology And Development,2011(3):200-204.
[6]韩吉,周杰,杜景林.基于Android的气象WSN监测系统设计与实现[J].计算机工程与设计,2014(8):2709-2714.HAN Ji,ZHOU Jie,DU Jing-lin.Design and implementation of monitoring system for meteorology WSN based on Andriod[J].Computer Engineering and Design,2014(8):2709-2714.
[7]李杰.基于ORM的轻量级数据持久化技术研究及应用[J].计算机科学,2010(9):190-193.LIJie.Research and application oflightweightdata persistence technology based on ORM[J].Computer Science,2010(9):190-193.
[8]赵广利.基于NHibernate的数据持久化方案 [J].计算机工程,2009,35(20):53-55.ZHAO Guang-li.Scheme of data persistence model based on NHibernate[J].Computer Engineering,2009,35(20):53-55.