一个基于推荐网络和蚁群算法的服务发现方法与流程

文档序号:11234838阅读:262来源:国知局

本发明涉及软件工程领域,具体的说是一个基于推荐网络和蚁群算法的服务发现方法。



背景技术:

web服务所在互联网是一个开放且动态的环境,致使其中的服务发现存在若干新的问题。(1)服务提供者、使用者以及服务本身的行为和数量都是无法预知的,它们可以随时加入或退出系统。这就要求服务发现技术能够适应网络的动态拓扑结构,而推荐网络可以较好地适应动态开放的环境。(2)集中式服务发现技术无法满足互联网服务搜索的需要。采用uddi等集中式web服务搜索技术虽然具有实现简单、易于操作等优点,但随着网络的发展,集中式服务搜索技术的性能瓶颈、单点失败等缺点逐渐显现出来。尤其是在web服务语义描述迅速发展的今天,集中式服务搜索技术已经不能满足语义匹配的需求。

大量的服务资源分散存储在互联网上,实现组装的前提是要实现对这些服务资源准确、自动的发现。但目前的服务发现方法存在效率不高、负载不均衡等问题,缺乏对这些服务资源有效的管理方法。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供一个基于推荐网络和蚁群算法的服务发现方法。

本发明所述一个基于推荐网络和蚁群算法的服务发现方法,解决上述技术问题采用的技术方案如下:所述基于网络探针技术的计算机网业务实时监控方法,通过将服务映射为相应的服务节点,在此基础上构建一个自组织的服务推荐网络;并基于服务推荐网络提出了相应搜索方法,利用蚁群算法实现网络的负载均衡;通过服务推荐网络和蚁群算法相结合实现服务发现;

将整个服务发现的过程类比为蚂蚁觅食的过程,并将服务提供节点发布的服务信息度存放在搜索路径上的各个节点中,根据蚂蚁觅食行为的特性,通过蚂蚁释放信息素的正反馈机制指导搜索前进的方向。

优选的,建立服务推荐网络的具体过程包括如下步骤:

第一,初始化服务,每个服务节点被随机指定若干个邻居,进行参数初始化;n是网络节点数,γ是第一个服务节点发布服务信息时,包含该服务信息的服务节点的覆盖率;

第二,随机选择一个服务提供节点,该节点使用服务标记策略将关键字映射为同义词集标号synsetid,发布具有某一服务synsetid信息的节点数量为0;

第三,若接收到推荐,更新服务提供节点的邻居列表,检查发布数量是否达到nγ,γ为调节参数;若已达到,向服务集内所有节点发送服务集信息,转到第六步;

若未达到,使用邻居选择策略选择一个邻居节点,并将服务的synsetid发布到该邻居节点上,发布数量为1;

第四,当邻居节点接收到服务信息,若服务提供节点不在该邻居节点的邻居列表中,服务提供节点将会被追加到该邻居节点的邻居列表中;邻居节点更新邻居列表中服务提供节点的信息度;

检查邻居节点的synsetid与服务提供节点的synsetid是否相同;若相同,则返回服务相同标识;否则,邻居节点返回一个推荐;

第五,服务提供节点检查返回结果,若是推荐转到第二步;若是服务相同标志,则这两个节点被划分到同一服务集中;

服务提供节点将相应的邻居节点加入到服务提供节点的服务集中,并将服务集信息发送到邻居节点中;该邻居节点变成新的服务提供节点,继续发布服务的synsetid,转到第二步;

第六,检查是否还存在未发布服务synsetid的节点;若有,从中选取一个服务节点发布服务synsetid,转到第一步;若没有,则说明所有节点都完成了发布,完成服务推荐网络的建立。

优选的,基于服务推荐网络和蚁群算法相结合进行服务发现,其具体实现过程为:

将整个服务发现的过程类比为蚂蚁觅食的过程,并将服务提供节点发布的服务信息度存放在搜索路径上的各个节点中,根据蚂蚁觅食行为的特性,通过蚂蚁释放信息素的正反馈机制指导搜索前进的方向。

优选的,蚂蚁在查询过程中,根据本地服务信息度同时考虑蚂蚁本身携带的信息,决定下一跳节点。

优选的,蚂蚁在搜索到目标节点后,生成一只回溯蚂蚁沿原路径返回,并更新新路径上各个节点的服务信息度,在返回到源节点后便死亡。

本发明所述一个基于推荐网络和蚁群算法的服务发现方法,与现有技术相比具有的有益效果是:本发明建立的自组织服务推荐网络ssrnm,为后续的服务发现提供了搜索空间,同时能用于互联网下服务资源的共享管理;采用分布式服务发现技术解决集中式服务发现技术的缺点;提高了服务资源准确、自动发现的效率,实现服务网络的负载均衡问题。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明所述一个基于推荐网络和蚁群算法的服务发现方法进一步详细说明。

本发明提出了一个基于推荐网络和蚁群算法的服务发现方法,通过将服务映射为相应的服务节点,在此基础上构建自组织服务推荐网络,通过服务推荐网络解决现有服务发现盲目性问题;并基于服务推荐网络提出了相应搜索方法,利用蚁群算法实现网络的负载均衡。本发明所述服务发现方法能够用于互联网中各种软件资源的共享和查找,应用到相关搜索引擎中,为实现互联网下服务发现和组装提供技术保证。

实施例:

本实施例所述基于推荐网络和蚁群算法的服务发现方法,将服务映射为相应的服务节点,借鉴推荐思想,在此基础上构建一个自组织服务推荐网络(self-organizationservicereferralnetworkmodel,ssrnm),该服务推荐网络是一种无结构p2p网络,具有较强的动态性且不需要路径恢复的算法,不存在单点失败、性能瓶颈等问题。该服务推荐网络为后续的服务发现提供搜索空间,同时能用于互联网下服务资源的共享管理。

所述服务推荐网络是一个初始化过程,主要完成服务发布和访问分类两部分内容;建立服务推荐网络的具体过程包括如下步骤:

第一,初始化服务,每个服务节点被随机指定若干个邻居,进行参数初始化;n是网络节点数,γ是第一个服务节点发布服务信息时,包含该服务信息的服务节点的覆盖率;

第二,随机选择一个服务提供节点,该节点使用服务标记策略将关键字映射为同义词集标号(synsetid),发布数量(具有某一服务synsetid信息的节点数量)为0;

第三,若接收到推荐,更新服务提供节点的邻居列表,检查发布数量是否达到nγ(γ为调节参数);若已达到,向服务集内所有节点发送服务集信息,转到第六步;

若未达到,使用邻居选择策略选择一个邻居节点,并将服务的synsetid发布到该邻居节点上,发布数量为1;在使用邻居选择策略选择邻居节点时,若邻居节点在本节点的服务集中,则该邻居节点将被忽略;

第四,当邻居节点接收到服务信息,若服务提供节点不在该邻居节点的邻居列表中,服务提供节点将会被追加到该邻居节点的邻居列表中;邻居节点更新邻居列表中服务提供节点的信息度;

检查邻居节点的synsetid与服务提供节点的synsetid是否相同;若相同,则返回服务相同标识;否则,邻居节点返回一个推荐;

第五,服务提供节点检查返回结果,若是推荐转到第二步;若是服务相同标志,则这两个节点被划分到同一服务集中;

服务提供节点将相应的邻居节点加入到服务提供节点的服务集中,并将服务集信息发送到邻居节点中;该邻居节点变成新的服务提供节点,继续发布服务的synsetid,转到第二步;

第六,检查是否还存在未发布服务synsetid的节点;若有,从中选取一个服务节点发布服务synsetid,转到第一步;若没有,则说明所有节点都完成了发布,完成服务推荐网络的建立。

通过服务推荐网络进行服务发现,建立所述服务推荐网络ssrnm后,能够根据一个或者多个关键字keywords进行服务查询,在服务推荐网络中找到相应的服务节点。基于上述服务推荐网络能够进行基本服务发现(basicservicediscoveryalgirhtm,bsda)。

通过服务推荐网络进行基本服务发现,其具体实施过程如下:查询请求中的关键字keywords,通过语义匹配被映射为一个或多个语义标注ssynsetid;然后,使用邻居选择策略选择接受节点;若接受节点满足查询条件,则查询结束;否则,接受节点返回若干推荐。最后,搜索节点将这些推荐更新到邻居列表后,继续查找;若所有邻居都已被搜索,则查询失败。

在上述基本服务发现的基础上,本实施例提出基于推荐网络和蚁群算法的服务发现方法,基于服务推荐网络和蚁群算法相结合进行服务发现,其具体实现过程如下:

将整个服务发现的过程类比为蚂蚁觅食的过程,并将服务提供节点发布的服务信息度存放在搜索路径上的各个节点中,根据蚂蚁觅食行为的特性,通过蚂蚁释放信息素的正反馈机制指导搜索前进的方向,极大提高随机游走算法的查询算法。

该服务发现方法中,蚂蚁在查询过程中,根据本地服务信息度同时考虑蚂蚁本身携带的信息,决定下一跳节点。这样,实现了蚁群算法和推荐网络的有效结合,进一步提高了查找效率。蚂蚁在搜索到目标节点后,生成一只回溯蚂蚁沿原路径返回,并更新新路径上各个节点的服务信息度,在返回到源节点后便死亡。

借鉴蚁群算法中的“信息素”更新的思想,对于某一查找成功的服务,使用以下公式更新该服务在查询路径上各个节点的服务信息度:

sigk(n)=sigk(n-1)(1-τ)+τ(1)

sigk(n)=sigk(n)(1-ρ)(2)

式中:τ为常量且0<τ<1,ρ是信息度挥发因子且ρ<1,sigk(0)为常量,k表示查找成功路径上的节点,n表示第n只回溯蚂蚁返回该节点。

信息素初始值设置为1,且当有命中消息包从某个邻居返回时,节点对所有邻居的信息素进行更新。该服务发现方法中,当有命中消息包从某个邻居返回时,节点只对该邻居相应的范围信息度进行更新,且服务信息度初始值设置0.2。

由0<sigk(0)<1,假设0<sigk(n-1)<1,由上式得

sigk(n)=sigk(n-1)(1-τ)+τ

=sigk(n-1)+τ[1-sigk(n-1)]

因为0<τ<1且0<sigk(n-1)<1,所以1>sigk(n)>sigk(n-1)。

由式(1)可知,能够有效避免服务信息度的无限累加。通过服务信息度的挥发,使得邻居列表中一些不常使用的邻居的服务信息度逐渐减少。当邻居的服务信息度低于某一阀值时,节点便将该邻居从邻居列表中删除。

服务信息度不可能无限大,当服务信息度增大到一定程度后便接近于某一定值;根据式(1)可知,服务信息度最大值无限接近于1,并且服务信息度每隔一定时间段根据式(2)进行挥发。

在该服务发现方法中,蚂蚁保存有一个类似于节点邻居列表的目标节点列表。当蚂蚁到达一个节点后,节点根据邻居选择策略给出一些推荐,蚂蚁将这些推荐更新到蚂蚁的目标节点表中。蚂蚁查看目标节点列表中是否存在拥有目标服务的节点信息,若不存在,则选择社交度最大的节点作为下一跳地址;若存在,使用式(3)计算pi,以概率pi选择下一跳的地址:

其中,n表示蚂蚁的目标列表中包含目标服务的节点的个数。

这样,即使蚂蚁不知道目标节点的信息,也可以通过社角度消除搜索的盲目性,进一步提高查找、搜索效率。在知道目标节点的情况下,能够通过式(3)实现网络流量的调节,充分利用网络资源。

可见,该服务发现方法将推荐网络和蚁群算法进行了有效结合,并且蚂蚁只根据目标节点列表进行寻路,操作简单且每只蚂蚁行为自组织。由服务推荐网络和蚁群算法结合实现的服务发现,比仅仅基于服务推荐网络进行服务发现,避免使用邻居选择策略时,选择的邻居负荷过重造成网络拥塞的现象,提高了服务搜索和访服务发现效率。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1