英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
一种自适应的高效路由中间件在分布式传感器网络中
摘要:由于缺乏对网络动力学的知识,所以如何在具有不可预测网络连接和节点失效的传感器网络中进行路由是一个具有挑战性的问题。本文提出了一种用于分布式传感器网络高效路由的自适应中间件。该中间件的核心方法是设计一种策略驱动语言来控制传感器节点之间软件组件的重新定位。因此,可以动态地适应传感器网络中的各种变化。基于这种中间件,我们提供了一些构建实用路由协议的方法。例如,节点可以根据网络的稳定性自适应地切换路由策略,或者将一些任务迁移到其他空闲节点以防止该节点失效。
关键词:基于组件,重新定位,自适应,策略驱动语言,分布式传感器网络。
一、简介
分布式传感器网络广泛应用于各种工业活动中,例如监控系统。但由于传感器节点存储容量和功耗有限、故障频繁、节点移动性差,所以导致网络连接不可预测、路由效率降低。现有的路由方法主要分为两类:基于冗余的路由和基于知识的路由。基于冗余的路由依赖于拷贝数[2]、[15]、[16]、[18]、[19]。过小的冗余会导致传输速率降低,过多的冗余则会导致成本上升。另一方面,基于知识的路由通过节点获取知识[5]–[7]、[12]、[17],以便做出有效的路由决策。然而,对一些网络参数的了解并不一定能显著提高传感器网络的性能。
由于在决策过程中缺乏对网络动力学的了解,使得传感器网络的路由问题具有挑战性。当一些传感器采集数据的工作量较大时,路由可能会产生额外的开销,导致节点不可用,而且在实际的路由算法中很难在冗余和知识之间取得平衡。实际上,复制的消息太多也可能会使节点不可用。由于网络动力学的不可预测性,很难获得有用的网络参数。
相关研究[3],[4]提出了在体系结构层次上适应分布式系统变化的方法。例如,Sun[4]等人提出了组件运行时,系统中的软件组件在计算机之间重新定位的策略。在我们的工作中,我们提出了一种自适应的中间件,可以在传感器节点之间重新部署软件组件,以适应各种变化,从而实现高效实用的路由,我们还设计并实现了一种专门的策略驱动语言和一组适配策略。通过使用这种语言,可以很容易地为软件组件的重新定位定义目标和条件。此外,策略不需要定义组件的目标。相反,我们的自适应中间件会自动为用户决定,并且当同样的情况发生时,用户定义的策略也可以重用。基于我们的中间件,我们提供了几种构建自适应路由协议的方法。例如,节点可以根据网络连接在不同的路由算法之间进行切换,而且,如果消耗了太多的存储或处理资源,节点还可以将软件组件重新定位到其他空闲节点,以防止节点和链路故障。因此,节点可以自适应地享受基于冗余和基于知识的协议的优点,而不受缺点的影响。
我们的贡献总结如下:
bull;我们提出了一种自适应中间件,以适应分布式传感器网络的各种变化。我们还设计并实现了一种策略驱动的语言。
bull;基于该语言,我们定义了一组策略,并提出了几种构建自适应路由协议的方法。例如,当网络变得不稳定时,节点可以切换到更有效的路由算法,以保证高传输速率和低延迟。
bull;我们的中间件能方便开发人员进行使用,开发人员可以轻松地管理用于一般目的的策略。
二、方法
在这一部分中,我们讨论了分布式传感器网络中的几个场景,在此基础上介绍了系统需求和我们提出的构建自适应中间件的方法。
A、 情景
在分布式传感器网络中,我们考虑了两种情况,有效的路由策略保证了有效的路由策略的使用,数据共享和分发有效地分配了节点资源。有效的路由策略。我们考虑两种类型的路由策略:主动路由,其中路由信息可以预先计算并存储在独立于流量到达的节点上;反应路由,其中路由信息在数据包到达时按需计算。前者在路由过程中效率更高。然而,它要求拓扑结构相对稳定,即使没有数据包到达,也会消耗计算资源。后一种方法不需要任何计算资源,除非数据包到达。但是,这可能会导致更长的延迟。我们的目标是根据网络的稳定性和节点的资源使用情况,自适应地选择合适的策略。数据共享和分布。除了路由,传感器节点还根据应用程序不断监视和收集信息。因此,需要保证软件组件不会消耗太多的计算能力。由于同一(物理)区域内的节点容易接近,我们可以将一个忙节点的软件组件重新定位到其他空闲节点,同时,当少数节点正在收集重叠数据时,它们可以相互通知结果,防止忙节点消耗太多资源。
B、 要求
为了解决上述问题,我们提出了一个自适应中间件系统,满足以下要求。
自我适应。现有的分布式传感器网络通常采用预先确定的网络结构,例如客户机/服务器模型、对等模型和主从模型等。然而,传感器/应用的要求可能经常改变,并且我们希望分布式网络结构能够适应各种变化。
关注点分离。传感器网络应用和适配模块应单独定义。我们的适应机制应该从底层系统中抽象出来,这样软件组件的功能和用户定义的策略都可以重用。
可靠性。集中管理往往成为瓶颈。我们的中间件应该构建在一个完全分布式的环境中,同时保证数据的一致性。
一般用途。各种各样的应用程序正在传感器上运行。应实施拟议的方法,以支持一般用途的应用。它还应该独立于其他特定应用程序的任务。
除了上述要求外,传感器节点通常具有有限的处理和存储资源。因此,我们的系统需要消耗最小的资源的适应性,而大多数现有的适应方法明确或隐含地假设他们的目标丰富了资源。
C、方法
我们方法的核心是两个关键思想。首先,我们开发了一套策略来重新定位软件组件,作为一种基本的适应机制。其次,我们设计了一种语言来指定适应策略。基于这种设计,我们的系统可以重用软件组件和策略。
传感器网络中的策略。在传感器上部署软件组件。一般来说,应用程序由一个或多个软件组件组成,我们的中间件系统根据部署策略,通过在传感器节点之间重新定位软件组件来动态地适应变化。当软件组件迁移到目的地时,本地和远程节点可以使用我们的动态方法调用机制相互通信。此外,类文件和软件组件的状态都可以迁移,这样我们的中间件可以快速重启以处理中断。
政策驱动的语言。为了降低软件构件的编程成本,提供精确的软件构件定义,我们设计了一种策略驱动的自适应语言。每个软件组件可以有一个或多个策略,其中每个策略都定义为条件和操作对。该条件以一阶谓词逻辑(如表示法)编写,其中谓词反映有关系统和应用程序的信息。操作表示组件的部署和复制,以用于适应目的,而不是特定于应用程序的行为,如通信和状态转换。此外,我们的策略驱动语言支持多个策略的执行和冲突解决机制。
三、策略驱动语言
我们的策略驱动语言由四个结构组成,如图1所示。基于这样一种灵活的语言,可以容易地指定不同类型的策略。
图1 策略驱动语言
A、 策略驱动语言的设计
我们使用几个符号来更好地描述我们的语言,如表1所示。我们的中间件允许用户通过表达式指定用户定义的适应策略。每个表达式都包含元策略、适应条件和重新定位的目标。仅当条件为真时,才会激活重新定位的目标。
表1 符号
符号 |
含义 |
当前 |
当前节点 |
L={L1,L2,L3,···} |
位置名称 |
X={x1,x2,x3,···} |
位置变量名 |
S={S1,S2,···} |
政策元数据 |
C={C1,C2,···} |
有条件部件的标识符 |
N={N1,N2,···} |
消息名称 |
策略表达式。我们将D={D,D1,D2}定义为定位的进程表达式,它是包含以下表达式的最小集合。在表达式中,C表示属于E的一组条件,E0通常由E表示,sigma;表示被阻塞的策略的所有执行,tau;是作为回调函数调用的操作。
D,D1,D2 ::= L[S| E | P] |
(定位部件) |
| D1|| D2 |
(分布式组件) |
S, S1,S2 ::= S1gt;S2|| S1lt;S2 |
(元策略) |
| sigma; |
(块执行) |
E, E1,E2 ::= C then M in E |
(条件动作) |
| E1 E2 |
(备选方案) |
| 0 |
(终止) |
M ::= moveTo(x) |
(迁移) |
| copyTo(x) |
(复制和迁移) |
| remove(x) |
(消除) |
| tau; |
(内部执行) |
P,P1,P2 ::= P1,P2 |
(成分) |
| A |
(组件) |
| euro; |
(无组件) |
策略表达式可用于构造不同的策略。例如,L1[C然后moveTo(L2)| A]表示如果条件C为真,则位于L1的组件A被重新定位到L2,其中moveTo(L2)表示到L2的迁移。注意,L[C中的P,然后E | P]打算定义独立于策略的特定于应用程序的处理,这超出了语言表示的范围。
此外,L[C1然后copyTo(L3) C2,然后在remove | A,B]中回调意味着,如果条件C1为真,则复制两个组件A和B,并在L2部署副本。否则,如果条件C2为真,则策略在A和B中执行回调函数,然后终止A和B。
策略元数据。我们的策略语言支持执行多个策略,这可能会导致冲突。因此,我们导入元策略规范来解决冲突。策略对象包括规则策略和元策略。规则策略用于定义用户定义规则的主体。元策略用于指定哪个模式优先于其他策略,如第III-B节所述。
策略条件。我们将语言的策略条件函数定义为一阶逻辑谓词。条件C的集合是包含以下表达式的最小集合:C,C1,C2:=phi;|,C | C1and;C2 | C1or;C2 | true | false,其中phi;是逻辑谓词符号,返回true或false,参数大于零。我们的策略驱动语言支持运算符和、或、非、如果和WHILE,基于它们可以构建复杂的条件。当前实现提供了几个内置函数,如下所示,其中每个谓词可以有零个或多个参数,并返回true或false。
bull;存在(A,L)(存在:ptimes;L →真或假)返回true如果组件A的相同或兼容的组件存在于位置L,否则返回false。
bull;delay(time)(delay :T→true或false)阻塞时间间隔的后续执行,然后返回true,其中T是一组无限的相对时间值。
bull;received(N,L,A)(requested :Ptimes;Ntimes;L→true或false)如果分配策略的组件从组件A接收标记为N的消息,则返回true。
用户定义的函数在组件、元策略或运行时系统中实现。通过使用这些条件,可以触发策略操作。lt;
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[237953],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。