工业大数据融合体系结构与关键技术
上QQ阅读APP看书,第一时间看更新

2.2.2 基于传感器技术的工业无线传感器网络

为了适应苛刻工业环境下生产系统的多变性、维护工业无线传感器网络的可用性,基于传感器云技术来提出工业无线传感器网络的两跳区域消息模型,设计面向节点的局部位置优化算法和全局位置优化算法,实现拓扑优化功能,从而达到维护网络连通性的目标。研究新型监控机制来监测网络的各项参数,基于感知到的数据特征来实时调整数据源和网络的工作状态,基于拓扑优化算法设计功能调控机制以自适应地判断当前的网络状态,自动切换网络的工作模式,继而达到延长网络生存时间的目标。如图2-8所示,工业无线传感器网络针对智能工厂的生产系统和生产过程所具有的状态数据进行采集,由监测机制提取特征参数,并通过实时反馈对数据源和网络的工作状态进行调整。

图2-8 工业无线传感器网络

1.两跳区域机制

对于工业无线传感器网络中的节点,设计一个两跳区域机制(two-hopzone scheme),对于任意节点,其两跳区域由两部分组成:一跳邻居(one-hopneighbor)和两跳邻居(two-hop neighbor)。节点ni的一跳邻居节点no是指距离节点ni一跳距离的节点,尽管节点ni和节点no之间可能存在若干条路径,但它们之间最短的路径为一跳。节点no是节点ni的一跳邻居的充分必要条件为:它们可以直接进行通信。节点ni的一跳邻居个数用d(i,1)来表示,并称其为节点ni的度(degree)。将节点ni的一跳邻居表示为

类似地,节点ni的两跳邻居节点nt是指距离节点ni两跳距离的节点,尽管节点ni和节点nt之间可能存在若干条路径,但它们之间最短的路径为两跳。节点nt是节点ni的两跳邻居的充分必要条件为:它们不可以直接进行通信,并且节点nt是节点ni的若干个(大于或者等于一个)一跳邻居节点的一跳邻居节点。节点ni的两跳邻居个数用d(i,2)来表示,则节点ni的两跳邻居可以表示为

根据两跳邻居的定义,可以通过如下方法来计算节点ni的两跳邻居的个数:

需要注意的是,该节点是其一跳邻居的一跳邻居,即

因此,计算d(i,2)时的减一操作是将节点ni排除在外。

2.网络连通性水平

基于本章提出的两跳区域机制,对整个网络的连通性水平进行建模。对于网络中任意两个节点ni和nj,它们之间的关系用fk(ni,nj)来表示,其中k表示两个节点之间最短路径的跳数。节点ni和nj之间的最短路径被分为五种情况,中间节点用nmi来表示,详情如图2-9所示。

图2-9a中,节点ni和nj能够直接通信,它们之间的跳数为1,则

图2-9b中,节点和ni和nj拥有共同的一跳邻居nm1,它们之间的跳数为2,则

图2-9 两跳区域机制下的节点关系

图图2-9c中,节点ni和nj之间有两个中间节点nm1和nm2,它们之间的跳数为3,则

图2-9d中,节点ni和nj之间有三个中间节点nm1、nm2和nm3,它们拥有共同的两跳邻居节点nm2,它们之间的跳数为4,则

图2-9e中,节点ni和nj分别拥有一个两跳邻居节点nm2和nm3,它们之间的跳数大于4。图中的虚线椭圆表示节点nm2与nm3之间的关系与节点ni和nj之间类似。此时,节点ni和nj之间的关系用递归的形式来表示:

节点ni和nj之间更复杂的关系可以被分解,然后通过图2-9中的五种情况进行建模。节点ni和nj之间的连通性水平用d(ni,nj)来表示,则有

当k=0时,表示节点ni和nj之间不存在路径,令d(ni,nj)=0。当k>0时,两个节点之间的连通性水平随着它们之间跳数的增加而单调减小。对于k=1,2,3,4,d(ni,nj)=0的值可以用k的倒数来表示。当k>4时,d(ni,nj)=0的值无法在节点ni和nj的两跳区域内完成,d(ni,nj)=0的值需要递归地确定。由于节点的两跳区域的覆盖范围为两跳,因此当k的值超过4的倍数时,就需要对连通性水平进行递归计算。递归的次数可以表示为

当k>4时,不妨令节点分别为“节点ni和nj位于它们之间的最短路径上”的两跳邻居,那么节点ni和nj的连通性水平为

假设节点ni能够通信的节点用集合Nc={n1,n2,…,nc}来表示,那么将节点ni的连通性水平定义为

对于包含N个节点的网络来说,总共存在个不同的配对。将网络的连通性水平定义为

从理论上说,只要网络中不存在“孤岛”(isolated part),那么不论N是什么数量级的,在R的值足够大的情况下,总能使任意两个节点之间都存在一条路径。随着R值的增加,d(N)保持增大,直到时达到拐点。这里,是d(N)的最大值。当时,有。将定义为网络的收敛程度(degree of convergence)。的值越小,则网络的收敛程度越高。

3.两跳区域消息模型

对于DA节点ni,这里用dfi来表示其发起数据注册的频率。数据注册包含若干条数据记录,将数据注册中包含的数据记录用集合D(ni)来表示,且D(ni)≥1。在一个测量时间段内,若节点ni发起的每个数据注册平均包含di条数据记录,则di≥1。为了更好地阐述两跳区域机制,做出了以下前提假设。

假设2-1:令[ta,tb]为一个测量时间段,且ta<tb。假定该时间段足够长,以至于足以观察节点ni与其一跳邻居以及两跳邻居的行为。此外,该时间段内所有节点的行为特征都被认为是保持不变的,例如数据注册的频率、数据查询的频率、平均每个数据注册所包含的数据记录条数等。

节点ni从其全体一跳邻居处接收数据注册,根据收到的数据注册中所包含的数据信息,节点ni对其本地数据库进行更新。由于不同的节点具有不同的数据注册频率,来自节点ni一跳邻居的数据注册是异步到达节点ni的。另外,节点的数据注册频率也有可能产生变化。因此,一跳邻居节点的数据注册到达节点ni的时间是随机的。为简单起见,假定节点发起数据注册的频率在测量时间段[ta,tb]内是保持不变的。从根本上来说,这是由假设2-1给出的。

将节点ni收到的所有数据注册中包含的数据记录的条数用sd(i,r)来表示,则

对于节点ni的一跳邻居nij来说,其发起的数据注册中包含的数据记录的条数是通过将平均每个数据注册中包含的数据记录条数与测量时间段内发起数据注册的次数相乘得到的。前述假设2-1确保了节点ni的所有一跳邻居在测量时间段[ta,tb]内都至少发起一次数据注册。因此,df(ij)·(tb-ta)的结果大于或者等于1。对于发起数据注册的次数,如果该值不是整数,那么进行向下截断操作,即取小于df(ij)·(tb-ta)的最大整数。如果节点ni是UA节点或者CA节点,那么其会将收到的数据注册转发给全体一跳邻居。当节点ni是DA节点时,除了转发收到的数据注册,其自身还发起数据注册。将节点ni发送的数据记录的条数用sd(i,s)来表示,其由两部分构成,表示如下:

节点ni向其所有的一跳邻居发起数据注册,且频率为dfi。将由节点ni发起的数据注册所包含的数据记录条数用sd(i)来表示,则

节点ni发起的数据注册所包含的数据记录条数是通过将平均每个数据注册中包含的数据记录条数与测量时间段内发起数据注册的次数相乘得到的。假设2-1确保了节点ni在测量时间段[ta,tb]内至少发起一次数据注册。因此,dfi·(tb-ta)的结果大于或者等于1。对于发起数据注册的次数,如果该值不是整数,那么进行向下截断操作,即取小于dfi·(tb-ta)的最大整数。

节点ni转发从其他节点处收到的数据注册。将节点ni转发的所有数据注册包含的数据记录条数用sd(i,f)来表示。在节点ni收到的数据注册中,生存时间(Time To Live,TTL)值大于0的应当被转发。两跳区域机制规定数据注册的初始生存时间值为2,那么节点ni收到的数据注册的生存时间值为1或者0。因此,由节点ni发起的原始数据注册的覆盖范围为节点ni的一跳邻居和两跳邻居。换言之,原始数据注册的传播范围被限制在发起该数据注册的节点的两跳区域内。这个特性能够缓解洪泛效应并减小整个网络所承受的消息开销。假设节点ni收到的数据注册的生存时间值服从泊松分布(Poisson distribution):

节点ni本应将收到的数据注册转发给所有一跳邻居。然而,由节点ni的一跳邻居nij发送给节点ni的数据注册不应当由节点ni转发回节点nij。尽管数据注册所对应的一跳邻居各有不同,但可以使用通用节点niy来指代。那么,由节点ni转发的数据注册个数为

通用节点niy由减一操作排除在外。那么,由节点ni转发的数据注册中包含的数据记录条数为

结合式(2-15)和式(2-20),由节点ni转发的数据注册中包含的数据记录条数为

那么,式(2-16)可被重写为

也就是说,节点ni的每个一跳邻居都会收到从节点ni处发来的sd(i,s)条数据记录。

当节点ni收到数据查询后,其会检查本地数据库以确定该查询是否能够被应答。如果能够应答,就没有必要将该数据查询再发送出去。如果不能应答,则节点ni会将该数据查询发给自身的所有一跳邻居。节点ni的每个一跳邻居都会收到该数据查询的一个复制品。当数据查询在网络中传送时,所经过的中间节点会被依次记录在一个传送路径(travel path)中。数据查询内的这个路径信息会在后续数据应答的传输过程中起到重要作用。将节点ni发送的数据查询个数用ss(i,s)来表示,其由两部分构成,表示如下:

假设节点ni向其一跳邻居发起数据查询的频率为sfi,其发起的每个数据查询中平均包含的数据请求个数为si,那么节点ni发起的数据请求的个数ss(i)

两跳区域机制规定每个数据查询中包含且仅包含一个数据请求。因此,si的值恒等于1。在本章余下的内容中,对数据请求和数据查询不做区分。

对于其他节点发来的数据查询,节点ni会检查本地数据库以确定该查询是否能够被应答。如果能够应答,那么节点ni发起一个数据应答,该数据应答的目的地节点是最初发起该数据查询的节点;而无法由节点ni应答的数据查询则将根据它们的生存时间值进行处理。如果数据查询的生存时间值为0,那么节点ni直接将其丢弃,不进行转发。对于生存时间值大于0的数据查询,节点ni才进行转发。两跳区域机制规定数据查询的初始生存时间值为4。因此,节点ni收到的数据查询的生存时间数值属于集合{3,2,1,0}。同时,由节点ni发起的原始数据查询的覆盖范围为两个两跳区域。换言之,原始数据查询的传播范围被限制在发起该数据查询的节点的两个两跳区域内。与数据注册类似,数据查询初始生存时间值的上限是为了缓解洪泛效应并减小整个网络所承受的消息开销。假设节点ni收到的数据查询的生存时间值服从泊松分布:

节点ni收到的数据查询都被看作来自其一跳邻居;将节点ni收到的数据查询的个数用ss(i,r)来表示,则有

假定节点ni能够应答的数据查询占其所收到的数据查询的百分比为ai。与数据注册类似,由节点ni的一跳邻居nij发送给节点ni的数据查询不应当由节点ni转发回节点nij。因此,节点ni需要转发的数据查询的个数为

那么,式(2-23)可以被重写为

与数据注册和数据查询相比,数据应答的个数本身比较少。通常来说,数据应答的出现是不可预知的,也是不定期的。因此,对数据应答的发送频率进行限制实际上没有意义。更重要的是,出于提升数据融合性能考虑,对数据应答的初始生存时间值不设上限。数据应答在网络中的传送基于包含在对应数据查询中的路径信息。目的地节点为节点ni的数据应答对应于由节点ni发起的数据查询。将节点ni发送的数据应答用sr(i,s)来表示,其由两部分构成,表示如下:

由节点ni自身进行应答的数据查询所对应的数据应答的个数用sr(i)来表示。如前所述,节点ni能够应答的数据查询占其所收到的数据查询的百分比为ai,则

除了发送自身发起的数据应答,节点ni还会转发目的地为其他节点的数据应答。在节点ni收到的数据应答中,目的地节点为节点ni的不会被转发。对于目的地为其他节点的,节点ni会尝试根据数据应答中包含的路径信息将该数据应答转发给路径信息中的下一跳节点。特别地,如果该下一跳节点不可达(unreachable),那么节点ni将丢弃该数据应答,不可达的原因可能是该节点失效或者不在通信范围之内。将节点ni收到的数据应答的个数用sr(i,r)来表示,假定这些数据应答中目的地为节点ni的数据应答所占的百分比为bi。对于应当由节点ni进行转发的数据应答,假定无法转发给下一跳节点的数据应答所占的百分比为fi。节点ni实际转发的数据应答的个数用sr(i,f)来表示,则

结合式(2-29)、式(2-30)和式(2-31),节点ni发送的数据应答个数可以被重写为

4.拓扑控制

由于工业无线传感器网络中的节点是移动的,移动性会对由全体CA节点构成的Chord网络的拓扑产生重大影响。此外,不可预知的节点失效同样会对网络拓扑产生影响。在本章提出的模型中,全体CA节点所构成的Chord网络的拓扑控制由两个方面构成:局部位置优化和全局位置优化。

(1)局部位置优化

局部位置优化(Local Location Optimization,LLO)是在CA节点和与该CA节点进行通信的UA节点之间进行的。对于单个的CA节点来说,将节点在二维平面内360度的通信范围划分为六个邻接的区域,每个区域用αi来表示,且i=1,2,…,6。具体如图2-10所示,其中向上的方向表示正北方向。

图2-10 六个邻接区域

局部位置优化的两个突出特征是隐私保护(privacy preservation)和能量节约(energy conservation)。对于无线电信号的传输,较长的通信距离需要更多的能量。因此,一旦CA节点与UA节点互相取得联系,缩短它们之间的通信距离便是有益的。由于数据查询的结果是由接收查询的原始CA节点发送给UA节点的,这个过程使得对通信距离的缩短更为重要。由于移动节点装备有全方位(omni-directional)天线,CA节点并不知晓UA节点具体在什么位置,因此无法确定出正确的移动方向来缩短通信距离。出于隐私保护考虑,UA节点也不愿意以任何形式共享自身的位置信息(例如GPS坐标)。针对上述问题,可以设计方向探测(direction probing)算法来确定CA节点的移动方向。如图2-11所示,该算法包含一个四步移动策略,每个步骤用si来表示,其中i=1,2,3,4。

图2-11 四步移动策略

考虑一个初始位置为(x0,y0)的CA节点和一个位置未知的UA节点,CA节点依次执行以下移动:s1(N,Δy)、s2(E,Δx)、s3(S,Δy)和s4(W,Δx),其中Δx和Δy均为正值。在执行完一次四步移动后,CA节点返回初始位置(x0,y0)。在每一步移动的过程中,信号强度的变化被记录下来。信号强度的增加和减少分别用加号(+)和减号(-)来表示,CA节点的移动方向可以根据表2-2来确定。

表2-2 移动方向确定

当同时有若干个UA节点与CA节点通信时,与不同UA节点相关的需要移动的方向很可能是不同的。一般来说,能量消耗与通信距离是成正比的。因此,为了减小总的能量消耗,CA节点到所有UA节点间的距离之和应当尽可能小。考虑两个UA节点ua1和ua2,它们与同一个CA节点的通信距离分别用r1和r2来表示。此外,该CA节点处上述两个UA节点的信号强度分别用s1和s2来表示。假定信号强度和通信距离遵循平方反比定律,其中δ是一个常系数,且i=1,2。等式成立的条件是r1=r2,等式r1=r2等价于s1=s2。类似地,对于n个UA节点,不等式取等的条件为r1=r2=…=rn,等式r1=r2=…=rn等价于s1=s2=…=sn。因此,该CA节点的移动方向是基于令所有UA节点的信号强度相等的原则来进行调整的。然而,当UA节点较多时,这个取等的过程会比较复杂。因此,选择对n个UA节点的n个移动方向进行加权合成,加权值与UA节点各自的信号强度成反比。一旦确定最终的移动方向,CA节点就开始沿着该方向移动。当n个信号强度变得近似相等时,CA节点停止移动。每当有新的UA节点与CA节点取得联系或者现有的一个会话(session)终止时,就会启动一次新的方向探测过程。详细的方向探测算法见算法2-1。

算法2-1 DirectionProbing(ca,ua[n])

(2)全局位置优化

全局位置优化(Global Location Optimization,GLO)是在CA节点之间进行的,其应用了局部位置优化中描述的方向探测算法。与局部位置优化不同,全局位置优化主要关注于拓扑维护(topology maintenance)。

由于CA节点的最大通信范围有限,为了保持由CA节点构成的Chord网络的连通性,CA节点之间的相对位置需要被谨慎地控制。Chord网络总体的连通性可以被分解为若干组局部连通性,每个局部都包含三个CA节点。可以基于连通性维护算法(connectivity maintenance algorithm)来维护三个CA节点的局部连通性。

针对单个的CA节点ca,根据Chord协议,节点ca分别拥有一个前继(predecessor)节点和一个后继(successor)节点,将这两个CA节点分别用ca.predecessor和ca.successor来表示。节点ca与节点ca.predecessor之间的信号强度用ca.predecessor.s来表示,节点ca与节点ca.successor之间的信号强度用ca.successor.s来表示。当ca.predecessor.s或者ca.successor.s持续减小时,节点ca开始意识到它的前继节点或者后继节点正在远离它。一旦ca.predecessor.s或者ca.successor.s小于阈值slow,那么节点ca便可启动方向探测过程来确定前继节点或者后继节点所在的方向。同时,节点ca向前继节点或者后继节点发送SLOW_DOWN消息来进行通知。为了避免信号强度进一步降低,在前继节点或者后继节点所在的方向确定后,节点ca就开始沿着该方向移动。此外,收到SLOW_DOWN消息的前继节点或后继节点也会调整自身的移动行为来尝试靠近节点ca。一旦ca.predecessor.s或者ca.successor.s达到某个值,前继节点或者后继节点便停止靠近节点ca,这个值用snormal来表示。需要注意的是,当ca.predecessor.s和ca.successor.s均等于或者大于snormal时,节点ca停止移动。对于前继节点和后继节点来说,可能需要对移动方向进行折中,即节点ca需要使用一个合成的(composite)移动方向。详细的连通性维护算法见算法2-2。由于CA节点的能量是有限的,当CA节点的剩余能量非常低时,连通性维护功能应当停止,该特性由功能调控机制来实现。

算法2-2 ConnectivityMaintenance(ca,ca.predecessor,ca.successor)

5.功能调控

由于能量节约对于构成Chord网络的全体CA节点来说很重要,因此需要针对CA节点的剩余能量来设计功能调控(function tuning)算法。除了对CA节点的功能进行调控,该算法还能够辅助拓扑维护。节点ca剩余的能量用E(ca)来表示,根据节点ca剩余能量的三个不同关键值eα>eβ>eγ,其所处的状态为四个:正常(normal)状态Sn、较低(low)状态Sl、警戒(alert)状态Sa和严重(serious)状态Ss,详情如表2-3所示。

表2-3 能量状态

当节点ca处于正常状态时,它是全功能的(fully-functional),即节点ca接收数据注册、处理数据查询、发起数据应答、执行局部位置优化和全局位置优化等。而一旦进入较低状态,节点ca便会停止执行局部位置优化。当节点ca进入警戒状态后,其会同时给前继节点和后继节点发送ALERT消息。节点ca的前继节点和后继节点在收到ALERT消息后立刻停止执行局部位置优化(即使前继节点和后继节点处于正常状态)。换言之,此时节点ca及其前继节点和后继节点均为其在未来进入严重状态做好了准备。一旦进入严重状态,节点ca便会立刻停止其余所有功能,仅保留数据转移(data transfer)功能。依据Chord协议,节点ca在即将离开网络时应当将自身所负责的<key,value>转移给它的后继节点。当转移结束后,节点ca通知它的前继节点将其后继节点修改为节点ca的后继节点。类似地,节点ca通知它的后继节点将其前继节点修改为节点ca的前继节点。最后,节点ca被完全从Chord网络中分离出来,其原前继节点的后继节点现在为其原后继节点,其原后继节点的前继节点现在为其原前继节点。然后,节点ca的原前继节点在监测令牌中将节点ca的可获得性设置为LOGOUT。监测令牌的细节可参见本章的后续内容。如前所述,当节点ca的状态由正常变成较低时,仅有局部位置优化一项功能被终止。其余所有功能在正常、较低和警戒状态下均保持运行。全局位置优化在节点ca进入严重状态后被终止。因此,上述功能调控算法对拓扑维护有很大帮助。详细的功能调控算法见算法2-3。

算法2-3 FunctionTuning(ca,eα,eβ,eγ)

6.自主的工作模式切换

为了使由全体CA节点构成的Chord网络中的信息更新(information updating)和网络状态收集(network status gathering)能够便捷高效地进行,这里引入了监测令牌(monitoring token)的概念。

监测令牌按照Chord环的逻辑结构在Chord网络中保持顺时针传送。工业无线传感器网络中基于目录的模式和无目录的模式之间自主的模式切换是基于网络状态收集的。将“一圈”定义为监测令牌的传送经过了所有CA节点一次。数据融合体系结构的当前模式由模式标志(flag)变量MODE来表示,其取值为CA-BASED或CA-LESS。监测令牌的结构如图2-12所示,其包含两个列表:DA节点列表和CA节点列表。

图2-12 监测令牌

(1)信息更新与网络状态收集

尽管统一的数据描述和管理机制规定网络中的所有节点都知晓数据的属性和可能的属性值,但是CA节点在最初并不知晓任何DA节点。因此,需要使用监测令牌来执行与DA节点相关的信息更新。一般来说,新的DA节点的出现伴随着由该DA节点发起的数据注册。对于收到数据注册的CA节点来说,其会根据数据注册中包含的信息来对本地数据库进行更新。当监测令牌到达该CA节点时,CA节点检查监测令牌的DA节点列表中是否包含发起该数据注册的DA节点。如果该DA节点已经存在,那么CA节点不做任何操作。如果该DA节点不存在,那么CA节点将该DA节点添加进监测令牌的DA节点列表中。与此同时,CA节点检查监测令牌的DA节点列表中是否有自身未知的DA节点,如果有,则对本地数据库进行更新。换言之,当监测令牌到达CA节点时,CA节点针对DA节点的信息进行双向更新(two-way update)。当现有的DA节点想要离开网络时,该DA节点向其通信范围内的任意一个CA节点发送退出(LOGOUT)消息,收到退出消息的CA节点在本地数据库中移除与该DA节点相关的所有信息。当监测令牌到达该CA节点时,其在监测令牌的DA节点列表中为该DA节点标识一个退出标志。在监测令牌的传送过程中,其他CA节点通过双向更新过程得知该DA节点即将退出网络,故而在本地数据库中移除与之相关的所有信息。当监测令牌下一次到达对该DA节点标识退出标志的CA节点时,该CA节点向该DA节点发起退出确认消息。只要该DA节点收到退出确认消息,它就可以自由地离开网络,不需要再做退出操作。尽管在无目录模式下,Chord网络中不存在拓扑控制和键的查找,但是监测令牌的传送依然保持运转。因此,双向更新、数据注册、SA节点退出等也正常进行。除了信息更新以外,监测令牌还具有另一个重要功能:网络状态收集。Chord网络中的CA节点对其邻近的局部网络状态进行感知,监测令牌收集所有CA节点的局部网络状态,进而展示出整个网络状态的概貌。详细的信息更新算法见算法2-4。

算法2-4 InformationUpdating(ca,DReg[n],token,DA.logout[m],round(0))

(2)自主模式切换

工业无线传感器网络中基于目录的模式和无目录的模式之间的自主模式切换正是基于整个网络状态的概貌。假设数据融合的体系结构处在无目录模式下,如果数据查询的频率略微降低,那么相应地数据注册的频率也应该随之降低。然而,如果数据查询的频率持续并且显著地降低,那么就有必要将模式切换为基于目录的模式。现在,假设数据融合的体系结构处在基于目录的模式下,如果数据查询的频率略微增加,那么相应地数据注册的频率也应该随之增加。然而,如果数据查询的频率持续并且显著地增加,那么就有必要将模式切换为无目录的模式。具体来说,当监测令牌到达CA节点时,如果CA节点在其局部所感知到的数据查询频率大于或者等于一个阈值qf0,那么该CA节点就会在监测令牌的CA节点列表中的对应表项内添加一个加号。如果CA节点在其局部所感知到的数据查询频率小于阈值qf0,那么该CA节点会检查监测令牌的CA节点列表中的对应表项内是否存在加号。如果存在加号,那么该CA节点就移除一个加号。假设数据融合的体系结构处在基于目录的模式下,当某个CA持续若干圈都添加加号时,则表示发生了局部过载(local overload)。如果一定数量的CA节点都遇到了局部过载现象,那么应当将工作模式切换为无目录的模式。当遇到局部过载现象的CA节点的个数较小时,应当继续使用基于目录的模式。将代表发生局部过载的加号个数用lo来表示。当发生局部过载的CA节点占所有CA节点的百分比大于或等于某个数值时,则表示发生了全局过载(global overload),该数值用go来表示。假设数据融合的体系结构在基于目录的模式下,当监测令牌到达CA节点时,该CA节点首先更新监测令牌的CA节点列表中自身表项内的加号个数,然后检查所有CA节点的表项。如果发生局部过载的CA节点比例大于或者等于go,那么该CA节点会将监测令牌中的模式标志变量MODE的值由CA-BASED修改为CA-LESS。随着监测令牌的传送,其他CA节点会相应地切换自身的工作模式。类似地,如果数据融合的体系结构处在无目录的模式下,当发生局部过载的CA节点的比例小于go时,数据融合的体系结构会由无目录的模式切换至基于目录的模式。详细的自主模式切换算法见算法2-5。

算法2-5 AutonomicModeSwitch(ca[n],qf,lo,go,token)