基于C/B/S的气象无线传感网中间件设计

2013-09-10 01:17张卫江杜景林
计算机工程与设计 2013年9期
关键词:中间件传感数据包

张卫江,周 杰,杜景林

(南京信息工程大学 电子与信息工程学院,江苏 南京210044)

0 引 言

传统的气象自动站都是属于集中式的,其结构设计相对比较封闭,而不同厂商生产的传感器交互性差,不利于构建异构的气象无线传感网。为了保证传统气象站观测数据的准确性和可靠性,每进行一次维护或者更换气象传感器设备,气象部门都需要重新校准标度,这样既提高了维护费用,也浪费了人力资源。面对以上种种弊端,网络型的自动气象站成为一种发展趋势[1]。本文提出的气象无线传感网是由多种不同类型的气息信息传感器节点构成的网络,每个节点都可以自主地采集信息,数据通过多跳路由发送到汇集节点 (sink node),汇聚节点将采集到的数据通过TCP/IP网络协议或者无线方式 (GPRS、GSM)发送到远程中间件,中间件对数据包进行解析、融合、存储,并实时维持与终端用户的通信[2]。中间件的设计[3]充分保证了气象信息获取的准确性、及时性以及可靠性,实现了底层硬件设备和应用程序的无缝连接。

1 关键要点

1.1 中间件技术

气象无线传感网是一个典型的异构无线传感网[4],其内部的节点通常用于监控不同的气象要素 (温湿度、气压、光照等),以满足不同的业务需求。这些节点可能来自不同的供应商,它们采用不同的生产标准,建立一个用于采集气象信息的网络。采集到的数据存放在一个集中的位置,在此之后,数据将被加密发送到相应的应用程序或等待应用请求。不同的业务应用程序可以通过不同的平台 (如PDA、Smartphone、PC)将得到的数据进行融合,以便得到一个有意义的输出值。一旦数据被接收和处理后,业务应用程序可以改变WSN的配置,以延长网络的生命周期[5]。例如,可以通过减少节点的数目或者在夜间关闭部分节点,以减少节点的功耗。图1给出了WSN系统的体系结构。

图1 WSN系统体系结构

中间件作为平台和应用之间的通用服务技术,其将应用集成进行简化,增强了应用的生命力。为了更好地支持应用程序的设计、部署、执行和维护,确保系统的无缝连接,提高应用程序的适应性和扩展性,结合气象无线传感网的特点,本文设计的中间件满足以下几个要求[6]:

(1)代理模式:中间件扮演一个代理的角色,它处理来自应用程序的请求。

(2)并行处理:一个中间件必须支持多线程来处理所有来自业务应用层的请求,并实现最小延迟。

(3)数据交换模式:中间件必须要能够处理两种主要类型的数据交换模型,即拉和推模型。拉模型需要中间件处理来自业务应用程序的请求,这就要求中间件可以按照一个预定义的格式来收集和整合数据,然后将其发送给业务应用层。推模型需要中间件能够支持发布/订阅模式,以便能够实现和业务应用层进行数据的交互。

(4)动态绑定功能:中间件必须能够动态扩展其功能以便在运行时可以允许新的内部服务接入,在不需要时也能够将其移除。

(5)软件服务:这一特征定义,中间件组件必须建立一套服务以适应来自业务应用层的不同类型的请求。一个单一的中间件的基本服务应该是相互分离,并且它们的交互操作可以动态定义。每一个应用程序都可以根据相应的流程定义来访问其指定的服务。

1.2 C/B/S混合模式

中间件与底层通信采用C/S模式,通过选用客户机(Linux操作平台)、中间件、数据库服务器三级模式,并将应用业务逻辑定位在中间件层,从而提高了系统开发的灵活性、可靠性、安全性,维护比较容易,同时功能也易于扩展。

与Web端通信采用B/S模式,终端用户通过浏览器向中间件发送请求后,浏览器与中间件之间通过 WebSocket[7-8]建立连接,然后客户端将请求的信息以预定义的格式发送给中间件,中间件将对客户端的请求做出响应处理,再将应答信息以预定义的格式返回给客户端。

1.3 气象数据特点

1.3.1 气象数据的类型

气象数据的类型繁多,内容也比较丰富。按照内容可以分为常规和特殊观测资料,比如我们熟知的温湿度、气压、光照、风速、风向、雨量等就属于常规观测资料,雷达、卫星云图、全球定位系统等探测资料则属于特殊观测资料。本文主要是对一些常规气象观测资料进行解析、挖掘、存储,同时将常规气象资料与雷达、卫星云图等特殊观测资料进行融合,得出有用的决策信息。

1.3.2 气象数据的格式

气象数据格式的标准化有利于数据的处理[9],图2给出了数据包的类图关系。该格式采用16进制的字节数组存储观测到的数据,其优点是:字节数组便于网络中数据的传输,可以直接进行解析;数据以字节为单位,如果传输过程中出现丢包,可以通过预定义的数据格式进行判断,减小数据损失;该数据格式的可扩展性、灵活性较强,使用广泛。

图2 数据包类图关系

2 中间件总体框架的设计

2.1 中间件的框架设计

根据气象无线传感网的业务需求,中间件的具体模块设计如图3所示[10]。本文所设计的中间件位于汇集节点(sink node)和终端用户 (Web客户端)之间,主要负责气象无线传感网和工作人员的交互,包括基本信息的初始化,报警阈值的设定和报警信息的确认、分析、处理,对节点的指令下达操作,以及对不同类型的气象要素传感器的数据进行分析和处理。各模块的具体功能描述如下[11-12]:

(1)服务管理模块:主要由应用服务管理和应用服务接口两部分组成。其中应用服务管理负责处理来自Web端及底层Sink Node的服务请求信息,而应用服务接口则是负责初始化通信接口及相关配置信息。

(2)元信息模块:主要包括 Web端用户、Sink Node、Sensor Node的基本信息。元数据主要有两种类型,即静态数据和动态数据。静态数据包括Web端用户的编号、用户名,节点的编号、地理位置信息以及节点的芯片类型等,而动态数据包括网络中节点的剩余电量、节点的工作状态、节点的存储空间等。

(3)状态信息模块:主要记录Sink Node和Sensor Node当前的工作状态,并将相关信息存储到数据库中,以便实时维护整个气象无线传感网,延长网络生命周期。

(4)数据解析模块:主要负责从底层网络采集数据,并将数据包进行解析、转换、存储,该模块是整个中间件的一个核心部分。

(5)指令下达和查询模块:主要负责指令的下达以及处理客户端的查询请求。该模块首先要判断来自Web客户端的数据包内容是属于指令操作还是查询操作,然后根据判断结果调用相应的处理方法。

(6)路由信息模块:主要是根据解析的数据包内容,将各节点对应的路由信息记录到数据库相应的数据表中。路由信息主要包括节点所经过的中继节点的ID号、最终到达的Sink Node的ID号以及所经过的跳数。

2.2 中间件的工作模式

图4所示为中间件的工作模式,其中中间件、数据库服务器和终端用户之间相互通信,组成网状模型。中间件建立气象传感器数据接收线程,当接收到传感器数据包后,判断数据包是否符合相应的协议并对其进行合法性和完整性验证。数据包通过合法性检验后,再根据预先定义好的数据包格式进行解析,对实时性要求比较高的数据,例如传感器数值超过报警阈值或者部分传感器不能正常工作,将及时将数据包发送给各终端用户,提示其访问数据库服务器进行更新操作[13]。在该工作模式中,终端用户也可以直接访问数据库服务器,这样既降低了中间件的负载,也使实时性得到了保证。

图3 中间件总体架构

图4 中间件的工作模式

3 中间件软件平台的设计

结合气象无线传感网的特点及需求分析,中间件主要有两大功能:①气象无线传感网节点数据的采集、解析、挖掘、融合、存储;②通过对节点的指令操作来优化整个气象无线传感网,以延长网络的生命周期。

3.1 汇集节点C/S模式通信设计

与汇聚节点通信的具体流程如图5所示。气象无线传感网对实时性的要求较高,这也是衡量整个系统

好坏的一个重要指标。气象信息的生成可以分为定时数据包信息和即时数据包信息。其中定时数据包信息的生成周期是固定的、系统预先设置好的,而即时数据包信息的生成就比较随机,其可能来自Web端的即时数据查询请求或者报警信息等。

图5 与汇聚节点通信流程

中间件作为代理人,首先需要解析接收到的数据包,以确定其类型:①如果是来自Web端的历史数据查询,则可以直接访问数据库获取存储记录,这些记录是气象传感器节点定时采集到的数据,属于定时数据包;②对Web端指令的处理,中间件反馈的应答数据包均属于即时数据包,因为指令是即时产生的。例如想查询气象无线传感网中某个节点的最新状态,则需要直接对相应的节点进行操作,此时返回的是即时数据包;③如果监测到某个类型的气象传感器数值超过了设定的阈值,则会生成报警数据包发送给Web端,该包也属于即时数据包。

将数据包正确解析后,中间件将根据解析出来的内容选择存入数据库或者采取进一步的操作。

3.2 Web页面B/S模式通信设计

WebSocket是一种浏览器和服务器之间全双工通信的网络技术,它能够实现消息的主动 “推送”和 “拉取”。本文所设计的中间件软件与Web端的实时通信采用的就是WebSocket技术[14],浏览器使用的Chrome,具体实现的步骤如下:

(1)Web客户端发送连接请求,通过创建 WebSocket对象,绑定到中间件的IP地址和端口号:ws=new Websocket ("ws://" +document.getElementById ("Connection")).value);

(2)中间件根据http header判断是否是 WebSocket请求,如果是,则通过Connection:Upgrade将请求升级为一个WebSocket连接;

(3)握手成功后,Web客户端和中间件将进入双向长连接的数据传输阶段,通过 ws.onopen、ws.onmessage、ws.onclose、ws.onerror等方法进行通信。

WebSocket的数据传输是基于帧的方式,以0x00表示数据开始,0xff表示数据结束,数据采用的编码方式是UTF8。在对接收到的数据进行处理时,需要对两个字节的帧头数据进行按位解析,以判断传输的消息类型、是否有掩码、传输数据的长度等基本信息[15]。图6给出了与 Web端通信处理的流程图。

图6 与Web通信处理流程

4 系统运行

本系统采用C#语言和最新的ASP.NET技术编程,同时结合Oracle数据库来存储解析后的数据,便于历史记录的查询。系统的运行环境为 Windows XP Professional SP3,实际的运行效果表明该系统各项性能良好,能够满足中间件开发设计的功能要求。图7给出了系统运行部分效果图。

5 结束语

图7 部分运行效果

基于气象无线传感网的中间件平台软件,提高了气象数据采集的实时性和可靠性,并大大降低了应用程序开发的复杂性。该方案:①有效地集成了中间件的各项业务需求,并充分利用现有的体系结构,设计开发了一个具有统一业务架构的中间件软件平台;②系统采用C/B/S混合模式进行开发,各功能进行了模块化的设计,便于系统的扩展;③与Web端采用WebSocket的通信技术,与传统的AJAX长轮询相比[16],本系统为Web实时通信提供了低网络吞吐量、低延时的解决方案,进一步保证了气象信息获取的实时性。在接下来的研究中,将逐步优化各模块的设计,在保证系统高性能运行的同时不断集成更多的功能。

[1]GAO Taichang,LIU Xichuan,LIU Lei,et al.Current and prospective development of the automatic weather station and meteorological sensor [J].Chinese Journal of Scientific Instrument,2008,29 (8):127-133 (in Chinese). [高太长,刘西川,刘磊,等.自动气象站及气象传感器发展现状和前景分析[J].仪器仪表学报,2008,29 (8):127-133.]

[2]CUI Bingjian,DONG Weihong,HUANG Yueqing,et al.Study and design of wireless meotorological sensor network[J].Environmental Science & Technology,2010,33 (6E):55-57(in Chinese).[崔炳俭,董卫红,黄跃青,等.无线传感网在气象领域的应用与研究 [J].环境科学与技术,2010,33 (6E):55-57.]

[3]LI Renfa,WEI Yehua,FU Bin,et al.A review of middleware for wireless sensor networks [J].Journal of Computer Research and Development,2008,45 (3):383-391 (in Chinese).[李仁发,魏叶华,付彬,等.无线传感网中间件研究进展 [J].计算机研究与发展,2008,45 (3):383-391.]

[4]PAN Julong,WEN Yu.A study of heterogeneity in wireless sensor networks [J].Aeronautical Computing Technique,2007:37 (2):124-130 (in Chinese). [潘巨龙,闻育.无线传感网的异构性研究 [J].航空计算技术,2007,37 (2):124-130.]

[5]ZHAI Lifang,LI Chunyuan,SUN Liping.Research on the message-oriented middleware for wireless sensor networks [J].Journal of Computers,2011,6 (5):1040-1046.

[6]BY Alkazem,EA Felemban,AZ Abid,et al.middleware model for wireless sensor networks [C]//Tangier:Multimedia Computing and Systems,2012:67-71.

[7]Chen Lili,Liu Zhenglong.Design of rich client web architecture based on HTML5 [C]//Chongqing:Computational and Information Sciences,2012:1009-1012.

[8]Jiang Fengyan,Duan Huichuan.Application research of Web-Socket technology on web tree component [C]//Hokodate,Hokkaido:Information Technology in Medicine and Education,2012:889-892.

[9]HUA Liansheng,DING Xiansheng,LV Gang.Meteorological data sharing system based on oracle [J].Computing Application,2010,32 (2):162-164 (in Chinese). [华连生,丁宪生,吕刚.基于Oracle的气象数据共享系统 [J].计算机应用,2010,32 (2):162-164.]

[10]YS Jeong,EH Song,GB Chae,et al.Large-scale middleware for ubiquitous sensor networks [J].Intelligent Systems(IEEE),2010,25 (2):48-59.

[11]Chu Xingchen.Open sensor Web architecture:Core services[C]//Banglore:Intelligent Sensing and Information Processing,2006:98-103.

[12]Chu Xingchen,Rajkumar Buyya.Service oriented sensor Web[J].Sensor Networks and Configuration,2007:51-74.

[13]Jeon YJ,Park SH,Park JS.Sensor node middleware to support Web-based applications over wireless sensor networks[C]//Zurich:Local Computer Networks,2009:963-970.

[14]LI Daili,CHEN Rong.The research of WebSocket based on Web real-time communication [J].Computer Knowledge and Technology,2010,6 (28):7923-7925 (in Chinese). [李代立,陈榕.WebSocket在Web实时通信领域的研究 [J].电脑知识与技术,2010,6 (28):7923-7925.]

[15]WEN Zhaosong,YI Renwei,YAO Hanbing. WebSocket based real time web application solution [J].Computer Knowledge and Technology,2010,8 (16):3026-3028 (in Chinese).[温照松,易仁伟,姚寒冰.基于WebSocket的实时Web应用解决方案 [J].电脑知识与技术,2012,8(16):3026-3028.]

[16]Pinemtel V,Nickerson BG.Communication and displaying real-time data with WebSocket [J].Internet Computing(IEEE),2012,16 (4):45-53.

猜你喜欢
中间件传感数据包
《传感技术学报》期刊征订
新型无酶便携式传感平台 两秒内测出果蔬农药残留
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
IPv6与ZigBee无线传感网互联网关的研究
C#串口高效可靠的接收方案设计
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
中间件在高速公路领域的应用
某型Fabry-Perot光纤应变计的传感特性试验