基于物联网技术的供水信息系统设计与实现
2011-10-09邓海生董佐军李军怀
邓海生, 董佐军, 吴 强, 卜 莉, 李军怀
(1.西京学院 教务处,陕西 西安 710123;2.宝鸡石油钢管厂 陕西 宝鸡 721008;3.西安理工大学 计算机科学与工程学院,陕西 西安 710048)
随着国民经济的迅猛发展,城市、农村供水在国民生活中所起的作用越来越大。但传统的供水管理信息化水平不高,特别是省级水利部门和下级水厂之间的数据集成程度较低,上级部门无法实时了解各个水源监测点的情况,有关部门无法及时获取决策和分析需要的数据,不利于提高工作效率,保证供水质量,满足日益增产的用水量的需求。因此有必要建立供水数据采集和监控系统,保障城市供水,提高经济效益[1]。同时,结合水利行业因具有安全要求高、空间跨度大、野外作业多等特点,需要更广泛、有效地运用高新科技,尤其是物联网相关技术,加快水利行业信息化的进程[2]。物联网是指通过射频识别、传感器、GPS等信息传感设备,把任何物品与互联网相链接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络概念。
目前,国内城市供水系统中采用的数据通信可简单分为有线和无线两大类[3]。根据水源监测点的地理位置特点,通过有线方式实施非常不方便,而且成本高。无线数据通信因其组网灵活、投资较少、建设周期短、运维简单、性价比高等优点,逐渐成为供水管理中的主要数据传送方式。
同时,目前的供水信息收集与管理方式主要为人工管理,数据来源比较分散,水源数据是通过各地水厂水源监测点的数据采集终端(摄像头、RTU或水质监测仪器等)采集,而诸如生产、运行、销售等管理信息大多以纸质报表的形式处理;同时,上级的政策法规、文件、信息,是以书面形式送达各地水厂。这种管理方式使得供水建设管理处决策层难以及时的了解各地水厂的水源以及生产、运行、销售等情况。
为了解决上述问题,研究并开发一个基于物联网技术的供水信息系统,包括通信传输硬件组网和供水信息系统软件。各地水厂数据通过物联网感知部件采集,并通过3G无线网络进行传输,最终传送到省级数据中心,然后进行数据的分析、显示。这样,可以快速实现对各个水厂水源监测点的供水数据及生产、运行、销售等管理数据的收集、传输、显示、分析及历史查询以及报警等功能,以供上级领导决策参考,实现供水管理的快速、高效、准确化。
1 供水信息系统总体结构
1.1 城市供水流程
城市供水的过程是:由水源取水送到自来水厂,在自来水厂经过消毒、沉淀、过滤等过程后送入城市供水管网,提供给城市居民或工业用户等使用。水源可来自水源井,也可来自地表水。在城市供水管道中途设有中途加压站,在城市管网中还设有许多测压点。城市供水工艺主要包括以下几个部分:原水提取、净化处理和净水输送[4]。典型的供水工艺流程如图1所示。
图1 典型的供水工艺流程Fig.1 Typical water supply technical process
1.2 系统网络拓扑结构
根据上面的分析,本文开发的城市供水信息系统由3个部分组成:各个水厂数据采集与局域网络系统、无线数据传输网络、省级数据中心,分别对应感知层、网络层和应用层,其总体结构如图2所示。
图2 系统网络拓扑结构Fig.2 Topology of Network
本供水系统解决方案在完成综合感知的基础上,具有结单、适应性强和可靠性高的优点。该方案综合采用流量监测设备、水质检测设备和视频监测设备等,对水流量、水质 、视频信息等进行实时采集 ,以标准工业电信号上报综合信息化采集器 ,接入到3G网络 。综合信息采集器采用多路A/D复用传感器采集通道 ,可外接多路模拟量、数字量传感器探头,提供水质检测仪协议转换和数据量转换,提供视频模拟信号转换数据信号,最终将视频信号、质监测信号和水量监测信号合并上传。
2 基于中间件的供水信息系统模型
针对无线网络高损耗、高延迟、低带宽、低可靠性等特点,传统的分布式计算使用的C/S模型已经不能满足实际应用的需要,必须采用新的模型解决本应用的问题。目前有3种比较流行的无线计算软件模型:C/A/S(Client/Agent/Server)模型、C/I/S(Client/Intercept/Server)模型和移动 Agent模型[4-5]。本系统软件借鉴C/I/S模型的思想,并充分考虑CDMA网络的传输特点及系统功能需求基础上,架构了一个基于中间件技术的供水信息系统软件模型,如图3所示。
图3 无线计算软件模型Fig.3 Wireless computing software model
所有的数据通信由通信服务中间件完成,这种分离的方式使得数据中心和水厂可以集中精力于数据的处理和上报而不必考虑数据的传输。这使得数据中心和水厂之间的数据传输透明化。中间件负责传输数据和日志记录等工作。如图3所示,服务器由系统配置、数据接口、异常处理、安全认证、QoS、消息协议、数据通信组成;终端由数据缓存、日志、参数配置、异常处理、消息协议、数据通信组成。其中,消息协议即为行业数据通信协议,定义了供水系统数据包的格式,系统中所有数据传输时都要采用消息协议来封装和拆包。而服务器提供安全认证和QoS确保系统的安全性和性能。终端在数据传输之前提供数据缓存以便在数据丢失或者突然断电等意外情况下不丢失数据,保证数据完整性。同时还提供日志来记录所有操作。系统配置和参数配置提供终端和中心之间顺利通信所必须的配置。
3 系统关键技术实现
3.1 使用WSE2.0保护Web服务安全
软件采用Web服务方式开发,Web服务以SOAP协议为基础,安全性是其一大问题。笔者分析了Web服务的安全需求,并采用.Net框架的WSE2.0实现了Web服务安全[6-7]。
WSE2.0提供 Microsoft.Web.Services.SoapContext类,可以用它处理WS-Security SOAP头和其他入站的SOAP消息头,同时可为出站的SOAP消息添加WS-Security头。WSE还有一个包装类为SOAP请求和响应添加 SoapContext,同时服务器使用一个SOAPExtension类“Microsoft.Web.Services.WebServices Extension”,让用户可以验证入站的SOAP消息,还提供了可从WebMethod中访问的请求和响应SoapContext。
本系统都使用X.509证书进行身份认证和消息签名加密。服务端接收到SOAP消息后,服务器会根据web.config文件中的X.509元素的属性设置来验证证书有效性。仅有身份认证不能保证收到的SOAP消息就是声明的用户发送的,因此还需要对发送的SOAP消息进行签名,以供服务器确定认证的用户是否就是发送消息用户[8]。
3.2 无线环境下Web服务QoS策略
由于系统的通信是基于无线环境的,无线环境高延迟低带宽的特点对系统性能有很大影响。针对此问题,文中采用了几种无线环境下QoS策略,包括异步调用Web服务、缓存Web服务、大数据量低频率访问和SOAP响应压缩等。
1)异步 Web服务
当使用同步Web服务方法时,要发送对该方法的响应。如果完成请求需要较长时间,那么处理请求的线程会一直被占用,直到方法调用结束。让线程一直处于等待状态,在服务器的运行压力很大的情况下是很不好的。这个时候可以使用异步Web服务,在后台进程完成时,调用一个回调函数结束对请求的处理,并通知ASP.NET请求已完成。
Net处理Web服务的过程是,编写ASP.NET Web服务时,.Net只是编译代码以创建程序集;当收到对其 Web方法的请求时,将调用该程序集。程序集本身并不知道关于SOAP的任何事情。因此,当应用程序首次启动时,ASMX处理程序必须反映程序集,以确定提供哪些Web方法。对于同步请求,操作很简单:找出哪些方法具有关联的WebMethod属性、基于SOAPAction HTTP标头来设置调用正确方法的逻辑。对于异步请求,在反映过程中,ASMX处理程序寻找具有某种签名并将签名标识为异步的Web方法。
异步Web方法的标识规则为:包含两个用WebMethod属性进行标识的方法 BeginWebMethodName和EndWebMethodName,其中WebMethodName表示要提供的方法的名称。 BeginWebMethodName函数返回一个IAsyncResult接口,并分别接受 AsyncCallback和一个对象,作为其最后两个输入参数。 EndWebMethodName函数接受一个IAsyncResult接口,作为其唯一的参数。
如果ASMX处理程序发现两个方法符合上述所有条件,则将方法WebMethodName作为常规的Web方法在其WSDL中提供。该方法将接受在BeginWebMethodName的签名中的AsyncCallback参数之前定义的参数作为输入,并返回由EndWebMethodName函数返回的内容。
2)缓存 Web服务
建立Web服务的时候并没有办法预计将会有多大的访问量。而有些查询结果在一定时间内是重复的,因此可以采取缓存Web服务的方法来预防访问量过大的问题。
.NET提供CacheDuration属性来实现缓存Web服务的结果。CacheDuration属性告诉你的ASP.NET应用程序为针对特定的Web方法同样的请求保存结果的时间。用法如下:
<WebMethod(CacheDuration:=value)>
value的单位为秒。当Web方法使用相同的参数集被调用时,.NET会识别出来那个方法已经被使用同样的参数调用过,并且会检查响应是否已经被缓存。如果没有缓存,它将执行方法,然后缓存响应并跟踪时间以开始递减计数CacheDuration属性;如果Web方法的响应已经被缓存过,缓存的响应会立即返回给客户,大大提高了性能。如果响应被缓存了,但是发现缓存已经过期,方法将会被再次执行,响应将再次缓存设置的缓存时长。
3)低频率大数据量访问
无线网络自身的特点决定了其适合进行突发的、间断的数据传输。在这样的环境中进行分布式计算,如果频繁进行Web服务调用查询数据显然是不合适的。因此系统可以采用采用大数据量的方式一次性进行信息交换。这种低频率大数据量的访问模式可以提高系统性能。
4)压缩SOAP响应
Web Service所有的通讯是通过SOAP进行的,而SOAP是基于XML的。XML Web Services使用文本通信,而压缩文本可以使其尺寸减少80%,这就意味着在网络上传输内容需要更少的时间[9]。
在实际过程中,SOAP请求可能要比SOAP响应小很多,例如一个查询结果的SOAP响应可能是一个很大的数据集,因此,只要对SOAP响应进行压缩就能够达到很好的效果。
Net提供SOAP扩展以便在SOAP消息传输前对其进行操作。本系统开发中采用如图5所示的机制,即在服务端序列化SOAP响应信息后压缩它;在客户端反序列化SOAP信息前解压缩它。
图4 SOAP信息压缩(服务端)解压缩(客户端)Fig.4 SOAP information compress(Server)and decompress(Client)
4 结束语
城市供水信息系统研究与开发,可以帮助供水管理部门及时、准确了解、分析区域各供水系统的运行、管理及水质情况,为科学决策提供依据。本文介绍了一种基于物联网技术、采用Web服务构建供水信息系统的模型和实现方法,对于其他行业物联网应用系统的开发也具有很好的实际意义。进一步的工作将特别针对无线网络的特殊性从系统性能优化方面进行更深入的研究与实现。
[1]张春海,孙妍.基于CDMA2000 1X网络的城市供水监测调度系统[J].吉林大学学报,2005,23(5):466-473.
ZHANG Chun-hai, SUN Yan.Urban water supply system for monitoring and dispatching based on CDMA2000-1X[J].Journal of Jilin University, 2005,23(5):466-473.
[2]大唐电信.水利物联网系统方案[J].电信技术,2010(8):46-48.
Datang Telecom.System solutions of water resource based on internet of things[J].Telecommunications Technology,2010(8):46-48.
[3]孟庆龙.基于GPRS的城市供水监控系统的设计与实现[D].山东:山东大学,2005.
[4]Samaras C S G, Pitoura E, Evaripidou P.Mobile agent for wireless computing: the convergence of wireless computational models with mobile-agent technologies[J].Mobile Networks and Application,2004(9):517-528.
[5]Barron C H, George S, David B.Lindquist.Web/Express:A client/intercept based system for optimizing Web browsing in a wireless environment[J].Mobile Networks and Application,1998(3):419-431.
[6]贺正求,吴礼发,洪征.Web服务安全问题研究[J].计算机科学,2010,37(8):32-39,87.
HE Zheng-qiu, WU Li-fa, HONG Zheng.Researchon security problems of Web service[J].Computer Science,2010,37(8):32-39,87.
[7]谢琦,赵丽红.Web服务安全性的研究与实现[J].计算机工程与设计,2007,28(18):4366-4369.
XIE Qi, ZHAO Li-hong.Research and realization of web services security[J].Computer Engineering and Design,2007,28(18):4366-4369.
[8]孙茂圣,王铁山,赵铃君,等.一个基于情境的Web服务安全模型[J].微电子学与计算机, 2009,26(10):89-92
SUN Mao-sheng, WANG Tie-shan, ZHAO Ling-jun, et al.A context-based security modelforWeb services[J].Microelectronics&Computer, 2009,26(10):89-92
[9]Mike Nikitas.Improve XML Web Services'Performance by Compressing SOAP.[EB/OL].(2003).http://www.dotnetjunkies.com/Article/46630AE2-1C79-4D5F-827E-6C2857FF1D23.dcik,2003.