DIY编程器网

标题: 基于弹性Web服务的无线传感器网络体系结构 [打印本页]

作者: admin    时间: 2014-10-13 14:38
标题: 基于弹性Web服务的无线传感器网络体系结构
摘要

        当前的传感器网络都假定是为特定的应用而设计的,有着紧密耦合的数据通讯协议。预想中的未来传感器网络是借助组成它的不同种类的设备来实现广泛的应用。为达到这个目标,需要一种新的体系结构方法,使应用特有的特征与数据通讯协议相分离的同时影响其行为。我们提出一种设计传感器网络的Web服务方法,以传感器节点作为服务提供者而应用是这些服务的客户。我们的主要目标是实现一种弹性体系结构,在这个结构下传感器网络数据可以被世界各地的用户所访问。

1.介绍

        许多科学应用要求在感兴趣的广大地理范围内,长期获取精确的数据测量。这些测量有时可以用远程传感技术完成。经常有必要用就地传感来收集数据,这就需要将传感器直接置于目标区域[13]。

        适于这种应用场景的一个可能的解决办法是设计由具有传感能力、处理能力(基本的)和通讯能力的节点组成的大规模多点传感器网络。这种系统可以使用成百上千通过无线网络相互连接在一起的传感器节点以担当起高度并行、准确和可靠的数据采集系统的角色。

        传感器是一些在能量和处理能力方面都有限制的设备,它们以ad-hoc的方式部署,并且,由于不可能维护大量可能处于不可达位置的远程节点,这些传感器必须能在无人监控的状态下运转。因此,在这样的环境下,节能成了一个极其重要的要求。

        传感器数据从多种采集源传送至一个或更多的可能与外部网络相连的处理点。由于每个传感器都在监控同一个现象,从不同传感器生成的数据很可能出现值得注意的冗余。利用冗余可以在网络内过滤和数据聚合的整个过程中节省传输能量。为进一步节约能量,较之直接到最终目的地的长距离通讯,短距离分段中继通讯是首选方式。这样一来,节点将自己和邻近节点的数据通过经优化的更适宜的路径传至网络出口点。

        在传感器网络环境下,形成应用观察点以使节点通过其传感设备型号或是地理位置来识别更有用。一些研究[5, 6]提出使用以数据为中心的命名系统,而不是传统的以地址为中心的方案,比如IP。在数据为中心的方法下,节点以其提供的数据类型或其对某些传感数据类型的关注程度来定址。

        目前的研究[5, 6] 把传感器网络看作是为特定应用而设计的,其数据通讯协议与应用紧密耦合。实际上,网络需求、组织和路由行为都随应用而改变。且不管当前传感器网络应用的特定行为,许多作者[10]都预想未来传感器网络由不同种类传感设备组成,并在它们协助下实现广泛的应用。为达到这个目标,需要一种将应用的具体要求与数据分发功能相分离的新的体系结构方法。在这种体系结构下,组件是松散耦合的,有着良好定义的接口。为达到能量效率,应用应该能动态改变网络行为。但是,这些变换应该通过公共协议以一种弹性的方式表示。这个特点将使网络的设计与使用它们的应用独立开来。

        我们提出以一种服务方法来设计传感器网络。服务被定义为传感器节点提供的数据和将在这些数据上执行的应用(比如,一个过滤程序)。客户访问传感器网络并向这些服务提出要求。

        这些服务是通过Web服务技术来发表和访问的[3]。通过采用Web 服务范例,我们提出了一种新颖的传感器网络体系结构,在这个结构下,Web 服务描述语言(WSDL)[15]被用来描述传感器节点的数据和功能性。Sink节点是为访问网络服务提供标准接口的Web服务。通过这样一个接口,用户应用提交的询问得以完成。

        使用如定向扩散[5]这样传感器网络专有的路由协议,我们提供一种具有弹性并且功效强大的方法来对传感器网络上的数据进行操作、提取和交换。应用通过由sink节点上可用的Web服务提供的通用的且独立于应用的接口来访问传感器网络和修改潜在的数据分发行为。

        本文定义了在我们的体系结构中实现定向扩散所需要的体系结构组件和WSDL元素。文章内容按如下组织:第二节涵盖了背景概念;第三节介绍了相关工作;接下来,第四和五节将系统体系结构和描述细化。最后,第六节略述了结论和未来的工作。

2.背景

        在一个传感器网络中信息的分发是由叫做sink的节点完成的,它们执行度量工作并将来自邻近节点的数据接力传递至某些网络出口点。为了减少冗余和最小化通信量从而使能量消耗最小,由不同节点传送的数据可以聚合。为了网络中的数据聚合能以一种高效的方式进行,像数据缓存和协作信号处理这种应用专有的编码应该尽可能的在接近数据收集点的地方出现。这样的处理过程依赖于具可识特征的数据,由它们来激发应用专有的代码和数据的分段中继处理[4]。

        基于特征的命名系统提供一种以数据为中心的方式,这不同于传统的以地址为中心的方式。

2.1.以数据为中心的通讯

        数据为中心的寻址方式是专为传感器网络而提出的,这样的网络中节点是以其产生的数据或所在的地理位置来识别的。定向扩散[5]就是特别为传感器网络设计的以数据为中心的协议实例。在定向扩散中,单个节点将目标产生的采样波形归纳为相对大粒度的“事件”描述[5]。这样的描述包含一组属性特征。请求数据的应用通过网络中的一些sink节点发出其感兴趣的内容。这些内容也表现为一组属性特征。如果源节点生成的数据特征与这些内容相匹配,就会在网络中形成梯度以使数据被拉向sink节点。中间的节点具有缓存和传输数据的能力。

        且不论传感器网络以数据为中心的寻址方式的种种优点,近来的研究[5, 6]假设数据表现是应用特定的或者提出低弹性表达性不好的方案。这些方法要求数据或兴趣表现模型与请求网络的应用之间的紧耦合。

        我们可以预想一类未来传感器网络,它们被一些通过任意局部sink节点提交请求的不同应用访问。为满足这样的场景,网络应该以一种通用且独立于应用的接口来访问。

        本文提出了一种Web 服务的方式来构建无线传感器网络。我们提议使用一种服务描述语言——WSDL[15]以及相关协议——SOAP[19],这两者都被接纳为因特网标准,以作为在传感器网络上以弹性方式描述和交流数据和兴趣关注的基础。下一节扼要介绍了Web服务技术。



2.2.Web服务技术

        Web服务可被定义为具有标准组件的程序,它们通常是独立且能自我描述的,可透过Internet或者企业内部网找到并调用。Web服务通过到处存在的Web协议和数据格式来访问,这些协议和格式包括超文本传输协议(HTTP [1])和可扩展标记语言(XML [17])。

        Web服务技术以一种叫做SOA(Service-Oriented Architecture [3])的弹性体系结构为基础,这种体系结构定义了三种角色:服务请求者,服务提供者和服务注册处。服务提供者负责创建服务描述并向一个或更多服务注册处发布服务描述,同时还要接收来自一个或更多服务请求者的Web服务调用。

        除了这些角色,还有三种操作作为SOA体系结构的一部分被定义:发布,寻找和绑定。

        发布操作是服务注册或者为服务作广告的行为。寻找操作允许服务请求者声明搜寻标准,如服务类型。服务注册处将搜寻标准与它所收集的以发布的Web服务描述进行匹配。绑定操作具体体现了服务请求者与提供者之间的客户-服务者关系[3]。

        除了遵从SOA模式,Web服务技术可以分解为三个协议栈[3]:有线栈(或交换格式),描述栈和发布与发现栈。

        有线栈体现了决定消息如何从服务请求者收/发至服务提供者的技术。这个栈由三层组成。第一层是网络协议,它可以是因特网有线协议,如HTTP[1],或者是高级的企业级协议。第二层是以XML为基础的数据编码机制。第三层涉及到XML消息传递。为进行消息传递,Web服务采用SOAP [19]协议,这个协议扮演着XML消息包装的角色,它保证Web服务的通讯有着一个坚固、基于标准的基础。

        描述栈提供服务的外表呈现,这对服务请求者来说很重要。Web服务中,XML是服务描述的基础。XML模型规范(XSD)[18] 定义了规范的类型系统。在这一层之外,协议栈的下几层是服务接口描述,即服务具体映射和服务边界点。边界点定义了服务自身可被调用的网络地址。所有这些层都使用WSDL[15],这是一种基于XML的用于描述Web服务接口的语言。WSDL是描述服务的一种非常有弹性的模型,但也是非常冗长的。典型的传感器设备容量非常有限。因此,需要一种更紧凑的机制奕用作数据呈现。这种机制的范例之一就是WAP二进制XML内容格式(WBXML [16])。这种格式为XML[17]定义了紧凑的二进制呈现,旨在减少要传输的XML文档的大小,简化解析XML的工作。

        发布与发现栈与Web服务的目录服务相一致。服务提供者需要一种发布机制以便他们能够给出与他们提供的Web服务相关的信息,而服务请求者需要良好定义的查寻接口来使用这些Web服务。

3.相关研究

        好些对以数据为中心通讯的研究工作都建立在局部化的算法[11]基础之上以减少冗余,节约能量。定向扩散[5]和SPIN [6]用于传感器网络的两种数据中心的局部化算法。它们都假设在数据分发组件和应用特有特征之间有着一种紧耦合关系。

        我提出一种建立在众所周知的数据描述标准之上的普适于传感器网络的体系结构。通过使用一种像SPIN或定向扩散那样的基层数据分发协议,我们的体系结构为传感器网络设计提供了一种弹性且应用无关的解决方案。

        近期研究工作主要是不同类别设备网络的命名和服务发现。这些工作的大部分依赖于基于IP的通讯,而不考虑像传感器网络这样动态且资源有限的环境 。通用的即插即用技术Universal Plug-and-Play [14]使用XML的一个子集来描述设备提供的资源。它局限于TCP/IP网络。服务定位协议(SLP)[8]利用集中目录代理来推动不同类网络资源的找寻和使用。集中化的资料档案库和固定的层次结构并不能很好的适用于传感器网络。我们的方案是完全分布式的且基于轻量级协议的。

        这和 [2, 7, 20]这些传感器网络的数据库方法有类似之处。在[20]中,通过使用查询代理,传感器计算能力得以开发以在网络内部执行部分查询处理。在[2]中,提出了一种类似于SQL的说明性语言以便用户向传感器网络提出询问请求。[7]提出一种基于虚拟数据库概念和以数据为中心路由的传感器网络体系结构。这些研究与我们的工作的主要区别在于:我们提出一种完全分布式的服务方法,它以普遍存在的协议为基础。将传感器的功能性作为服务展现出来,较之SQL查询来说,提供了一种更具弹性的体系结构。除此之外,我们致力于不同系统之间的协同工作能力,这在数据库方式下是难以实现的。

4.系统结构

        我们的研究工作提出了一种基于Web服务技术的传感器网络体系结构。Web 服务根据SOA模式而建立并可以通过三个协同工作的协议栈[3]的组合得以描述。4.1节 和4.2节描述了所提出系统的物理组件以及这些组件按照SOA模式所扮演的角色。4.3 节按照Web服务协同工作协议栈描述了系统元素。

4.1.系统物理结构

        在一个普通的传感器网络中,组件节点可能有如下所列的不同功能性质:
        在我们的系统中,两种主要的物理组件是传感器节点和sink节点。传感器节点包含一个或更多专用感应设备。此外,它还具有路由和聚合功能。这样,路由功能就分布于所有节点之中。我们假设所有的传感器节点都具有足够的处理和存储能力以储存和执行聚合过滤器。

        Sink节点提供应用接口,以使外部网络能够获取传感器网络收集的信息。这些接口可以从本地或远程访问。Sink节点也可以聚合数据,但它们没有传感设备。我们假设它们的处理和通讯能力比传感器节点更强大。



4.2.参照SOA的系统体系结构

        向传感器网络查询数据的用户应用扮演着服务请求者的角色。Sink节点主要扮演着为外部网络环境做服务提供者的角色。它们提供整个传感器网络的服务描述,并提供访问这些服务的路径。同时, sink节点又是传感器节点的服务请求者,向它们提出专门服务的请求以满足用户应用的需要。传感器节点是服务提供者,供应着数据和过滤器。传感器节点将它们的服务描述传至sink节点,如此执行基本的发布操作。Sink节点也担当着注册处的任务,维护着传感器网络内存在的每个传感器类型的服务描述资料库。

        在我们的系统中,发布操作的功能性是通过Publish_content操作完成的,而寻找与绑定操作都是通过Subscribe_interest操作完成的(见第0节)。 这些操作被sink解释为寻找操作而随后绑定到可以满足应用需求的传感器节点上。

4.3. 具协同工作能力的协议栈

        我们的系统中,有线协议栈由SOAP协议以及一个在下层运行的数据分发协议,即定向扩散协议[5]组成。描述协议栈是基于WSDL 文档的。发布和发现协议栈通过执行于sink节点上的一个程序模块实现。第4.3.1.节和第 4.3.2.节细述了有线和描述协议栈。我们没有详细的描述发现协议栈,因为它与我们现阶段的工作无关。

4.3.1 有线协议栈

        与向传感器网络提交请求有关的用户应用必须访问sink节点。应用必须产生一个描述用户需求的SOAP消息。这个消息建立于网络WSDL文档的基础上,这个文档存储于sink节点资料库里。

        所有传感器网络内部的通讯都是通过使用定向转播并格式化为SOAP消息来实现的。SOAP节点上SOAP消息的发送和接收通过一个与下层协议的绑定作为中间媒介。SOAP消息可以用多种基层协议来传输。我们的系统中定义了一个SOAP-扩散绑定。为减少消息大小,以节约发送/接收过程中的能量消耗,XML压缩二进制呈现[16]被采用于在传感器网络内交换的SOAP消息。

        SOAP模块和定向扩散模块必须在每个网络节点上得以呈现。

        SOAP模块。我们系统里的SOAP 模块由三个主要部件组成:SOAP引擎,一组句柄和一个与下层协议的绑定。SOAP引擎担当进入SOAP模块的主入口点。它负责通过句柄协调SOAP消息流并且保证SOAP语义被理解。句柄是SOAP模块内的基本绑定块,它们呈现了消息处理逻辑。我们定义了三种类型的句柄。普通的句柄负责消息串行化、报头和拼装处理、数据类型转化和其它一些基本功能。传输句柄Matching_Data专为通过定向扩散协议发送和接收消息而建立。句柄 Matching_Filter呈现了网络内部专有应用过滤器的激活。关于专门句柄的使用在第5节有更详细的描述。

        Sink节点只包含普通句柄。传感器节点除了普通句柄之外还包括传输句柄Matching_Data和专门的句柄Matching-Filter。
定向扩散模块。对于所有传感器网络组件之间的通讯,我们使用定向扩散协议 [5]。

        当前的定向扩散模型[5]由一个核心扩散层,一个扩散库和包括应用程序和过滤器的应用层组成。核心扩散层用于从网络中接收/发送包。库为上层应用类提供了一个接口以发布数据和预定关注的内容[12]。

        我们的系统将核心扩散层当作其基本的数据分发协议使用。梯度构造,数据需求匹配和数据过滤器匹配功能性是扩散的一部分。我们保持这些功能但改变数据,需求和过滤器的呈现模型。描述数据,需求和过滤器的特征通过WSDL语言来呈现,而匹配功能由SOAP句柄实现。梯度和应用专有的过滤器作为软件模块实现。

4.3.2 服务描述协议栈
        由传感器网络提供的一般服务通过一个WSDL文档来描述。在这个文档中,端口类型元素包含服务描述的两种类型:由传感器节点提供的服务和由sink节点提供的服务。每种服务端口类型都包含操作。操作包括参数,这些参数在文档中通过消息和元素定义。操作定义与其具体实现的绑定应该按下层协议来定义。端口定义标志着包含操作具体实现的位置,它可以通过如设备地址那样的任意唯一的标识符来实现。

        为我们系统中特定的Web服务定义的操作有:(i) Publish_Content,传感器节点用它来创建和分发包含其服务描述的SOAP消息; (ii) Publish_Data, 传感器网络用它来创建与形成数据通讯的SOAP消息;(iii) Subscribe_Interest, 应用用它来向sink节点提交查询;(iv) Subscribe_Filter, sink节点上的应用用它来向网络中注入新的过滤器。



5. 系统描述

        传感器网络有一个包含四个不同阶段的初始设置过程:部署,激活,本地组织和全局组织[13]。为了节省能量,在有部署操作出现之前传感器节点都处于休眠状态,而且,在被分散到目标区域之后,它们还需要经历一个激活阶段。本地组织阶段包含邻近节点发现过程。在全局组织阶段,节点建立起与网络中一些sink节点的通讯路径。必须保证让所有的节点都能通过某些路径可达于某个sink节点,这样它们的数据才能传送到应用程序。在组织阶段完成后,每个节点都应该知道并可以分辨其邻近节点。任何唯一的标识符都可以用作节点的标识。

        我们的系统操作按三步进行。第一步是网络初始化设置,发生在刚才提到的本地和全局组织阶段。第二、三步以定向扩散协议的运行阶段为基础[5]。

5.1. 第一步:初始设置

        在我们的系统中,组织阶段节点之间相互交换SOAP配置消息,描述各自提供的服务(数据和过滤器)。这些消息包括节点和网络标识(后者在有多个互连网络时用到),TTL(节点生命周期),节点类型,地理位置,当前能量总数,最大和最小可信度,最大和最小采集间隔,节点上现有的过滤器以及每个传感器类型的特有信息。SOAP 配置消息使用扩散核心功能在网络内广播。当传感器节点收到配置消息,它可以决定是否传递这个消息。如果此消息描述的传感器类型与它自己的特征匹配,或者,如果此前已经收到一个类似的消息,节点就不需要再传送这个消息了。

        Sink节点保存着各个不同类型传感器的入口点,因此它们的资料存储量与传感器的类型数成正比。Sink节点将收到的配置消息内容存储于基于软状态的本地资料库中。Sink节点周期性的交换消息,以使网络内所有节点包含同样的信息。

        由于配置信息在到达某个sink节点之前要经过中介节点,这些节点也可以存储消息并使用其内容,例如,在网络中分发受关注内容时提取地理和能量信息。

5.2. 第二步:受关注内容广告

        从传感器网络请求数据的应用应当在一些sink节点描述其关注内容。一个关注内容包括传感器型号,数据类型,关注的地理位置,采样间隔和采样持续时间。对于对时间要求严格的应用来说,还可能包含一个门限值,作为传感器不考虑当前采样间隔而必须通告数据的时间底限。

        应用可以要求激活节点上存在的应用特有过滤器。此外,新的过滤器还可以作为程序被注入到网络中。过滤器包含一个标识符和一个有着相应值的数据类型列表。当节点收到与过滤器特定值相匹配的数据时,过滤器标识符便激发已经存在于传感器节点之上的程序的执行。当注入新的过滤器时,程序过滤器自身被作为SOAP消息的附件(SOAP附件容量[19])传送。

        为受关注内容作广告的SOAP消息采用扩散核心和扩散梯度功能[12]在传感器网络中分发。当一个传感器节点收到一个关注内容消息,SOAP 模块中的Matching_Data 句柄验证这些关注内容是否与传感器提供的一些数据相匹配。句柄按照所采用的扩散模型[5]从消息中提取所有配置梯度所需要的参数。

5.3. 第三步:数据广告

        传感器在由配置消息指定的初始采样间隔内产生数据。如果有一些活动的梯度呈现出匹配其自身数据类型的关注,传感器只是传送SOAP 数据广告消息。传感器根据收到的SOAP关注内容消息改变采样间隔。当检测到有受关注的数据时,传感器将发出一个数据广告消息,这个消息被传送给下层扩散协议。

        SOAP消息广告数据包含数据类型,所检测类型的实例(或值),传感器当前位置(传感器可能处于移动状态),信号强度,已完成的测量的可信度,一个时间戳和当前能量值。

        消息分发包含一个在数据和关注内容之间的匹配阶段以及可能的过滤器执行。匹配数据与关注内容的阶段由Matching_Data句柄完成(第二步)。Matching_Filter 句柄将数据与其过滤器匹配并在需要时分派过滤器执行。结果(经聚合或过滤的)数据作为将沿网络分发的新的SOAP数据广告消息被传送至扩散层。

6. 结论和远景研究

        在这篇论文中,我们为设计传感器网络提出了一种基于服务的体系结构。我们主张未来的无线传感器网络应当通过通用且与应用独立的接口提供一种普遍存在的,标准化的访问途径。这项研究的贡献有三重。首先,我们提出了数据通讯功能与应用特定处理相分离的一般体系结构。其次,我们为无线传感器网络定义了一种Web服务方法,其中sink节点作为Web服务模型,来呈现由网络使用标准服务接口提供的服务。第三,我们提出使用已经公认的因特网标准, WSDL语言和 SOAP协议作为一种机制来描述服务和格式化供下层通讯协议使用的消息。

        我们所提出的方法为无线传感器网络的设计提供了高度可表达性和弹性。我们的主要目标是提供一个基础来建造更多综合用途网络,取代任务严格定制的网络,以协助广大范围的用户。这些用户可能来自世界任何角落,在某个特定应用领域有着共同的兴趣。由于节能是WSN设计中的一个关键要素,我们的提议中努力将能耗保持在当前WSN系统的相同水平。特别地,预期通讯能耗将远远高于本地计算的消耗[9]。 因此,解析SOAP消息所需的附加处理对系统来说应该是可忽略的。鉴于此,我们的方法通过在WSN内部的消息交换时采用压缩二进制XML格式,致力于数据传输过程的能量节约。




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2