1.本发明涉及在分布式网络下边缘节点服务部署空间有限的情况,节点如何高效的动态部署服务,使得越受用户欢迎的服务部署的离用户越近,从而减少服务发现时间和服务延迟。
背景技术:2.在传统的网络中,只有云端有着巨大的存储空间部署各种用户请求的服务,因此用户的服务请求都必须发送到云端,云端在返回被请求的服务给用户,这样由于用户和云端之间的路由路径相对较长,就会造成较大的服务发现时间,服务延迟和服务成本,但是随着物联网技术的不断发展,网络边缘的节点的存储空间逐渐增大,随着物联网技术的发展,分布式网络中除了云端能部署服务以外其他网络节点中也具有一定的服务部署空间用来部署服务。因此我们通过服务迁移的方式,将一部分用户请求多的服务迁移到边缘节点中,从而减少用户访问服务的路由路径,从而减少服务发现时间,服务延迟和服务成本。服务迁移将用户访问概率大的服务迁移到更接近用户的位置部署,从而使得用户服务访问的效率更好,服务延迟更低,网络的能量与其它消耗也相应减少。在基于服务的网络中,我们可以通过节点部署接收到的返回服务的方法来进行服务迁移。以往的节点服务部署策略就是,节点每接收到来自一个其他节点返回的服务时,就部署该返回服务,然后转发给其他节点或者用户。随着物联网技术的不断发展,边缘节点的存储空间容量越来越大,这也意味着节点上能够部署越来越多的服务,但是由于服务类型繁多和传感器不断上传的巨量数据,节点上留给部署服务的空间是有限的,因此节点部署所有接收到的返回服务显然是不现实的,节点应该有取舍的去动态部署那些用户访问概率更大的服务,也就意味着节点中部署的服务也不是个固定的,会随着服务被访问的概率的实时变化而动态的卸载和部署。
3.常用的服务部署策略有最近最少使用策略,简称为lru策略,和最少使用次数策略,简称为lfu策略。lru策略基于长时间没有被请求过的服务最近被请求的可能性更小,主要考虑服务访问时间,采用lru策略的节点倾向于卸载那些长时间内没有被请求的服务,然后部署新的最近被请求的服务;lfu策略基于一定时间内被请求次数少的服务将来被请求的可能性更小,主要考虑服务访问次数,采用lfu策略的节点倾向于卸载那些一段时间内请求次数最少的服务,然后部署这段时间内被请求次数更多的服务。lru可能会由于一次不流行服务的处理而误导大量热点的服务,而lfu对突发性的稀疏服务请求无力。lru和lfu策略都有各自的优点和缺陷。这些策略主要的参考参数是访问时间或访问次数,本发明则是在这些策略的基础上进行了改进,提出了通过特定的权值函数来计算每个服务的特征值,服务的特征值大小由该服务的访问时间或访问次数决定,其原则是最近的一次访问所占的权值最大,越往后其权值越小。
4.当在节点中能够连续多次找到被请求的服务,或者在节点中找到服务的次数比在节点中未找到服务的次数多时,说明此时的该节点上的服务请求倾向于这样一种趋势:被请求次数较多的服务再次被访问的可能性更大,服务特征值受服务访问次数的影响更大,
这种场景下节点更适宜于采用lfu策略。当在节点中能够连续多次未找到被请求的服务,或者在节点中未找到服务的次数比在节点中找到服务的次数多时,说明此时的该节点上的服务请求倾向于这样一种趋势:最早被请求过的服务再次被请求的可能性最小,服务特征值受服务访问时间的影响更大,这种场景下节点更适宜于采用lru策略。实际应用中,网络中的节点采用不同的服务部署策略在不同的服务请求场景下中会有不同的性能表现,由于现实服务请求场景的复杂多变,很难有一种服务部署策略在各种服务请求场景中都有优异的性能表现。因此本发明可以通过动态的调整权值函数,使得基于服务特征值的动态服务部署策略能够自适应于多种服务请求场景。
技术实现要素:5.本发明公开了一种基于服务特征值计算的节点动态服务部署策略,简称为dpds策略,其特征在于:随着物联网技术的发展,分布式网络中除了云端能部署服务以外其他网络节点中也具有一定的服务部署空间用来部署服务,于是节点采取合理的服务部署策略部署一些受用户欢迎的服务能够有效减少用户访问服务的路由路径,从而减少服务发现时间,服务延迟和服务成本;首先,当节点每接收到一个服务请求,就通过特定权值函数计算并更新该服务的特征值,特征值越大的服务将来被访问的概率越高;当节点每接收到一个返回服务时,节点需要根据其服务部署空间和服务特征值大小判断是否部署以及如何部署该服务;根据节点上的服务发现情况,即节点接收到服务请求后能否在自身上找到该被请求的服务,动态的调整权值函数的参数,使得dpds策略能够自适应于多种服务请求场景。
6.当节点每接收到一次服务请求,就通过一个权值函数计算并更新该服务的特征值,权值函数f(x)的公式如下:
[0007][0008]
式中p是一个大于2的常数,λ是一个可以在[0,1]范围内调节的参数。
[0009]
网络中的每个节点都有一张服务特征信息表用来存储服务的特征值,服务特征信息表的格式为sj是节点接收到的服务请求的服务名,是该节点最近一次接收到sj的服务请求的时间,是该节点在时接收到sj的服务请求后计算出来的特征值。如果节点mi在t
request
时接收到了对sj的服务请求,节点mi首先查找它的服务特征信息表里是否存储有sj的信息,如果有则根据服务特征信息表里sj对应的和来计算sj在t
request
时的特征值计算方法如下:
[0010][0011]
接下来节点mi需要在它的服务特征信息表中更新sj的相关信息具体为:更新sj的最近一次被请求的时间为t
request
,即
更新sj的特征值为即
[0012]
如果在t
request
时刻,节点mi的服务特征信息表里没有sj的相关信息,则节点mi按照下面的公式计算sj的特征值
[0013][0014]
接下来节点mi需要在它的服务特征信息表中存储sj的相关信息具体为:存储sj的最近一次请求时间为t
request
,即存储sj的特征值为即
[0015]
当节点每接收到一个返回的服务时,节点需要根据其服务部署空间和服务特征值的大小判断是否部署该服务以及如何部署该服务:假设节点mi上已经部署了ni个服务,用s(ni)表示的当前节点mi上部署服务集合;节点mi在t
return
时刻接收到一个返回的服务s
return
后,用s(ni+1)表示节点mi已经部署和接收到的服务集合;在接收到返回的服务s
return
后,节点mi首先判断是否还有足够的服务部署空间用来部署s
return
,如果有则直接部署接收到的服务s
return
;如果没有,那么节点mi接下来需要根据它的服务特征信息表计算在t
return
时s(ni+1)里所有服务的特征值,并找出最小的服务特征值,最小特征值计算公式如下:
[0016][0017]
找到最小的后,节点mi需要判断服务sj是否是接收到的服务s
return
:如果是,则节点mi不用部署s
return
;如果sj不是s
return
,则节点mi需要先卸载服务sj,然后部署s
return
。
[0018]
根据节点上的服务发现情况,即节点接收到服务请求后能否在自身上找到该被请求的服务,动态的调整权值函数的参数:权值函数f(x)有一个参数λ,λ∈[0,1],λ取不同值时,dpds策略适应的服务请求场景不一样;modify_times,modify_value是大于1的常数,modify_ratio是大于0的常数。intimes表示在节点mi中找到用户请求服务的次数,outtimes在节点mi中未找到用户请求服务的次数,初始时,intimes与outtimes都设置为0。节点mi每接收到一次服务请求,首先查找自己是否部署了该被请求的服务,如果在节点mi中找到了被请求的服务则intimes加1;否则outtimes加1,接下来节点mi需要判断是否调整以及如何调整权值函数的参数λ,当intimes大于modify_times并且intimes大于outtimes*modify_ratio时,我们就通过下面的公式减少λ值:
[0019]
λ=λ\modify_value
[0020]
当outtimes大于modify_times并且outtimes大于intimes*modify_ratio时,我们通过下述公式增加λ值:
[0021][0022]
在节点mi的权值函数的参数λ调整后,节点mi的intimes与outtimes都需要重置为
0。
附图说明
[0023]
为了更清楚地说明本发明中的技术方案,下面将对技术描述中所需要使用的附图作简单地介绍:
[0024]
图1服务迁移部署示意图。
[0025]
图2节点接收服务请求后更新服务特征信息表示意图。
[0026]
图3节点接收返回服务的示意图。
[0027]
图4节点命中用户服务请求概率示意图。
[0028]
图5用户服务请求平均转发次数示意图。
[0029]
图6平均服务发现时间示意图。
[0030]
图7平均服务延迟示意图。
[0031]
图8平均每次服务成本示意图。
具体实施方式
[0032]
下面将结合具体实例对本发明做进一步的说明。
[0033]
本发明提供了一种基于服务特征值计算的节点动态服务部署策略,网络模型如图1所示,网络分为四层,终端层,边缘层,路由层和云端。终端层是网络的最底层,主要是指由一些感知数据的物联网设备组成和用户组成。边缘层主要是由部署在网络边缘的节点组成,这些节点具有一定的服务部署空间,可以部署一定数量的服务。路由层的主要是指主干网络层,主要起到路由的功能。云端是网络的最项层,它拥有足够大的服务部署空间来部署所有的服务,因此用户能够从云端得到所有想得到的服务,但是用户直接从云端获得服务就会经历长的路由,大的能量消耗与带宽占用和服务延迟。因此可以把部分服务直接部署在边缘层和路由层的节点中,这样用户可以不用访问云端就能得到服务,从而减少用户访问服务的路由路径。例如图1中,用户u4通过节点m
11
访问服务se,然后在节点m
17
上找到服务se,接着se沿m
17
→m19
→m20
→m11
返回给用户u4,如果se返回过程中节点m
20
部署了服务se,那么之后a
11
,a
12
,a
13
,a
14
区域内的用户访间服务se的路由路径都会减少2跳,如果se返回过程中节点m
23
也部署了服务se,那么就会使得来自a
14
区域的用户访问服务se的路由路径将会减少2倍以上,显然在边缘节点部署服务的措施能够有效的减少用户访问服务的路由路径。
[0034]
图2就是节点接收服务请求后更新服务特征信息表的一个示例图,假设节点m1在t
request
时收到了sa的服务请求,那么此时节点m1需要根据它服务特征信息表里记录的sa的最近一次的请求时间和特征值来计算t
request
的sa的特征值,计算方法如下:
[0035][0036][0037]
从图2中还可以看出,在计算出后,节点m1的服务特征信息表中需要更
新sa的相关信息,其中sa的最近一次被请求的时间为t
request
,即更新sa的特征值为即
[0038]
图3节点接收返回服务的一个示例图,假设用户向节点m1请求服务sd,然后最终在m7中找到了服务sd,m7按照原路返回服务sd,于是首先m5接收到了服务sd,m5首先检查自己是否有足够的服务部署空间来服务sd,那么图3中展示的情况就是m5有足够的服务部署空间来部署sd,于是m5需要部署服务sd,然后m5返回服务sd给m1。假设m1在t
return
时刻接收到服务sd,它首先检查自己是否有足够的服务部署空间来服务sd,那么图3中展示的情况就是m1没有足够的服务部署空间来部署sd,此时m1部署了一个服务sa,即n1=1,s(n1)就是{sa},s(n1+1)为{sa,sd}。于是此时m1就需要根据它的服务特征信息表按照下面的公式找出最小特征值。
[0039][0040]
按照图3的结果,计算出来的结果应该是最小,即计算结果表明,m1收到sd的服务请求的可能性会最低,因此m1不应该为了部署服务sd而卸载服务sa,于是m1直接返回服务sd给用户。
[0041]
权值函数f(x)有一个非常重要的特性如下:
[0042]
(1)当λ=1时,dpds策略与lru策略一致,服务特征值的大小取决于服务访问时间的间隔大小。
[0043]
(2)当λ=0时,f(x)=1,是一个常数,dpds策略与lru策略一致,服务特征值的大小取决于服务访问次数的多少。
[0044]
所以λ从0到1的变化过程中,dpds策略逐渐从lfu过渡到lru,这意味着我们可以通过动态的调整λ值使得dpds变成不同的服务部署策略,从而适应不同的服务请求场景。当在节点中能够连续多次找到被请求的服务,或者在节点中找到服务的次数比在节点中未找到服务的次数多时,说明此时的该节点上的服务请求倾向于这样一种趋势:被请求次数较多的服务再次被访问的可能性更大,于是就减小λ值,使得节点的服务部署策略更倾向于lfu。当在节点中能够连续多次未找到被请求的服务,或者在节点中未找到服务的次数比在节点中找到服务的次数多时,说明此时的该节点上的服务请求倾向于这样一种趋势:最早被请求过的服务再次被请求的可能性最小,于是就增大λ值,使得节点的服务部署策略偏向于lru。具体的动态的调整权值函数的参数的实施过程将在下面介绍。
[0045]
modify_times,modify_value是大于1的常数,modify_ratio是大于0的常数。intimes表示在节点mi中找到用户请求服务的次数,outtimes在节点mi中未找到用户请求服务的次数,初始时,intimes与outtimes都设置为0。节点mi每接收到一次服务请求,首先查找自己是否部署了该被请求的服务,如果在节点mi中找到了被请求的服务则intimes加1;否则outtimes加1,接下来节点mi需要判断是否调整权值函数的参数λ以如何调整,当intimes大于modify_times并且intimes大于outtimes*modify_ratio时,我们就通过下面的公式减少λ值:
[0046]
λ=λ\modify_value
[0047]
当outtimes大于modify_times并且outtimes大于intimes*modify_ratio时,我们
通过下述公式增加λ值:
[0048][0049]
权值函数的参数λ调整后,节点mi的intimes与outtimes都重置为0。
[0050]
为了体现出dpds中动态的调整参数λ是可以适应不同的服务请求场景,我们在随机服务请求,有偏向性的服务请求,以及前两者随机混合服务的请求的场景下,网络中的节点分别采取dpds策略以及lru和lfu策略,以及不采取任何服务部署策略的网络中节点的平均命中服务的概率以及用户服务请求的平均被转发次数,服务发现时间,服务延迟和平均每次服务成本。
[0051]
图4显示的就是在不同服务请求场景下节点采用不同服务部署策略下的命中用户请求的服务的概率,从图中可以看出,首先采取一定的服务部署策略的节点命中服务的概率会远远高于不采取任何服务部署策略的节点命中服务的概率。从图中也可以看出,相比于lru策略,采取dpds和lfu策略的节点的服务命中率在有偏向性和混合服务场景下明显更高。
[0052]
图5显示的用户服务请求的平均被转发次数,从图中可以看出的dpds策略可以通过调整λ值从而适应不同的服务请求场景,从而在每一种服务请求场景下的平均被转发次数都是最低的,这也证明了网络中的节点都采用dpds策略时,有助于与将用户访问概率大的服务迁移到更接近用户的位置部署,从而减少服务请求被转发的次数。
[0053]
图6显示的平均服务发现时间,服务发现时间是指最接近用户的节点接收到用户的服务请求然后找到服务具体部署在哪个节点上的时间。从图中可以看出的dpds策略可以通过调整λ值从而适应不同的服务请求场景,从而在每一种服务请求场景下的平均服务发现时间都是最低的。
[0054]
图7显示的平均服务延迟,服务延迟被定义成从用户发送服务请求到接收到服务返回结果的总时间。从图中可以看出的dpds策略可以通过调整λ值从而适应不同的服务请求场景,从而在每一种服务请求场景下的平均服务延迟都是最低的。
[0055]
图8显示的平均每次服务成本,从图中可以看出的dpds策略可以通过调整λ值从而适应不同的服务请求场景,从而在每一种服务请求场景下的平均每次服务成本都是最低的。