基于服务组合簇集的Web服务发现

2022-08-16 03:26:34宁玉辉赵淑芳
计算机工程与设计 2022年8期
关键词:个数定义算法

姚 喜,宁玉辉,赵淑芳,孙 磊

(1.山东省水利勘测设计院 勘测处,山东 济南 250013;2.山东省人防指挥保障中心 应急保障科, 山东 济南 250014;3.山东协和学院 计算机学院,山东 济南 250107)

0 引 言

随着信息技术的不断发展,Web服务种类与数量不断增多。这一方面提高了Web服务满足用户需求的能力;另一方面也增大了服务发现和服务组合的计算难度,对服务查准率和服务计算效率带来了一定影响[1]。

为了提高服务发现效率,服务池、服务簇[2]和服务社区[3]等概念被提出。其思想为缩小服务发现基数,但因Web服务数量不断增多,单一依靠服务聚类显然不能有效满足用户需求。为了提高服务发现精度,基于Qos的服务发现方法被提出[4,5]。因Web服务Qos属性组成较为复杂,且Qos中的属性赋值缺少统一标准,影响了技术应用效果。文献[6]在进行服务发现时,将“语义”引入到Web服务发现中,定义了服务本体、构建了本体词汇树;进而基于输入输出参数的相似度比较,发现与用户需求匹配度最优的Web服务。因服务本体较为抽象,其形式化定义还需要进一步清晰化。文献[7]利用Petri网对Web服务进行形式化建模,将Web服务的输入、输出参数形式化为Petri网的输入库所和输出库所,统一了Web输入、输出接口。此类方法提高了服务查准率,但对于优化服务查找效率缺少考虑。另外,粒子群[8]、遗传算法[9]、神经网络[10]等智能寻优技术被引入,但也存在诸如粒子群算法在Web服务发现中容易陷入局部最优解等问题。

在上述背景下,本文提出了一种基于服务组合簇集的Web服务组合绑定方法。给出了Web服务、服务组合簇、五维坐标系、用户需求、用户满意度等概念的形式化定义,利用逻辑Petri网(LPN)[11]对Web服务进行了形式化描述,构建了面向Web服务集合的LPN模型,进而形成了服务组合库。在面向五维坐标系的Web服务坐标映射基础上构建了Web服务组合簇集合;在考虑Web服务最大并发数的基础上,面向多用户需求对基于服务组合簇集合的服务组合发现方法进行了阐述。最后,实验验证了本文技术的有效性及先进性。

1 构建Web服务组合簇集合

1.1 构建Web服务集合的逻辑Petri网模型

定义1 Web服务:五元组Wservice=(Identity,Inputs,Outputs,QoS,Com) 为一个Web服务,其中,

(1)Identity唯一标识了一个Web服务;

(2)Inputs={Input1,Input2,…,Inputj} 标识了Web服务的输入参数集;

(3)Outputs={Output1,Output2,…,Outputk} 标识了Web服务的输出参数集;

(4)QoS标识了此Web服务的服务质量,且0≤QoS≤1,规定此值越大则代表服务质量情况越优;

(5)Com标识了此Web服务的最大并发执行数,且1

假设一个Web服务集合由若干Web服务组成,对Web服务集合进行形式化建模,首先要对单个Web服务进行形式化建模,其方法如算法1所示。

算法1:Web服务的逻辑Petri网建模算法

输入:一个Web服务Wservicem=(Identity,Inputs,Outputs,Qos,Com)。

输出:Web服务的逻辑Petri网模型。

(1)新建一个逻辑Petri网LPNa=(P,T;F,fI,fO,M)。 假设Wservicem.Inputs={Input1,Input2,…,Inputi},Wservicem.Outputs={Output1,Output2,…,Outputj}, 在LPNa中新建一个变迁t∈TD,标记为Wservicem.Identity;令t的前置库所有i个,分别标记为Input1,Input2,…,Inputi, 后置库所有j个,分别标记为Output1,Output2,…,Outputj。

(2)遍历LPNa.P,假设当前元素为pi,若pi的标记为a,且a还被pj∈LPNa.P标记,且pj不等于pi,则在LPNa.P中删除pi,并将与库所pi相连的弧连接到库所pj上。令LPNa的初始标识LPNa.M0全部清零。

(3)输出逻辑Petri网LPNa。

算法1给出了Web服务的LPN模型构建方法,将Web服务的服务动作形式化为逻辑Petri的变迁触发动作,将Web服务的输入、输出参数分别映射为逻辑Petri网变迁的前置库所和后置库所。Web服务集合的LPN构建方法如算法2所示。

算法2:Web服务集合的逻辑Petri网建模算法

输入:Web服务集合Q。

输出:Web服务集的逻辑Petri网模型。

(1)新建一个逻辑Petri网LPNa=(P,T;F,fI,fO,M)。 假设Web服务集Q={Webservice1,Webservice2,…,Webservicem}, 则由算法1为Web服务集合中的全部Web服务构建LPN模型,假设得到LPN模型集合LPNs={LPN1,LPN2,…,LPNm}。

(2)将LPN集合中的m个Web服务形式化模型合并到LPNa中。首先,将LPNs中所有的变迁合并到LPNa.T中,即LPNa.T=LPNa.T∪LPN1.T∪LPN2.T∪…∪LPNm.T; 将LPNs中所有的库所、弧合并到LPNa,基本原理同上。

(3)遍历LPNa.P,假设当前元素为pi,若pi的标识为a,且a还被pj∈LPNa.P标识,且pj不等于pi,则在LPNa.P中删除pi,与pi相连的弧连接到pj上。令LPNa的初始标识LPNa.M0全部清零。

(4)输出逻辑Petri网LPNa。

算法2给出了Web服务集合的LPN模型构建方法,将Web服务集合中的元素分别进行LPN建模后,再将多个LPN模型的合并,进而生成Web服务集合的LPN模型。

1.2 构建Web服务组合库

定义2 服务组合库:两元组Scomlry=(C_LPNs,C_Relations) 为一个服务组合库,其中,

(1)C_LPNs为Web服务集的逻辑Petri网模型;

(2)C_Relations为一个有限集,标识了Web服务集的逻辑Petri网模型中的输入参数、输出参数、Web服务ID序列、Qos之间的关系;

(3)C_Relations中元素的格式定义为=。 其含义为:如果对于Web服务集的逻辑Petri网模型,服务输入参数为Inputa、Inputb、…、Inputc,则输出参数为Outputd、Outpute、…、Outputf,需触发的变迁序列为tg,th,…,ti, 此Web服务组合的服务质量值为Qos,为所调用Web服务平均服务质量,CID唯一标识此服务组合。

由定义2可知,服务组合库集成了面向Web服务集合的服务组合所有情况,并融入服务组合质量属性,其构建方法如算法3所示。

算法3:服务组合库构建算法

输入:Web服务集及其逻辑Petri网模型LPNi。

输出:服务组合库Scomlry。

(1)新建一个服务组合库Scomlry,令C_LPNs为LPNi。假设LPNi中所有变迁的前置库所集合为P={p1,p2,…,pj}, 令p1,p2,…,pj的组合情况有e种,分别为y1,y2,…,ye, 依次遍历e种组合情况。

(2)假设当前元素为yi,新建LPNi的初始标识M0,令M0(p)=1, 且p∈yi。 由逻辑Petri网的可达性动态分析方法[12],获取LPNi在初始标识M0下的所有可达标识及其变迁触发序列,假设可达标识集合为Ms={M1,M2,…,Mk}。

(3)遍历Ms,假设当前元素为Mj,新建C_Relations的一个元素item,由系统生成唯一的检索号并赋值给item.CID,令item的输入参数集为M0中标识为1的库所集合,令item的输出参数集为Mj中标识为1的库所集合,假设标识M0到Mj触发的变迁序列为tg,th,…,ti, 则由变迁标记得到Web服务的调用序列及其ID号,假设tg,th,…,ti所标记的Web服务的Qos值依次为Qosg,Qosh,…,Qosi, 则item.Qos的计算公式为

(1)

(4)输出服务组合库Scomlry。

算法3给出了服务组合库的构建方法,利用逻辑Petri网的可达性分析方法获取了服务组合簇集LPN模型的全部服务组合情况,并根据服务组合库的形式化结构对相关属性进行赋值。

1.3 构建Web服务组合簇集合

定义3 五维坐标系:五元组Zb={inputs,outputs,Noi,Noo,Qos} 为一个五维坐标系,其中inputs,outputs,Noi,Noo,Qos为5个坐标轴,各坐标轴的值均为实数。

算法4:服务组合在五维坐标系的映射算法

输入:服务组合库中的服务组合item,基准词汇Word。

输出:坐标值Zbi。

(1)新建一个五维坐标Zbi=, 假设item=。 若 (Inputa,Inputb,…,Inputc) 的元素个数为a,则令Zbi.Noi=a; 若 (Outputd,Outpute,…,Outputf) 的元素个数为b,则令Zbi.Noo=b; 令Zbi.Qos=Qosj。

(2)文献[9]给出了基于语义的词汇相似度计算公式

sim(a,b)=(dismax-dis(a-b))/(dismax-dismin)

(2)

其中,a,b为两个语义词汇,dis(a-b) 为两个语义词汇在本体词汇树中的语义距离,dismax为最大语义距离,dismin为最小语义距离。基于式(3)给出Zbi.inputs的计算公式

Zbi.inputs=dis(Inputa,Word)*wa+dis(Inputb,Word)*wb+…+dis(Inputc,Word)*wc

(3)

其中,Inputa,Inputb,…,Inputc为Web服务组合的输入参数,wa,wb,…,wc为权值,且wa+wb+…+wc=1。 基于式(3)给出Zbi.outputs的计算公式

Zbi.outputs=dis(Outputd,Word)*wd+dis(Outpute,Word)*we+…+dis(Outputf,Word)*wf

(4)

其中,Outputd,Outpute,…,Outputf为Web服务组合的输出参数,wd,we,…,wf为权值,且wd+we+…+wf=1。 由式(3)得到Zbi.inputs;由式(4)得到Zbi.outputs。

(3)将item.CID标记到Zbi,并输出五维坐标Zbi=

算法4给出了服务组合在五维坐标系中的映射算法,基于文献[9]定义的服务本体及其词汇树,将词汇语义距离应用到坐标值的计算中;通过计算服务组合输入参数、输出参数、输入参数个数、输出参数个数、服务组合质量的坐标值,达到服务组合的坐标映射效果。服务组合簇集的构建方法如算法5所述。

定义4 服务组合簇:八元组Wcluster=(Id,inputs,outputs,Noi,Noo,R,Qos,Zbs) 为一个服务组合簇,其中:

(1)Id唯一标识一个服务组合簇;

(2)inputs标识了服务组合输入参数的语义相对值;

(3)outputs标识了服务组合输出参数的语义相对值;

(4)Noi标识了服务组合输入参数个数;

(5)Noo标识了服务组合输出参数个数;

(6)R标识了服务组合簇的聚类半径;

(7)Qos标识了服务组合簇中服务组合服务质量的最小值;

(8)Zbs标识了服务组合簇中的服务组合五维坐标值集合。

算法5:服务组合簇集构建算法

输入:服务组合库Scomlry,聚类半径Rt,服务组合质量阀值Qosmin。

输出:服务组合簇集合Wclusters。

(1)新建一个服务组合簇集合Wclusters=∅,新建一个坐标集合Q=∅,遍历服务组合簇集合Wclusters中C_Relations的各个元素,假设当前元素为item。由算法4将服务组合item映射在五维坐标系中,得到坐标 , 并放入集合Q中。

(2)遍历集合Q中的坐标元素,假设坐标元素中Noi的最大值为Inmax,最小值为Inmin;Noo的最大值为Outmax,最小值为Outmin。inputs的最大值为Inputsmax,最小值为inputsmin;outputs的最大值为Ouputstmax,最小值为Outputsmin。Fori=InmintoInmax,j=OutmintoOutmax,k=inputsmintoInputsmax,h=OutputsmintoOuputstmaxdo,设定k、h的步长均为Rt,新建服务组合簇Wcluster=(Id,inputs,outputs,Noi,Noo,R,Qos,Zbs), 系统生成唯一的检索号赋值给Wcluster.Id,令Wcluster.inputs=k,Wcluster.outputs=h,Wcluster.Noi=i,Wcluster.Noo=j,Wcluster.Qos=Qosmin,Wcluster.R=Rt。

(3)遍历集合Q中的坐标元素,假设当前元素为Zbi=, 若Zbi.Noi==Wcluster.Noi, 且Zbi.Noo==Wcluster.Noo, 且Qosmin≤Zbi.Qos, 且Wcluster.R≤|Zbi.Inputs-Wcluster.inputs|, 且Wcluster.R≤|Zbi.outputs-Wcluster.outputs|, 则将Zbi放入Wcluster.Zbs中。

(4)将服务组合簇Wcluster放入服务组合簇集合Wclusters中。令Wcluster.Qos=0; 遍历Wcluster,若当前元素为Zbi,由Zbi标记的服务组合ID获取对应的服务组合Qos值K,若K

(5)输出服务组合簇集合Wclusters。

算法5给出了服务组合簇集的构建方法,首先将服务组合库中的所有元素映射到五维坐标系中,然后根据服务组合坐标的分布情况,将坐标按照空间位置聚合成簇。由算法5可知,相同簇中的服务组合,其输入参数个数相同、输出参数个数相同、服务组合的Qos值均大于同一阀值,且输入参数集合的语义距离在同一阀值范围内,输出参数集合的语义距离也在同一阀值范围内。

2 多用户Web服务组合发现

定义5 用户需求:四元组Udemand=(Id,Uinputs,Uoutputs,Qos) 为一个用户需求,其中:

(1)Id唯一标识一个用户需求;

(2)Uinputs={Input1,Input2,…,Inputj}标识用户需求输入参数的一个有限集合;

(3)Uoutputs={Output1,Output2,…,Outputk} 标识用户需求输出参数的一个有限集合;

(4)Qos标识用户对服务组合服务质量的要求,且0≤QoS≤1。规定此值越大则代表服务质量情况越优;

(5)用户需求的输入、输出参数概念范围与Web服务的输入、输出参数概念范围相一致。

定义5给出了用户需求的形式化定义,由定义5可知,本文将Web服务形式化为输入参数、输出参数和服务组合质量,下面对用户需求的满足规则进行定义,并给出用户需求的可满足定理。

定义6 用户需求的满足规则:给定Web服务集合Q及用户需求Udemand=(Id,Uinputs,Uoutputs,Qos)。 如果用户需求Udemand的输出参数Uoutputs,能够根据用户需求的Uinputs,通过调用Web服务集合Q中的Web服务得到,且调用的Web服务Qos的平均值大于等于Udemand.Qos。则用户需求Udemand对于Web服务集合Q是可满足的。

定义7 运算符“⊗”:令LPNm为一个Web服务集的逻辑Petri网模型,假设P={p1,p2,…,pm} 为其库所集,且M∈R(M0)。Q为LPNm.P的一个库所集合。运算符“⊗”的规则为:M⊗Q=M,其中,对于j∈{1,2,…,m}

(5)

定理1 用户需求的可满足定理:Udemandi=(Id,Uinputs,Uoutputs,Qos) 为一个用户需求。LPNj为给定Web服务集合Q的逻辑Petri网模型,且Ma∈R(M0), 其中M0为LPNj的初始标识。用户需求Udemandi在Web服务集合Q下是可满足的,当且仅当:

(1) (M0⊗Uinputs)[t1t2…ti>(Ma⊗Uoutputs);

(2)变迁t1t2…ti标记的Web服务Qos值和的平均值大于等于Udemand.Qos;

(3)变迁t1t2…ti标记的Web服务在用户调用时其并发数小于最大并发数。

证明:[必要性]由定义5可知,Udemandi.Uinputs、Udemandi.Uoutputs属于LPNj的库所集中的元素。由定义7可知,Ma⊗Uinputs得到一个LPNj的标识,此标识蕴含了用户需求Udemandi的输入参数信息。M0⊗Uoutputs得到一个LPNj的标识,此标识蕴含了用户需求Udemandi的输出参数信息。因为用户需求Udemandi在Web服务集合Q下是可满足的。由定义6可知,用户需求Udemand的输出参数Uoutputs,能够由用户需求的输入参数,并通过调用Web服务集合Q中的Web服务得到。则对于逻辑Petri网LPNj,标识M0⊗Uoutputs能够从标识Ma⊗Uinputs到达,即 (M0⊗Uinputs)[t1t2…ti>(Ma⊗Uoutputs)。 因Web服务能够被调用,所以Web服务在用户调用时其并发数小于最大并发数。因满足用户需求,故由定义2可知,所调用的Web服务Qos值和的平均值大于等于Udemand.Qos。

[充分性]因为 (M0⊗Uinputs)[t1t2…ti>(Ma⊗Uoutputs), 即 (Ma⊗Uoutputs)∈R(M0⊗Uinputs), 则对于逻辑Petri网LPNj,标识M0⊗Uoutputs能够从标识Ma⊗Uinputs到达。因变迁t1t2…ti标记的Web服务在用户调用时其并发数小于最大并发数,故服务均可被调用。因变迁t1t2…ti标记的Web服务Qos值和的平均值大于等于Udemand.Qos,故满足用户对于服务质量的要求。由定义7可知,Ma⊗Uinputs得到一个LPNj的标识,此标识蕴含了用户需求Udemandi的输入参数信息。M0⊗Uoutputs得到一个LPNj的标识,此标识蕴含了用户需求Udemandi的输出参数信息。则用户需求Udemand的输出参数Uoutputs,能够由用户需求的输入参数Uinputs,并通过调用Web服务集合Q中的Web服务得到。由定义6,用户需求Udemandi在Web服务集合Q下是可满足的。[证毕]

定义8 用户满意度:百分数变量Percent为用户满意度。其赋值规则为:给定一个用户需求Udemandi=(Id,Uinputs,Uoutputs,Qos), 假设其在五维坐标系中的坐标值为Zbi=; 通过服务组合发现得到的服务组合item的五维坐标值为Zbj=, 且调用的Web服务所构成的集合为Q,则Percent的计算公式为

(6)

定理1给出了用户需求的可满足定理,明确了满足用户需求的相关条件,定义8给出了用户满意度的计算方法,为面向多用户的服务组合发现寻优提供了评价参考。

算法6:用户需求在五维坐标系的映射算法

输入:用户需求Udemand,基准词汇Word。

输出:坐标值Zbi。

(1)新建一个五维坐标Zbi=, 假设Udemand=(Id,Uinputs,Uoutputs,Qos)=(UID,(Inputa,Inputb,…,Inputc), (Outputd,Outpute,…,Outputf),Qosj)。 若 (Inputa,Inputb,…,Inputc) 的元素个数为a,则令Zbi.Noi=a; 若 (Outputd,Outpute,…,Outputf) 的元素个数为b,则令Zbi.Noo=b; 令Zbi.Qos=Qosj。

(2)由式(3)得到Zbi.inputs;由式(4)得到Zbi.outputs。

(3)将UID标记到Zbi,并输出五维坐标Zbi=

定义9 坐标点的簇内相似度:在服务组合簇中存在两个坐标点Zbj,Zbi, 假设由Zbi标记的服务组合ID对应的服务组合为 , 由Zbj标记的服务组合ID对应的服务组合为 两个坐标点的簇内相似度计算公式为

(7)

由定义1可知,本文将Web服务调用最大并发数引入系统中,则在进行面向多用户的Web服务组合绑定时在同一时刻,系统中可能会出现一个具有相同优先级的用户需求集合,同一个Web服务可能会同时被不同的用户所调用,且一个Web服务的调用并发数可能会达到上线。

算法7:多用户服务组合绑定算法

输入:用户需求集合Udemands,Web服务集合Q,并发数阀值S。

输出:服务组合绑定集合。

(1)Web服务集合Q的动态调整。若∃Ws∈Q, 且S≤(Ws.Com-Value), 则在Q中删除Ws,Value为Ws当前服务并发数。由算法5构建服务组合簇集合Wclusters。

(2)新建服务组合绑定集合Binds=∅,遍历用户需求集合Udemands,假设当前元素为Udemand,由算法6将用户需求Udemand映射到五维坐标系中,并获取坐标Zbi=

(3)遍历服务组合簇集合Wclusters,假设当前元素为服务组合簇Wcluster=(Id,inputs,outputs,Noi,Noo,R,Qos,Zbs), 若Zbi.Noi==Wcluster.Noi, 且Zbi.Noo==Wcluster.Noo, 且Wcluster.R≤|Zbi.Inputs-Wcluster.inputs|, 且Wcluster.R≤|Zbi.outputs-Wcluster.outputs|, 则锁定服务组合簇Wcluster。

(4)新建一个变量flag=0;遍历Wcluster.Zbs,假设当前元素为Zbj=, 若Zbi.Qos≤Zbj.Qos, 则由定义9计算坐标Zbi与坐标Zbj的簇内相似度H(Zbj,Zbi), 若flag

(5)假设flag标记的坐标为Zbi,将Zbi标记的服务组合放入集合Binds中,并由系统向用户反馈服务组合信息。

(6)输出Binds。

3 仿真实验

3.1 搭建实验仿真平台

实验硬件环境为i7-6500U CPU @ 2.50 GHZ 2.50 GHZ,8.0 GB内存。仿真平台运行页面的设计如下所述。在VS 2010中建立C#的项目,进行Winform桌面控件的选择及布局。仿真平台页面如图1所示。

图1 实验平台页面

软件代码的编写与按钮功能实现如下所述。

(1)生成Web服务功能。首先在Web服务个数输入框内输入需生成的Web服务个数,当点击生成Web服务按钮时触发生成Web服务程序。生成Web服务编程的基本思想是:首先按照本文定义1的结构定义Web服务类,输入、输出集定义为链表类型,同步在SQL数据库中构建Web服务数据表,表的属性结构与Web服务类中的参数一致。程序循环次数是需生成的Web服务个数,对于程序的每一次循环都要生成一个Web服务。ID号、Qos、Com随机生成,Web服务的输入、输出参数集的生成思想是:字母“a”到字母“z”的ASSIC码区间为97至122。程序中利用Random.Next(1,100)函数随机确定将要构建的参数集中的参数个数;利用Random.Next(1,50)函数随机确定某个参数的长度;利用Random.Next(97,123)函数随机确定某个参数的组成元素,将组成元素的ASSIC码值的和定为词汇语义值;生成Web服务结束后利用MessageBox.Show()函数弹出提示框。

(2)生成用户需求功能。首先在用户需求个数文本框内输入需生成的用户需求个数。当点击生成用户需求按钮时触发生成用户需求程序。用户需求的生成思想与Web服务的生成思想相似。

(3)按照本文技术路线实现多用户服务组合发现按钮功能,按照算法2、算法3和算法5构建服务集合的LNP模型、服务组合库及服务组合簇集,按照算法7进行服务组合发现。按照文献[13-15]的技术路线分别实现基于服务簇、服务组合簇头、相似度的服务发现按钮功能。

服务发现效率计算的思想是:在点击相应的服务查找按钮后,利用System.Diagnostics.Stopwatch类中的start方法开始计时;当服务发现结束后,利用Stopwatch类中的stop方法结束计时;然后,读取Stopwatch类中的ElapsedMilliseconds属性值获取服务查找运行的总时间。服务发现精确度按照本文定义8给出的用户满意度进行计算,并通过在程序中设置断点、提示框输出等方式对生成的Web服务、用户需求、服务组合库、服务组合簇集、服务组合发现效果等进行复核。

3.2 实验比较及分析

实验1:在Web服务总数不变,用户需求个数变化的情况下进行Web服务组合查找实验及比较。首先生成两万个Web服务,用户需求个数依次为一至八百个。每次输入用户需求个数后,点击生成用户需求按钮生成用户需求,再点击4个服务发现按钮对方法性能进行获取。实验一的效率统计结果如图2所示,精度统计结果如图3所示。

图2 实验一效率结果

图3 实验一精度结果

从图2可知,在服务总数不变时,随着用户需求个数的增多,基于4种方法的服务查找时间都增多。对4种方法实验结果进行比较可知,本文所述方法的效率较优,并且随着用户需求个数的增多,本文所述方法的优越性越明显。

从图3可知,在服务总数不变时,随着用户需求个数的增多,基于4种方法的服务查找精确度变化幅度较小。对4种方法实验结果进行比较可知,本文所述方法的精度较优。

实验2:在用户需求个数不变,Web服务总数变化的情况下进行Web服务查找实验及比较。固定生成用户需求为300个,生成Web服务个数依次为1~8万个。实验二效率结果如图4所示,精度结果如图5所示。

图4 实验二效率结果

图5 实验二精度结果

从图4可知,在用户需求个数不变,Web服务总数变化的情况下,随着服务个数的增多,基于4种方法的服务查找时间不断变大,服务查找效率不断降低。对4种方法实验结果进行比较可知,本文所述方法的服务组合发现效率较优。

从图5可知,在用户需求个数不变,Web服务总数变化的情况下,随着服务个数的增多,基于4种方法的服务查找精确度有增大趋势。对4种方法实验结果进行比较可知,本文所述方法的精度较优。

理论分析:本文所述方法在效率上的理论优越性体现在:①本文利用逻辑Petri网的可达性分析方法获取了面向服务集合的全部服务组合,依据聚类半径构建了结构化的服务组合簇集合,从服务集合整体角度优化了服务发现的基数。②本文构建了五维坐标系,将服务组合及用户需求映射为坐标数据,为服务发现进行充分的数据预处理。并利用计算坐标距离的方法实现服务组合发现,简化了服务组合发现环节。

本文所述方法在精度上的理论优越性体现在:①本文对服务组合的服务质量计算方法进行了形式化定义,服务组合绑定中,对服务组合的输入、输出参数进行了基于语义的全匹配,并考虑了服务质量,优化了服务查准率。②本文从多用户需求角度出发,在进行服务组合发现时考虑了服务最大并发数,并动态更新了Web服务集合,降低了用户服务组合调用失败的几率,增大了用户满意度。③本文所述方法是基于服务组合簇集的。服务组合簇集覆盖了服务集合内输入、输出组合关系,罗列了所有输入、输出可能的对应情况,并且明确了从某一输入到某一输出的服务调用序列。用户需求在服务组合簇集中进行服务查找,可最大程度找到满足用户需求的服务组合。

4 结束语

为优化服务发现效率及精度,本文提出了一种基于服务组合簇集的多用户Web服务组合绑定方法。构建了服务集合的LPN模型及服务组合库,并将服务组合映射到五维坐标系中;利用基于语义的词汇距离计算方法构建服务组合簇集合。最后,考虑Web服务的最大并发数,并利用语义相似度计算方法,在Web服务组合簇集合中动态发现了满足用户需求的服务组合。实验验证了本文方法在优化服务组合发现性能上具有优越性。下一步将对基于WSDL的Web服务描述特征提取进行研究。

猜你喜欢
个数定义算法
怎样数出小正方体的个数
等腰三角形个数探索
基于MapReduce的改进Eclat算法
怎样数出小木块的个数
Travellng thg World Full—time for Rree
进位加法的两种算法
怎样数出小正方体的个数
一种改进的整周模糊度去相关算法
成功的定义
山东青年(2016年1期)2016-02-28 14:25:25
修辞学的重大定义
当代修辞学(2014年3期)2014-01-21 02:30:44