分布式环境下动态Web服务组合方法与流程

文档序号:20999740发布日期:2020-06-05 22:33阅读:155来源:国知局
分布式环境下动态Web服务组合方法与流程

本发明属于计算机软件服务技术领域,具体涉及一种分布式环境下动态web服务组合方法。



背景技术:

互联网上开放的web服务数量日益增多,使得web服务组合成为一种新的信息服务系统解决方案之一,然而,如何从数量繁多的web原子服务中动态匹配符合用户需求的最佳服务组合方案,是一个亟待解决的问题。

利用基本蚁群算法,可以在一定程度上解决上述问题,但是,基本蚁群算法具有收敛速度慢,容易陷入局部最优解的问题,而位于互联网上的web服务数量庞大,基于蚁群算法的web服务组合框架这一问题更加突出。



技术实现要素:

为了解决上述技术问题,本发明的目的在于提供一种分布式环境下动态web服务组合方法,其特征在于,包括如下步骤:

s1,基于蚁群算法建立web服务组合模型,并进行参数的初始化,初始时,建立每一个资源的初始信息素bk,令每一条路径的信息素初始大小为tij(0)=bk,且δtij(0)=0;时间t=0,迭代次数nc=0;算法的最大迭代次数为web服务数量为n,蚂蚁数量为m,蚂蚁的禁忌表索引号k的初始值值为1;

s2,随机分布m只蚂蚁至n个web服务组合节点;

s3,收集web服务信息,为新进的资源设置信息初始值,并对信息素进行更新,为发生故障和执行完任务的web服务进行标识,包括惩罚标识和奖励标识;

s4,计算蚂蚁的状态转移概率,并以此选择web服务的行进路径,将已经过的web服务节点添加到蚂蚁的禁忌表中;

s5,查看禁忌表是否已满,如果是,则执行下一步骤;如果不满,则更新蚂蚁的禁忌表索引号k=k+1,并返回步骤s3;

s6,根据已满的禁忌表,输出最佳的web服务的行进路径;

s7,判断所有web服务节点是否遍历完,如果是,则执行下一步骤;否则返回步骤s3;

s8,更新每一条路径的信息素强度;

s9,当时,迭代结束并输出该组合结果;否则,清空禁忌表数据,更新迭代次数nc=nc+1,并返回步骤s2。

优选地,步骤s1中,将web服务定义为wsi(function,qos,cost),其中wsi指的是web服务的名称,function代表web服务的能力,qos是指web服务的服务质量情况,cost是指使用某个web服务的代价。

优选地,步骤s4中,状态转移概率的计算公式为:

其中,jk是指未被访问的web服务的集合,α和β为控制参数,表示web服务的性能影响度和额外开销的比重,tij表示路径(i,j)的信息素强度,dij表示从节点i到下一个节点j的距离。

优选地,控制参数α=1,β=5。

优选地,步骤s3中,采用如下公式完成信息素的局部更新:

tij(t+1)=(1-ρ)tij(t)+δtij(t)

tij(t)表示信息素强度在时刻t路径(i,j)上的信息素强度大小,ρ为取值范围0到1的常数,代表了信息素局部挥发的重要程度,指t时刻蚂蚁k在路径(i,j)上的信息素强度增量;

步骤s8中,采用如下公式完成信息素的局部更新:

tij(t+1)=(1-θ)tij(t)+δtij(t)

θ为取值范围0到1的常数,代表了信息素局部挥发的重要程度。

优选地,信息素强度增量可表示为:

其中,v(c)是指蚂蚁在完成一次觅食路径搜索后,所形成的的该联盟的信息素总量。

本发明的优点是:与现有的方法相比,本发明基于改进蚁群算法,提供的web服务组合方法具有分布式计算的特征,健壮性强,蚁群算法的优点能够与web服务组合相结合,在动态的web服务环境下也能体现出较好的灵活性和鲁棒性。本发明主要面向开放互联网环境下提供大量web服务的应用领域,服务消费用户可按需更改服务选择结果,能够有效提高web服务在深度和广度上的应用,从而灵活的支撑上层应用业务,并屏蔽信息基础设施变化带来的影响。

附图说明

通过下文中参照附图对本发明所作的描述,本发明的其它目的和优点将显而易见,并可帮助对本发明有全面的理解。

图1为本发明提供的分布式环境下动态web服务组合方法的流程图;

图2a-图2c为采用不同方法得到的算法性能的对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。

参照图1,为本发明提供的分布式环境下动态web服务组合方法,包括如下步骤:

s1,基于蚁群算法建立web服务组合模型,并进行参数的初始化,初始时,建立每一个资源的初始信息素bk,令每一条路径的信息素初始大小为tij(0)=bk,且δtij(0)=0;时间t=0,迭代次数nc=0;算法的最大迭代次数为web服务数量为n,蚂蚁数量为m,蚂蚁的禁忌表索引号k的初始值值为1;

s2,随机分布m只蚂蚁至n个web服务组合节点;

s3,收集web服务信息,为新进的资源设置信息初始值,并对信息素进行更新,为发生故障和执行完任务的web服务进行标识,包括惩罚标识和奖励标识;

s4,计算蚂蚁的状态转移概率,并以此选择web服务的行进路径,将已经过的web服务节点添加到蚂蚁的禁忌表中;

s5,查看禁忌表是否已满,如果是,则执行下一步骤;如果不满,则更新蚂蚁的禁忌表索引号k=k+1,并返回步骤s3;

s6,根据已满的禁忌表,输出最佳的web服务的行进路径;

s7,判断所有web服务节点是否遍历完,如果是,则执行下一步骤;否则返回步骤s3;

s8,更新每一条路径的信息素强度;

s9,当时,迭代结束并输出该组合结果;否则,清空禁忌表数据,更新迭代次数nc=nc+1,并返回步骤s2。

蚁群算法是对真实环境下蚂蚁寻觅食物过程的一种行为模拟,是一种机理应用,它对蚂蚁个体进行了抽象,将研究对象的个体映射到虚拟蚂蚁个体当中,它不是对蚂蚁个体的完全重现。抽象的主要目的是为了抛弃无关的、对算法模型无影响的因素,更加好的模拟真实蚁群的行为机理。在web服务自动组合中,将蚂蚁视为某一个简单的web服务请求者/调用者即web服务代理中心,能够实现web服务组合问题解的构造,并能够通过信息素影响其他蚂蚁个体。

在蚁群算法里,信息素用于在蚂蚁个体与个体之间的信息传递和互相交流。信息素的作用主要由两个方面:一个是蚂蚁个体之间可以通过其进行交流,后来的蚂蚁在选择路径时参考之前蚂蚁在路径上残留的信息素强度大小进行判断下一步策略;另外一个是信息素会随着时间的推移而挥发,较长的路径与长期无蚂蚁经过的路径信息素强度会很小,对蚂蚁的诱导作用也很小。蚂蚁的下一步行进策略完全由信息素强度大小决定。若没有信息素或信息素的设置不合理,那么算法的准确度将受到很大是影响。因此,信息素的初始化和更新原则在蚁群算法中是十分重要的。

优选地,步骤s1中,将web服务定义为wsi(function,qos,cost),其中wsi指的是web服务的名称,function代表web服务的能力,qos是指web服务的服务质量情况,cost是指使用某个web服务的代价。

优选地,步骤s4中,状态转移概率的计算公式为:

其中,jk是指未被访问的web服务的集合,α和β为控制参数,表示web服务的性能影响度和额外开销的比重,tij表示路径(i,j)的信息素强度,dij表示从节点i到下一个节点j的距离。

蚂蚁到达某一个web服务节点,会根据是否已经满足当前联盟的完成任务需求进行判断,若满足则停止搜索。这要求蚂蚁在经过每一个web服务节点时,要累计该节点的能力向量,求出当前联盟的总能力向量,判断是否能够满足用户的要求,如果可以,则停止搜索;否则继续进行搜索。一次循环的结束是以最后一只蚂蚁停止搜索时为结束标识。

优选地,上述公式中,控制参数α=1,β=5。α和β为计算转移概率的启发式因子,通过它们调整不同影响因素的信息素比重,决定了信息素与局部启发信息的相对重要度。α和β取值的不同会对蚁群算法的搜索过程产生一定的影响。α反映的是蚂蚁在行进过程中随机性因素的影响程度,α值越大,蚂蚁选择信息浓度大即之前走过蚂蚁多的路径概率越大,随机搜索的可能性降低。不过,如果α的值设置过大,则会导致算法陷入局部最优解。β反映的是蚂蚁在行进过程中确定性因素的影响程度,β值越大,蚂蚁在某局部节点上选择局部最短路径的概率越大。这样虽能够加快算法收敛速度,但是由于随机性降低了,同样会导致算法陷入局部最优解。

要实现蚁群算法的全局最优,一方面要确保蚂蚁在搜索路径时具有很强的随机性。另一方面,为了加快蚁群算法的收敛速度,又要使蚂蚁在搜索路径时具有很好的确定性。所以,在这两个因素的考虑上面,α和β相互配合和影响,并密切相关。本发明采用反复实验的方式对α和β的取值进行确认,最终得到α=1,β=5。

优选地,步骤s3中,采用如下公式完成信息素的局部更新:

tij(t+1)=(1-ρ)tij(t)+δtij(t)

tij(t)表示信息素强度在时刻t路径(i,j)上的信息素强度大小,ρ为取值范围0到1的常数,代表了信息素局部挥发的重要程度,指t时刻蚂蚁k在路径(i,j)上的信息素强度增量;

步骤s8中,采用如下公式完成信息素的局部更新:

tij(t+1)=(1-θ)tij(t)+δtij(t)

θ为取值范围0到1的常数,代表了信息素局部挥发的重要程度。

优选地,信息素强度增量可表示为:

其中,v(c)是指蚂蚁在完成一次觅食路径搜索后,所形成的的该联盟的信息素总量。

本发明提供的方法采用信息素全局更新策略和局部更新策略结合的方式,当收到用户请求时,采用局部信息素更新策略,根据当前web服务的内力,构造一个web服务联盟来分配、执行任务,以此来提高算法的准确度和执行效率。当完成用户需求时,使用全局信息素更新策略更新web服务的能力数据。这样,当下一个请求来的时候,就能够很快的形成web服务联盟来分配、执行任务,提高处理效率。

为了证明本发明提供的方法的可行性和优越性,首先,对基本蚁群算法和改进的蚁群算法web服务自动组合应用进行比较。分别对两个算法进行了50次的计算,求出算法的平均收敛时间进行对比,如图2a所示。

从图中可以看到,改进的蚁群算法由于采用全局信息素更新策略与局部信息素更新策略结合的方式,在web服务节点数增加时,收敛时间比基本的蚁群算法求解有明显的优势。基本的蚁群算法web服务组合应用会随着web服务节点数量的增加,收敛时间呈快速上升趋势,而改进的蚁群算法收敛时间呈线性上升趋势,其求解耗时更加合理。

然后,为了测试改进蚁群算法的web服务自动组合应用可靠性,同样采用与基本蚁群算法对比分析的方式。分别对两个算法进行了50次的计算,求出算法的平均可靠系数进行对比,如图2b所示。

从图中可以看出,基本蚁群算法的web服务自动组合应用可靠性是一种随机的状态,其可靠性与随机挑选的web服务节点高相关,表现较为平庸,无高可靠性表现。而基于改进蚁群算法的web服务自动组合方法由于考虑了web服务节点的可靠性并对其进行了加权分析,故得到的web服务组合结果可靠性高。

再者,为了验证本文提出算法的有效性,选择bpel4j工具包(ibm公司提供)的可视化编程工具来进行实验。图2c显示了在不同web服务规模大小的情况下,两种不同算法耗费的计算时间,即两种不同方法的web服务自动组合效率。

从以上结果可以看出,基于改进蚁群算法的web服务自动组合策略比ibm提供的bpel方法在效率上有了很大的提升,这证明了方法是可行、有效的。

综上,与现有的方法相比,本发明基于改进蚁群算法,提供的web服务组合方法具有分布式计算的特征,健壮性强,蚁群算法的优点能够与web服务组合相结合,在动态的web服务环境下也能体现出较好的灵活性和鲁棒性。

本发明将web服务组合的过程以网络图的形式进行抽象描述,基于改进蚁群算法寻找最优路径的思想来解决最优web服务组合问题,首先构建基于用户偏好的web服务组合框架,根据用户提出的需求,选取出若干个功能相似的web服务,从web服务的起始点出发,直到最后一个执行的web服务,同时针对传统蚁群算法的缺点,对距离启发因子、状态转移概率公式和信息素更新规则进行了改进,结合信息量阈值控制参数,提高了算法全局搜索能力、加快了收敛速度,并防止陷入局部最优解,从而计算出最佳服务组合的最优路径,这样,web服务自动组合问题就能够转化为蚁群算法求解。本发明主要面向开放互联网环境下提供大量web服务的应用领域,服务消费用户可按需更改服务选择结果,能够有效提高web服务在深度和广度上的应用,从而灵活的支撑上层应用业务,并屏蔽信息基础设施变化带来的影响。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

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