1 / 10
文档名称:

基于XML的传感器网络数据适配中间件.pdf

格式:pdf   大小:367KB   页数:10页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于XML的传感器网络数据适配中间件.pdf

上传人:李十儿 2022/9/30 文件大小:367 KB

下载得到文件列表

基于XML的传感器网络数据适配中间件.pdf

相关文档

文档介绍

文档介绍:该【基于XML的传感器网络数据适配中间件 】是由【李十儿】上传分享,文档一共【10】页,该文档可以免费在线阅读,需要了解更多关于【基于XML的传感器网络数据适配中间件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。基于XML的传感器网络数据适配中间件
王一,纪阳**
(北京邮电大学信息与通信工程学院,北京100876)
5摘要:传感器网络能够将分散在物理环境中的感知节点组织起来,各个节点获取的感知数据
可以通过网络向上传输,为应用服务提供丰富的数据资源信息,但同时感知数据的异构性使
得对数据进行统一传输的难度变大,数据汇聚和处理变得复杂。为了实现传感器网络中感知
数据的统一传输,本文基于XMLSchema和Modbus通信协议,研究并设计了一种数据适配中
间件,统一了数据传输的方式,屏蔽了各个感知数据源的异构性以及数据内容等细节,降低
10了数据处理难度。
关键词:传感器网络;数据适配;中间件;XML
中图分类号:TP393
XML-basedDataAdaptationMiddlewareforSensor
15Networks
WANGYi,JIYang
(SchoolofInformationandCommunicationEngineering,BeijingUniversityofPostsand
Telecommunications,Beijing100876)
Abstract:Sensornodesdispersedinthephysicalenvironmentcanbeorganizedbysensornetworks,
20sensordataofeachnodethatprovidesapplicationsrichinformationwilltransmitthroughthenetwork.
Butatthesametime,theheterogeneityofsensordatamakesdataunifiedtransmissionmoredifficult
,a
typeofdataadaptationmiddlewarebasedXMLSchemaandModbusprotocolareproposedinthis
,theheterogeneityanddetailofeachdatasource
.
Keywords:SensorNetworks;DataAdaptation;Middleware;XML
0引言
传感器网络是由许多在空间上分布的自动装置组成的一种计算机网络,这些装置使用传
30感器协作地监控不同位置的物理或环境状况(比如温湿度、光照、声音、振动、压力、电流、
电压、电量或污染物等)。传感器节点将感知到的数据通过节点上的通信模块上传至网关或
者平台,再由网关或平台对数据进行进一步的传输与开放。
由于传感器种类各异,所感知的数据类型也各不相同,因此直接对这些数据进行统一传
输存在很大的困难,而且即使是感知同一类型数据的传感器,也可能因为生产厂家、设备型
35号、数据封装格式等的不同,导致获取的感知数据无法进行统一传输。传感器网络中的感知
数据在数据组织形式和传输格式上表现出来的各种差异被称为感知数据的异构性,感知数据
的异构性是造成数据无法进行统一传输的主要原因。
为了能够对传感器网络中的数据进行统一传输,屏蔽各个感知数据源的异构性和数据内
容等细节,降低数据处理的难度,本文设计并实现了一种基于XML的传感器网络数据适配
40中间件,利用该中间件建立数据的无缝接入,集中对数据进行适配,完成数据的统一传输。
-1-
在向上级网关或平台传输数据时不会再出现数据格式不一致的情况,感知数据会按照统一的
结构进行传输,接收方只需要根据指定的格式解析数据即可,从而消除了数据源的异构性给
数据传输所带来的影响,降低了数据存储、分析与开放的复杂度,增强了传感器网络的可扩
展性以及对变化的适应性。
451研究现状
传感器网络的广泛应用使得人们对各种感知数据的适配与传输进行了持续不断的研究,
并取得了一定的成果,出现了很多相关技术。目前传感器异构数据适配的主要技术包括数据
迁移和转换,以及使用中间件等方式[1]。
数据迁移和转换,就是将原始的数据转换到新的数据管理系统中来,为了统一不同类型
50的数据,必须将一些非传统的数据类型转化为新的数据类型。许多的关系型数据库供应商都
提供了类似的功能,例如ODBC、JDBC、OLEDB以及其他一些数据库厂商提供的编程接
口等[2]。这种方法处理简单,已为大多数用户理解和接受,但同时也存在着开发复杂度较大,
不能够适应传感器网络数据多样性变化的问题。
另一种数据适配的方式则是使用中间件。中间件是位于平台(硬件和操作系统)与应用
55之间的一种通用服务,这些服务具有标准的程序接口和协议,如图1所示,针对不同的硬件
节点,它们可以有多种实现。中间件是基础软件的一大类,属于可复用软件的范畴,能够为
处于传感器网络应用层的服务提供统一的数据和运行环境,帮助用户灵活、高效地开发和集
成复杂的应用。
60图1中间件架构图
中间件一般具有以下特点:(1)能够在多种硬件和OS平台上运行;(2)支持规范协
议和标准接口;(3)较高的效率和易用性。中间件覆盖的范围比较广泛,根据不同的需求
涌现出了各式各样的中间件。根据用途的不同,中间件又分为数据访问中间件(DataAccess
Middleware)、远程过程调用中间件(RemoteProcedureCallMiddleware)、面向消息中间
65件(Message-OrientedMiddleware)、交易中间件、事务处理监控(TransactionProcessing
Monitors)等。其中数据访问中间件泛指一切连接应用程序和数据源的软件,与一般的中间
件一样,数据访问中间件使得应用层服务能够以单一的、定义良好的API访问部署在其他
节点上的数据资源,数据访问中间件的使用是解决异质平台、异质环境、异质数据源的统一
访问、统一存取的最佳解决方案[3]。
-2-
70本文所设计的数据适配中间件继承了数据访问中间件的优点,同时引入了XML技术,
将XML与中间件相结合对传感器感知数据进行适配,同时参考Modbus通信协议,设计数
据传输的帧格式,实现对数据的统一传输。
2方案设计
针对传感器网络中感知数据在形式和类型上的异构性,本文设计出一种基于XML技术
75的数据适配中间件。该中间件利用XML具有的灵活性、自描述性以及可扩展性等特点,将
来自于不同节点的传感器数据转换为结构化的XML数据模型,存储至关系型数据库中,再
通过指定的规范将数据封装成统一的帧格式,完成数据的统一传输。

XML(eXtensibleMakeupLanguage,可扩展标记语言)是由W3C(WorldWideWeb
80Consortium,万维网联盟)在1998年制定的一种标记语言。XML在设计之初的宗旨是传输
和存储数据,而非显示数据,其焦点是数据的内容。XML的出现为Web的发展提供了巨大
的支持,它已成为Web中各个应用之间进行数据传输和交换的最常用格式之一,并且在信
息存储和描述领域也变得越来越流行,很多技术例如Ajax、RSS、SOAP、RESTfulWebService
等都采用了XML作为数据交换的标准格式。
85XML通常具有以下一些重要特性和优点:
(1)XML是可扩展的。可以通过自定义数据元素和属性来定制XML文档以满足特定
的需求;
(2)XML与关系型数据库联系密切。XML可以表示结构化的数据模型,关系型数据
库系统使用关系模式来关联数据实体/表。这两种数据结构虽然存在不同,但是都对数据创
90建了层次化的结构表示,XML的树形结构更加适合用来组织树形结构的数据;
(3)XML是跨平台的。XML的创建和处理与使用什么样的编程语言、操作系统、计
算平台没有关系,只要遵循XMLSchema创建的XML文档,均可以被正确解析和处理;
(4)XML是自我描述的。一个XML文档中的数据元素和层次结构能够很好的表示该
文档自身所要描述的数据,这些都是基于文档创建者对数据的理解基础上进行的;
95(5)XML利于标准化数据表示的开发。在多方进行数据交换的过程中,不同数据表示
格式之间的转换是非常痛苦和复杂的事情,而通过XML则可以开发出各方都能够理解并接
受的标准化数据格式,降低交换的代价;
(6)通过XMLSchema来验证有效性。XMLSchema是用于约束XML的XML文档,
它本身就是一个XML文档,遵循XML的语法结构,能够通过解析一般XML的方法来对
100其进行处理,同时XMLSchema又是对用来存储数据或者作为数据交换格式XML的一种模
板,它定义了文档中应该存在哪些元素、元素的位置、元素的出现次数、元素的属性以及元
素的数据类型等,是描述XML的元数据。XMLSchema是由W3C正式推荐的XML标准模
式语言,具有数据类型丰富、一致性、规范性、支持命名空间等特点。
基于以上这些重要特性,可以将XML作为传感器网络数据适配过程中数据转换的中间
105载体,通过XMLSchema来定义XML文档中的元素和属性,建立节点与数据项的对应关系,
将感知数据映射为标准的、一致的数据格式,屏蔽不同的数据源所引起的数据异构问题,使
得数据传输能够基于一种统一的形式来进行,无论是直接开放还是后续处理,都能够降低复
杂度,提高数据使用效率[3]。
-3-
中国科技论文在线

110Modbus是一种串行通信协议,是Modicon于1979年为使用可编程逻辑控制器(PLC)
而制定的。Modbus是工业控制领域通信协议的业界标准,并且现在是工业电子设备之间较
常用的连接方式。通过该协议,不同的设备能够连成网络并进行相互通信,进行集中监控。
Modbus协议定义了一个控制器能够识别的消息结构,而不去管它们是经过何种网络进
行通信的。Modbus协议有两种不同的传输模式,分别为ASCII模式和RTU模式,这两种
115模式都用于标准的Modbus总线传输。在传输时,数据以信息帧的形式出现,每一帧都有确
定的起点和结束点,使接收方在信息的起点开始读地址,确定要寻址的设备,以及信息传输
的结束时间[4]。
在ASCII模式中,数据帧以“:”符号(ASCII码为0x3A)作为开始,以回车换行符(CRLF)
(ASCII码为0x0D和0x0A)作为帧结束符,帧的其他字段允许发送16进制的字符0-9以
120及A-F。当接收方连续检测并接收到一个“:”时,需要对地址区进行解码,找出要寻址的
设备。字符之间的最大传输时间间隔为1s,若超过1s,则认为出现了错误。图2为Modbus
协议ASCII模式的信息帧格式。
图2ASCII模式的数据帧格式
125在RTU模式中,,然后接着为数
据发送的源设备地址,每一个字段允许发送的字符均为16进制的0-9以及A-F。每次发送
完最后一个字符之后,,作为该帧的结束标志,然后才能发
送下一帧数据。整个数据帧必须连续发送,
时间,则将该帧视为不完整的,接收方抛弃之前收到的该帧数据,重新接收下一帧数据。同
130样,在发送完一帧数据之后,立即发送新的一帧数据,这也会产生错误。图3为Modbus协
议RTU模式的信息帧格式。
图3RTU模式的数据帧格式
在Modbus协议中,无论是ASCII模式还是RTU模式,都把从地址位到差错校验位的
135数据字段定义为应用数据单元(ApplicationDataUnit,ADU),把从功能位到数据位的字段
定义为协议数据单元(ProtocolDataUnit,PDU),如图4所示。
图4Modbus协议中的ADU与PDU
其中地址域包含2个字符(ASCII模式)或1字节(RTU模式)地址信息,主要用来
140标识网络中的设备,有效的从属设备地址范围为0-247(十进制,下同),各从属设备的寻
址范围为1-247,0为广播地址;功能域包括2个字符或1字节,有效码范围为1-255,不同
-4-
中国科技论文在线
设备可以有不同的功能码定义,当从属设备向主设备发送数据帧时,功能码可以告诉主设备
应该执行何种操作;数据域包含若干个字符或字节,主要承载所要传输的数据信息,数据域
的长度可为零,用以表示某种特殊的信息;差错校验部分主要提供数据位的校验功能,当使
145用ASCII模式时,差错校验位为2个ASCII字符,该字符是LRC(纵向冗余码校验)的校
验结果,校验范围为帧起始符“:”至帧结束符CRLF字符。当使用RTU模式时,差错校验
为2个字节的值,该校验值是对信息内容进行CRC校验的结果。Modbus数据帧在传输时采
用大端序(Big-Endian),即先发送高字节的数据,后发送低字节的数据。
Modbus协议在数据传输方面拥有很大优势,首先它是基于数据帧形式的,数据都是
150ASCII字符或者二进制位,封装和解析都比较简单,易用性较强;其次它拥有一定的差错校
验能力,能够识别在传输过程中出现的数据位错误,保证数据的可靠性;再次Modbus本身
是一种应用层协议,它可以对数据进行统一传输而不用关心数据本身的含义,从而屏蔽了不
同数据源所带来的异构性;最后,Modbus已在工业领域有着广泛的应用,因此将其作为传
感器网络数据适配中间件数据传输方式的参考,能够有效实现感知数据的统一传输,便于上
155层服务处理和使用规范化后的数据,为实现种类更加丰富、功能更加强大的物联网应用提供
了可能。

传感器网络数据适配中间件的主要作用是为上层服务提供统一的数据传输接口,使得上
层服务在获取多个传感器数据源时就像只有一个数据源一样,不用考虑具体各个数据源的所
160在,也不用考虑数据源的类型、数据格式等一系列差异。通过数据适配中间件,上层服务获
取异构感知数据就和访问一个数据平台一样,数据能够按照不同的需求,经过统一的接口以
一致的格式传输给不同的服务,再对这些数据进行进一步的处理和开放。按照典型的三层架
构思想,本文所设计的基于XML的传感器网络数据适配中间件整体架构如图5所示:
传输(开放)模块
转换器
数据模型
XML适配模块
关系型数据库
数据反序列化
接入模块解析器
165图5基于XML的传感器网络数据适配中间件整体架构
该架构由三部分构成,从下到上依次为接入层、适配层和传输层。
接入层负责各种异构数据的接入,主要由接入模块、解析器和反序列化模块构成。根据
-5-
中国科技论文在线
数据源的不同,会有不同的接入模块实现,接入模块需要与该数据源所采用的传输协议、数
据格式相匹配,以实现数据持续地接入,这里不考虑数据源节点与中间件之间的物理通信方
170式,而假定数据已经能够到达接入模块。数据由接入模块接收后,传递给解析器来进行解析。
解析器的主要功能则是将有用的源数据信息从所接收到的初始数据格式中提取出来,例如传
感器的标识信息、时间信息以及感知数据等。解析器的输出是一系列连续的字符串,它们需
要经过反序列化,成为可用的对象实例后才能够被进一步处理。反序列化模块则是完成这一
功能的部分,它通过面向对象技术,将不同的源数据类型实例化为一个个数据对象,并用解
175析出的数据串来填充这些数据对象。接入层将所接入的异构源数据转化成了与之对应的数据
对象实例,再交由适配层进行处理。
适配层负责各种异构数据对象的适配,主要由适配模块、XML数据模型和关系型数据
库所构成。XML数据模型主要是基于XML技术定义的一系列用来对源数据信息进行详细
描述的XML文档,不同的数据源拥有不同的XML数据模型,在该模型中,数据源节点的
180属性信息得到对应的描述,例如节点的标识、种类、型号参数、所有者、地理信息以及感知
数据的类型、单位等,相当于为各个节点都创建了档案。XML数据模型遵循XMLSchema
所定义的约束,具有一定的扩展能力。关系型数据库则用来对经过适配后的数据进行存储。
适配模块是适配层最核心的部分,它的主要功能是根据数据对象实例所归属节点的XML数
据模型,将数据对象中的标识信息、时间等元信息以及感知数据关联成一条数据记录,存放
185至关系型数据库中,数据库中的每条记录则是已经完成适配的感知数据。
传输层负责将适配完成的数据记录转换为数据帧形式,通过统一的接口进行传输。传输
层包含转换器和传输(开放)模块。转换器能够获取适配后的数据记录,并按照类似Modbus
协议所规定的格式,将数据记录转换为数据帧的形式。传输(开放)模块则将转换后的数据
帧通过定义好的接口传输给上层服务,由此完成数据的统一传输[5]。
190异构数据在经过中间件的三层处理之后,被适配为统一的帧格式进行传输,整个过程无
需其他干预,在各模块实现并部署完成之后,通过一定的配置,即可对接入的感知源数据进
行适配,实现传感器网络数据的统一传输与开放。
3方案实现
#语言,并通过动态链接库的方式将
195其封装为类库,使得中间件不但可以跨平台使用,还能够随时被其他服务引用,提高了其可
复用性。开发数据适配中间件的操作系统环境为WindowsXPServicePack3,使用的集成开
发环境为VisualStudio2010Ultimate,(Win32)[6]。
实现数据适配中间件的解决方案主要由AccessLayer、AdaptationLayer、
TransmissionLayer三个类库组成,分别对应中间件的接入层、适配层和传输层,此外还有一
200个负责数据库操作的类库DatabaseOp。在每个类库中包含有实现该层各模块功能的若干个
类,图6为中间件实现方案的结构。
-6-
中国科技论文在线
图6数据适配中间件实现方案的结构

205驱动层的实现主要包含DataAccess、Parser、Deserialization三个功能模块以及DataSource
数据模块。其中DataAccess负责数据的接入,根据不同的数据传输方式,需要有不同的方
法,以支持对各种数据源的接入。常用的数据接入方式有HTTP、TCP以及UDP,接收模
块通过启动HTTP服务或者TCP、UDP侦听,获取来自感知节点的数据。DataAccess将获
取的数据交给Parser,由Parser进行解析,解析出来的数据再由Deserialization进行反序列
210化,生成DataSource的不同实例[7]。具体流程如图7所示。
图7感知数据接入流程
-7-
中国科技论文在线

感知源数据在经过接入层之后已经由原始的数据流转化为了DataSource数据实例,图8
215为一个DataSource数据实例的示意。
图8DataSource数据实例
可以看到一个DataSource数据实例由一系列的属性-值对组成,这些属性-值对可以描述
这一部分感知数据来自于哪个节点、生成的时间、节点的类型、感知数据的类型等信息。适
220配层在得到DataSource数据实例之后,Adapter会按照对应的XML数据模型,对该数据实
例进行转化,生成只包含感知数据的记录,并存储至MySQL数据库中。这里的XML数据
模型,,是对该数据来源的感知节点属性信息的一个具体描述,描述该节点
包含有哪些资源,每个资源的标识各是什么[8]。图9为XML数据模型示例。
225图9XML数据模型
通过XML数据模型,Adapter能够将DataSource数据实例映射成为一个数据记录对象,
在这里即为一个DataModel对象,然后通过数据库操作类SQL将DataModel对象作为数据
记录存入数据库中,从而实现异构感知数据的适配与存储。图10为数据库中经过适配后的
感知数据记录[9]。
-8-
中国科技论文在线
230
图10适配后的感知数据记录

传输层的实现主要包含Converter和DataTrans两个模块,在适配层完成感知数据的统
一适配与存储之后,传输层将按照预定义的传输格式,对感知数据进行统一传输。中间件所
235采用的数据传输格式是类似于Modbus协议中所定义的协议数据单元,每一帧数据包含节点
ID、时间戳、数据位、校验位等信息,如图11所示。
图11中间件的PDU帧格式
其中PDU头部由节点ID、总长度、协议版本和时间戳4个字段组成,固定为16字节。
240PDU数据体则由屏蔽位、各个数据位以及CRC校验位等字段构成,长度为(12+4×N)个
字节,其中N为该节点所传输的资源数据个数。Converter从数据库中获取感知数据记录,
将其转化为PDU对象,然后再由DataTrans模块将PDU对象映射为对应的PDU数据帧,
并通过统一的接口传输出去。这种映射是通过XML数据模型来完成的,若某条数据记录中
所包含的资源有3个,资源ID分别为0、1、5,那么在将该记录映射成对应的PDU数据帧
245时,需要将该帧屏蔽位字段的第0、1、5个bit位置为1,而将其他的bit位置为0。这样在
接收该帧时,即能够通过屏蔽位知道后续数据位所传输的数据对应的资源ID,从而将PDU
中的数据与XML数据模型描述的资源属性相关联起来,达到数据传输的目的[10]。
4总结
本文所设计的基于XML的传感器网络数据适配中间件,通过对异构数据进行适配,实
250现了数据的统一传输。该中间件设计具有以下特点:
(1)跨平台性。本文所采用的实现方案与具体的硬件平台无关,只要拥有能够部署中
间件所需的环境,均可以实现对数据的统一传输[11];
(2)可扩展性。在接入层通过扩展不同的接入模块和解析器,能够实现对各种异构数
据源的接入,丰富数据的数量和种类;
255(3)高灵活性。由于中间件对异构数据的适配是通过XML数据模型来完成的,而XML
本身具有很强的灵活性,因此基于XML的数据适配也变的更加灵活,能够适配的数据种类
也更加丰富;
(4)数据一致性。中间件传输所采用的数据帧格式是基于Modbus协议的,数据帧的
每个字段都具有非常明确的意义和功能,数据按照此格式传输,能够很好地被接收端理解,
260达到了数据统一传输的目的[12]。
基于XML的传感器网络数据适配中间件汇集了各个节点的感知数据,统一了数据传输
-9-
中国科技论文在线
的方式,屏蔽了各个感知数据源的异构性以及数据内容等细节,降低了数据处理难度,但在
数据的实时性传输方面还有一些不足,在后续的工作中,将会对提高数据传输的实时性做进
一步的研究和改进,同时也会考虑在感知数据的适配上采用SOA、Web服务、本体等更多
265的技术,从而使得传感器网络数据适配能够达到令人更加满意的效果。
[参考文献](References)
[1][D].武汉:中南民族大学,2005.
[2][D].天津:河北工业大学,2011.
[3][D].重庆:重庆大学,2011.
270[4]Modbus-[J].NorthGrafton,
Massachusetts(),2004,6(4):1-51.
[5][J].计算机工程与设计,2013,34(3):955-959.
[6]姚兵,李峻林,[J].计算机科学,2008,
35(11):14-17,99.
275[7]毛晋,[J].科学技术与工程,2011,11(26):
6370-6376.
[8][OL].[2011-01-17].
-821
[9]周密,[OL].[2012-12-06].
280-59
[10][D].北京:北京邮电大学,
2011.
[11]GaoL,ZhangC,[A].iTAP.
InternetTechnologyandApplications[C].Wuhan:InternetTechnologyandApplications,2011.
2851-4.
[12]BarbosaD,BohannonP,FreireJ,[A].LINGLIU,ÖZSU.
EncyclopediaofDatabaseSystems[C].NewYork:SpringerUS,-3634.
-10-