基于XML技术的WSN网关系统的设计与实现

时间:2022-07-11 10:51:49

基于XML技术的WSN网关系统的设计与实现

摘 要:为了完成Internet与WSN之间的互联,扩展WSN数据服务,提出一种基于XML技术的WSN网关系统的设计和实现方案。基于S3C2440低功耗嵌入式处理器设计并实现了具有以太网,USB等扩展接口的网关硬件平台。利用XML技术和XML-RPC技术,设计了“用户配置,按需解析”的网关中间件。利用Flash动态网页和Web Service服务提供实时动态数据表现。网关系统有效地将数据解析与应用表现分离,实现了“一网关多用途”的功能,大大地简化了网关系统的配置、部署,提高了网关系统的重复利用性。

关键词:WSN; XML; XML-RPC; 嵌入式网关

中图分类号:TN915; TP311 文献标识码:A

文章编号:1004-373X(2010)14-0014-04

Design and Implementation of XML-based Gateway System in WSN

QIN Wei-jian ,WANG Fu-bao, DUAN Wei-jun

(Institute of Broadband Network, Northwest Polytechnical University, Xi’an 710072, China)

Abstract: The XML-based embedded WSN gateway system was designed for converting the data between Internet and WSN. The software design and implementation of the gateway are included. The paper presents how to make full use of XML and XML-RPC to improve the WSN gateway system. The gateway system has great flexibility to decode the data from WSN according to user's configuration, which depends on the advantages of XML technique. It is easy and friendly for users to configure, deploy and reuse this gateway through the middleware.

Keywords: WSN; XML; XML-RPC; embedded gateway

0 引 言

无线传感器网络(wireless sensor networks,WSN)是20世纪90年代末兴起的一种用于感知、采集和处理所覆盖区域物理信息的网络技术[1]。通过在监测区域内部署大量的自治节点,形成多跳的自组织网络,无线传感器网络作为一种全新的网络模型和计算模式,延伸了人类信息采集的能力[2-3]。

Internet是当今世界上规模最大,范围最广的计算机网络,为人们提供资源共享,信息传输等多种便捷服务。但是,Internet网络缺乏与物理世界直接打交道的能力。要实现“无处不在的计算”理念,形成“无处不在的网络”,就必须解决WSN接入Internet的问题,使Internet中的用户可以选择和使用WSN的实时数据监测服务[4-7].

可扩展标记语言(extensible makeup language,XML)主要用来规范地传送和携带数据信息。XML-RPC(XML remote procedure call)是使用HTTP作为传输协议,XML作为传送信息编码格式的远程调用方式。

本文的目的就是使用XML语言和XML-RPC技术,实现WSN与Internet网络之间的互联。系统的主要特色有:

(1) XML语言作为配置文件的基本格式。用户依据规定的格式编写XML文件,完成对网关的配置工作。

(2) XML语言作为消息的基本格式。网关系统将解析完成的数据,以XML文件格式返回给用户。XML-RPC传输协议,支持用户与WSN节点之间的双向操作。

1 系统概述

该网关系统由硬件层、OS层、中间件和应用层4部分组成(如图1所示)。其中硬件层描述了网关的硬件实现,主要包括核心处理器、存储设备等;OS层是操作系统,主要负责硬件驱动、网络协议转换和任务调度等,并封装关键的API函数供上层模块调用;中间件是该系统的核心,实现了WSN与Internet之间的互联;应用层是可选的模块,可以集成在网关系统上,或配置在用户端,例如Web服务器和数据库技术等。

图1 网关系统的总体结构

系统功能描述:WSN将实时采集到的环境信息传送给Sink节点,再由Sink节点传送至网关系统。网关系统利用用户配置文件对数据进行处理、解析,最后封装成XML格式的文件,通过Socket服务将最终数据发送至Internet用户。同时,网关系统监听来自用户的XML格式命 令,通过XML-RPC远程调用对WSN节点进行查询和监测。

2 硬件设计与实现

三星公司的S3C2440是一款优秀的ARM9核心处理器,具有400 MHz的主频,内部集成了多个功能模块。该系统基本硬件框架如图2所示。64 MB的NAND FLASH主要用于存放Bootloader和Linux内核文件,主要的文件系统和应用程序是扩展存储SD卡中的。提供RJ45网络接口标准的USB和RS 232接口。

图2 网关系统硬件结构

操作系统层采用嵌入式Linux 2.6.24,为下层的硬件提供完善的驱动,并为上层的应用软件提供API函数。Bootloarder采用Redboot。NAND FLASH采用的YAFFS文件系统,是日志结构文件系统,提供了损耗平衡和掉电保护。SD卡采用的EXT3文件系统是使用索引节点来记录文件信息。

3 软件设计与实现

3.1 总体设计方案

如图3所示,网关中间件启动4个线程:

(1) 创建SerialCom实例[8]。监听串口数据并读入数据Buffer中;监听串口发送任务队列并执行。

(2) 创建XMLParser实例。监听数据Buffer,解析数据,将 XML文件存入Socket发送任务队列。

(3) 创建SocketCom实例。监听Socket发送任务队列和等待用户接入。

(4) 创建XMLSocketServer实例。监听XML-RPC远程调用指令,解析指令,将WSN命令送入串口发送任务队列。

SerialCom是一个串口操作类,封装了读取串口和发送数据等操作,用于监听来自WSN中的数据,发送各种操作指令。XMLParser是一个XML解析和生成类,用于读取和解析XML配置文件,将WSN数据解析成XML文件。SocketCom类提供基本的套接字服务器功能,负责为应用层返回XML格式的数据。XMLRPCServer类支持XML-RPC服务。

图3 网关系统中间件流程图

分层设计使得网关系统的部署更加灵活和自由。网关系统的应用层服务,可以与中间件架设在同一个硬件平台之上,也可以架设在与网关系统中间件在同一个网段中的其他的硬件平台。主要有两点优势:一是减轻网关系统的负担,减小单网关故障发生率;二是使一种应用可以使用多种WSN服务。

3.2 XML配置文件解析

网关系统采用统一的XML配置文件,实现不同传感器数据的解析,以下为土壤湿度传感器的XML配置文件:

Fields标签指示数据包中数据的含义,包括名称(name),位置(byteoffset)和长度(length)。Conversions标签中包含数据处理函数(functions),以及对应参数(ConvParam variablename)和结果(result name)。Filer标签中的参数是数据

定义存储传感器配置的信息的结构体HandlerNode。其中,包括存储Fields标签信息的结构体FeildsNode,存储Conversions标签信息的结构体FunctionNode以及存储Filer标签信息的FilerNode。

网关系统启动后,会读入配置文件夹下的所有XML配置文件,并生成HandlerNode用于数据解析。当WSN中数据传送至网关系统时,依据Filer中的标志参数,判断并选择对应传感器的HandlerNode节点。读取HandlerNode节点,使用FeildsNode对原始数据进行分类,数据依存储在DataNode结构体中的rowdata。系统遍历FunctionNode,读取传感器函数信息。系统调用ExpressToFu()对这些函数进行解析,并从rowdata中读取参数,计算并将结果返回,最后存储到covdata中。详细流程如图4所示。

系统根据DataNode链表中的数据,生成以下所示XML格式的数据,最后通过Scoket服务器发送给用户。

3.3 XML-RPC的远程调用

XML-RPC 是一个轻量级消息传递协议,可支持基于XML的跨异类平台的通信。该系统采用开源的XML-RPC库。

图5所示为XML-RPC库的各个组件的类关系图[9]。xmlRpcServer类用于创建服务器对象,绑定并侦听特定的端口,以及启动服务器。myXmlRpcServer类包括2个重要的私有变量:用于指向服务器中注册的myXmlRpcServerMethod的指针列表――pm_serverMethords和用于设置服务器参数的pm_xmlRpcServer。所有实现方法,必须继承于 myXmlRpcServerMethod 类,定义自己的 execute(…)方法,并在pm_serverMethords中注册。服务器收到 XML-RPC 调用时,将会直接触发该方法的 execute(…)执行。如要实现两整数的相加的方法Add:首先定义该方法实现的自定义类Operations,并向服务器注册该方法。当客户端调用Add方法时,服务器调用其exectue(…)实现该操作。

图4 网关读入XML配置文件及数据解析的流程图

图5 XML-RPC 库和示例应用程序的类关系图

如下所示为网关系统所使用的XML的命令调用格式,该命令实现是对指定节点进行休眠操作。

sleep

destAddress

网关系统还支持对某一节点或某类节点进行实时监测和查询等命令。

3.4 应用层

该网关系统的应用层是Web Services服务[10],采用Apache服务器,ActionScript3语言进行Web开发。Web Services服务与中间件之间使用XML文件进行通信。

ActionScript3中支持Socket服务,使用Socket.con-net()与网关中间件建立连接并监听连接是否成功。建立连接后,调用write方法向服务发送验证信息。通过验证后,就可以使用read方法从网关中间件中读取数据。ActionScript3进行Socket通信是必须解决安全沙箱问题,即ActionScript3在进行Socket连接之前会从网关系统的843端口请求一个安全权限。其解决方法是在网关系统843端口配置安全验证服务[11]。

Flash播放器将从网关系统中间件获取数据绘制动态曲线 (如图6所示)。图形化的界面提供XML-RPC控制服务,用户可以自己编写或交由后台程序生成用于XML-RPC远程调用的XML命令文件。

图6 Flash页面演示

4 结 语

该设计的网关系统有着广泛的应用前景和使用价 值,并在实际的应用中取得了良好的效果。XML文件和XML-RPC协议的引入,使得WSN的网关系统的部署和配置更加灵活和便捷。网关系统支持二次开发,用户可以直接在中间件的基础上开发各种不同的应用服务,如Web Services或是数据库服务。网关中间件与应用服务之间采用XML文件作为通信媒介,大大简化了开发的复杂度,提高了开发效率。随着无线传感器网络技术的发展和应用,设计智能化和低成本的网关系统是解决WSN异构互联的关键技术。本文设计的网关系统正是依据这样的原则,因此具有很强的实用性。

参考文献

[1]任丰原,黄海宁,林闯.无线传感器网络[J].软件学报,2003,14(7):1287-1291.

[2]孙利民,李建中,陈瑜,等.无线传感器网络[M].北京:清华大学出版社,2005.

[3]倪明选,李明禄,薛广涛.无线传感器的基础理论及关键技术研究[M].北京:清华大学出版社,2008.

[4]SHU L, WANG J, XU H, et al. Connecting sensor networks with TCP/IP network[C]//International Workshop on Sensor Networks (IWSN06) in Conjunction with AP Web. Harbin:[ s.n.] , 2006.

[5]匡兴红, 邵惠鹤.无线传感器网络网关研究[J].计算机工程,2007,33(6):228-230.

[6]孙纪敏,沈玉龙,孙玉,等.传感器网络接入Internet体系结构和服务提供方法[J].通讯学报,2008(4):17-20.

[7]ZUNIGA Z. Integrating future large-scale wireless sensor networks with the Internet,CS 03-792[R].[ S.l.] : USC Computer Science, 2003.

[8]冼进,许振山,刘峥嵘,等.嵌入式Linux应用开发与详解[M].北京:电子工业出版社,2006.

[9]SUBBIAN Karthik, KANNAN Ramakrishnan. Enable C++ applications for Web service using XML-RPC[EB/OL].[ 2008-07-11] ./.

[10]吕海莲,贾振堂,吕晓丽.基于Web服务的传感器网络和Internet集成[J].计算机工程与设计,2008,29(5):33-35.

[11]WINNIE Doug. Learning ActionScript one-on-one[EB/OL].[ 2002-11-12] ./devnet/actionscript.

[12]刘乐群.无线传感网络MAC层的节能协议S-MAC性能研究[ J] .现代电子技术,2008,31(1):33-35.

上一篇:基于Matlab的IIR数字滤波器设计方法比较及应用 下一篇:基于FPGA的复数浮点协方差矩阵实现