欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018109391973
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种面向需求自适应的Web服务动态演化方法,其特征在于,所述方法包括以下步骤:

第一步、计算领域本体中两个概念A和B之间的语义相似度,过程如下:功能相似性度量考虑服务间输入和输出的领域本体概念,输入及输出之间的匹配指与输入及输出相关的概念的匹配,为了计算两个概念A和B的相似性,需要考虑领域本体中两个概念之间的关系;

第二步、结合第一步的概念相似度计算方法,给出服务S1与服务S2输入相似度Siminput的计算方法;

第三步、结合第一步的概念相似度计算方法,给出服务S1与服务S2输出相似度Simoutput的计算方法;

第四步、结合第二步与第三步求得的服务输入相似度Siminput与服务输出相似度SimOutput计算服务S1与服务S2的功能相似性FunctionalSim(S1,S2),计算公式如下:FunctionalSim(S1,S2)=w1×Siminput+w2×SimOutput,其中权重w1和w2是0和1之间的实数值并且总和为1,它们表示服务消费者对输入相似性和输出相似性认定的重要性;

第五步、结合第四步的服务功能相似性度量方式给出服务聚类算法,首先任意选择一个未分配的核心对象作为种子,然后寻找该核心对象所有密度可达的样本集合,形成一个聚簇;接着继续选择另一个未分配的核心对象去寻找密度可达的样本集合,得到另一个聚簇,直到所有核心对象被分配完毕;搜索半径Eps由公式 确定,其中n表示服务的维度大小,即所有服务的平均属性个数,k表示形成聚簇所需的最少服务数量,r表示由n维服务组成的超球面半径,m则是这个超球面包含的n维服务数量;而最小数量MinPts遵循经验启发式:MinPts=round(m/25),其中round是取整函数,m是样本集中的样本数量;

第六步、根据第五步的聚类结果,得到每个聚簇的中心服务,聚簇中心服务能够代表所在聚类服务的典型特征;

第七步、系统的服务匹配过程需要分别计算RCT节点需求描述与每个聚簇中心服务描述之间的功能相似度,其中RCT节点是RCT模型的组成单元,被描述为完成当前Web子任务所需要的Web服务,iStar框架在策略依赖模型中定义四种依赖关系,分别是:目标依赖,表示一个角色依赖另一个角色来完成某一个目标;资源依赖,表示一个角色依赖另一个角色为它提供物理资源和信息;任务依赖,表示一个角色依赖另一个角色来完成某个任务;非功能需求有关的软目标依赖,类似于目标依赖;扩展了iStar的角色、目标、任务和资源的原子概念,以支持用户需求、Web任务、服务以及服务序列之间的映射关系和相关描述规范,RCT模型将以OWL‑S格式文件进行实例化,从而保证服务匹配过程的正常执行;在RCT模型中,使用椭圆形表示用户需求,即RCT需求节点,使用六边形表示Web子任务,六边形节点左上方的井号来表示Web子任务的序号,使用圆形表示服务,使用矩形表示信息资源;

由于OWL‑S是为描述Web服务而设计的语言,适用于描述服务的需求,因此RCT节点需求同样采用OWL‑S进行描述,第四步的功能相似性度量方法同样适用于RCT节点与聚簇中心服务的相似度计算,计算得到功能相似度最大的簇中心服务所在聚类,该聚类中的服务为可满足当前用户需求的候选服务CandidateService;

第八步、根据用户请求中的QoS阈值对候选服务集CandidateServices进行筛选,过滤掉不符合用户要求的服务,服务消费者在服务请求中指定QoS阈值,表示拒绝QoS低于或高于该阈值的Web服务;

基于本体的OWL‑S扩展,即将非功能性描述QoS添加到Web服务描述中;OWL‑S全称为Ontology Web Language for Services,它是基于OWL的Web服务本体描述语言,使用一整套描述机制来对Web服务进行语义描述,并且生成的描述文件能够被计算机理解并处理;

OWL‑S包括三个基本组件:

(1)Service Profile描述服务做什么,基本属性包括服务名称serviceName、文本描述textDescription;功能属性则包括输入信息hasInput、输出信息hasOutput、前提条件hasPrecondition和预期效果hasEffect四个部分;

(2)Service Model描述服务如何工作,OWL‑S把每一个服务看作一个过程Process,并将其分为三类:原子过程Atomic Process、简单过程Simple Process和组合过程Composite Process;原子过程没有子过程,可以直接调用;简单过程不能直接调用,也没有对应的Service Grounding说明文件;组合过程由多个子过程通过一定的控制结构组合而成,在OWL‑S中,每一个过程本体,均可通过IOPE来进行语义描述;

(3)Service Grounding描述服务的调用信息,OWL‑S利用WSDL作为Service Grounding机制的基础,定义特定的消息格式,将输入信息、输出信息、服务地址封装起来;

基于Web服务描述语言OWL‑S,构造基于本体的OWL‑S扩展语义服务描述模型;

采用四元组来表示语义服务描述:WS=,其中:N代表服务的名称Name,D代表服务的文本描述Description,两者构成服务的基本属性;

服务的功能属性包括I和O,分别表示服务WS的输入Input和输出Outpu接口参数的属性,每个接口都是一组参数集合,I={i1,…,im},元素i1,…,im代表领域本体中服务WS的输入参数所对应的语义概念;O是服务的输出集合,O={o1,…,on},元素o1,…,on代表领域本体中服务WS的输出参数所对应的语义概念;

在OWL‑S Service Profile中,使用一组服务参数ServiceParameter,包含名称serviceParameterName和参数值sParameter,将OWL‑S和QoS本体连接后,QoSProperty成为OWL‑S ServiceParameter的子类,qosPropertyName和qProperty分别为OWL‑S serviceParameterName和sParameter属性的子属性;

每个QoS属性QoSProperty是由字符串形式的名称qosPropertyName和一组特征QoSCharacterisitic来定义的,描述如下:Value:代表QoS属性的值,对于服务提供者,它代表所提供服务的一种QoS属性;但对于服务消费者,它表示QoS属性的阈值;

Type:该特征用于区分两种类型的QoS:收益型benefit,在这种情况下,用户指定的QoS属性值表示要考虑的最小值;

成本型cost,在这种情况下,用户指定的QoS属性值表示要考虑的最大值;Unit:QoS属性的度量单位;

Weight:QoS权重,用于指定QoS属性的重要性;

Confidence:表示用户对其偏好的置信度;

第九步、对经过第八步过滤后的候选服务集CandidateServices进行服务综合评分及排名,分数最高的服务就是最佳服务;但是在进行服务评分之前,需要先对用户确定的QoS权重进行一致性验证,若所得的一致性比率CR小于0.1,则进行评分及排名步骤,否则反馈QoS权重需用户重新修订的结果,计算结束。

2.如权利要求1所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述第一步中,计算领域本体中两个概念A和B之间的语义相似度的步骤如下:步骤(1.1)若概念A和B是相同的或者它们被声明为equivalent classes,则概念A,B的相似度Simconcept为1,否则进行步骤(1.2);

步骤(1.2)若概念A直接或间接为概念B的一个子类,则概念A,B的相似度Simconcept计算公式如下:

其中prop(A)与prop(B)分别表示概念A与概念B的属性集合,Size(prop(B))与Size(prop(A))分别表示概念B和概念A的属性个数,否则进行步骤(1.3)步骤(1.3)若概念B直接或间接为概念A的一个子类,则概念A,B的相似度Simconcept计算公式如下:

否则进行步骤(1.4);

步骤(1.4)若概念A与概念B没有父子关系,但两个概念直接或间接有一个共同的父类概念C,则采用基于朴素贝叶斯模型的单词语义相似度度量方法,首先分别遍历概念A与概念B的各个属性,通过ComputeFeature函数对概念A与概念B的属性名称进行特征提取,然后采用样本训练后的条件概率分布列和调整因子,计算概念属性之间的相似度Simword,根据概念属性之间的相似度Simword与相似判定因子η的比较,判断两个属性是否为同一属性并进行统计,最后计算出概念A,B的相似度Simconcept;

步骤(1.5)若概念A和概念B的关系在上述情况中均不符合,则概念A,B的相似度Simconcept设为0。

3.如权利要求2所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述步骤(1.4)的过程如下:

步骤(1.4.1)设变量i表示概念A与概念B中属性相同的个数并置初始值为0,进行步骤(1.4.2);

步骤(1.4.2)若概念A的属性集合prop(A)遍历完成,则进行步骤(1.4.7),否则从prop(A)取出下一个prop(A)j并将其从prop(A)中移除,进行步骤(1.4.3);

步骤(1.4.3)若概念B的属性集合prop(B)遍历完成,则返回步骤(1.4.2),否则从prop(B)取出下一个prop(B)k并将其从prop(B)中移除,进行步骤(1.4.4);

步骤(1.4.4)基于朴素贝叶斯模型,结合WorkNet英语词典,通过ComputeFeature函数对prop(A)j与prop(B)k的属性名称进行特征提取进而得出L(prop(A)j,prop(B)k)和D(prop(A)j,prop(B)k),其过程如下:计算每个属性名称的单词语义,由于每个单词对应一个或多个语义,那么每一单词对也就对应一个或多个语义对,将与单词对相应的所有语义对中距离最短的语义节点距离定义为该单词对距离L(prop(A)j,prop(B)k),并将语义节点距离最短的语义对深度定义为单词对深度D(prop(A)j,prop(B)k),已知属性名称prop(A)j存在于语义节点vj1,vj2,…,vjn的同义词组中,属性名称prop(B)k存在于语义节点vk1,vk2,…vkm的同义词组中,那么prop(A)j与prop(B)k的距离计算公式与深度计算公式如下:其中L(vja,vkb)表示语义节点vja与语义节点vkb的距离,D(vja,vkb)表示语义对(vja,vkb)的深度;

进一步,依据朴素贝叶斯模型的训练集生成均值函数LW(i)和DW(o),再利用均值函数LW(i)和DW(o)计算条件概率分布列P(L(prop(A)j,prop(B)k)|C)和P(D(prop(A)j,prop(B)k)|C),其中C为单词类别分类,其值域为{U,N},其中U代表“一致”,N代表“不一致”,最后计算调整因子α和β,计算公式如下:

之后转入步骤(1.4.5);

步骤(1.4.5)基于朴素贝叶斯模型,将本体概念属性的特征L(prop(A)j,prop(B)k)和D(prop(A)j,prop(B)k)注入到步骤(1.4.4)所得的条件概率分布列中,并依次提取条件概率V1=P(L(prop(A)j,prop(B)k)=i|C=U),V2=P(D(prop(A)j,prop(B)k)=o|C=U),V3=P(L(prop(A)j,prop(B)k)=i|C=N)与V4=P(D(prop(A)j,prop(B)k)=o|C=N),最后结合步骤(1.4.4)中的调整因子α和β来计算prop(A)j与prop(B)k之间的相似度Simword,计算公式如下:

Simword(prop(A)j,prop(B)k)=(αV1×V2)/(αV1×V2+βV3×V4),进行步骤(1.4.6);

步骤(1.4.6)若Simword大于或等于相似判定因子η,则prop(A)j与prop(B)k为同一属性并将变量i加1,返回步骤(1.4.2),否则返回步骤(1.4.3);

步骤(1.4.7)计算概念A,B的相似度Simconcept,计算公式如下:其中i表示概念A与概念B中属性相同的个数,prop(A)与prop(B)分别表示概念A与概念B的属性集合,Size(prop(B))与Size(prop(A))分别表示概念B和概念A的属性个数,进行步骤(1.5)。

4.如权利要求1~3之一所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述第二步中,服务S1与服务S2输入相似度Siminput的计算方法的过程如下:步骤(2.1)创建服务输入参数相似度最大匹配数组InSim并初始化,进行步骤(2.2);

步骤(2.2)将服务S1的输入参数数量减去服务S2的输入参数数量得到参数数量差值d,进行步骤(2.3);

步骤(2.3)若d小于或等于0,则将服务S1设为Sshort,服务S2设为Slong,否则将服务S2设为Sshort,服务S1设为Slong,进行步骤(2.4);

步骤(2.4)遍历Slong中的输入参数,若遍历完成,则进行步骤(2.8),否则从Slong中取出下一个输入参数longi,进行步骤(2.5);

步骤(2.5)遍历Sshort中的输入参数,若遍历完成,则返回步骤(2.4),否则从Sshort中取出下一个输入参数shortj,进行步骤(2.6);

步骤(2.6)根据第一步的概念相似度计算方法计算参数longi与参数shortj的相似度Simij,进行步骤(2.7);

步骤(2.7)将Simij与InSim[i]进行比较,若Simij大于InSim[i],则将InSim[i]的值设为Simij的值,否则InSim[i]值为原值,返回步骤(2.5);

步骤(2.8)计算服务S1与服务S2输入相似度Siminput,计算公式如下:其中Size(Slong.Input)与Size(Sshort.Input)分别表示服务Slong的输入参数个数与服务Sshort的输入参数个数,|d|表示两个服务的输入参数数量差值,InSim为输入参数的相似度最大匹配数组。

5.如权利要求1~3之一所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述第三步中,服务S1与服务S2输出相似度Simoutput的计算方法的过程如下:步骤(3.1)创建服务输出参数相似度最大匹配数组OutSim并初始化,进行步骤(3.2);

步骤(3.2)将服务S1的输出参数数量减去服务S2的输出参数数量得到参数数量差值d,进行步骤(3.3);

步骤(3.3)若d小于或等于0,则将服务S1设为Sshort,服务S2设为Slong,否则将服务S2设为Sshort,服务S1设为Slong,进行步骤(3.4);

步骤(3.4)遍历Slong中的输出参数,若遍历完成,则进行步骤(3.8),否则从Slong中取出下一个输出参数longi,进行步骤(3.5);

步骤(3.5)遍历Sshort中的输出参数,若遍历完成,则返回步骤(3.4),否则从Sshort中取出下一个输出参数shortj,进行步骤(3.6);

步骤(3.6)根据第一步的概念相似度计算方法计算参数longi与参数shortj的相似度Simij,进行步骤(3.7);

步骤(3.7)将Simij与OutSim[i]进行比较,若Simij大于OutSim[i],则将OutSim[i]的值设为Simij的值,否则OutSim[i]值为原值,返回步骤(3.5);

步骤(3.8)计算服务S1与服务S2输出相似度SimOutput,计算公式如下:其中Size(Slong.Output)与Size(Sshort.Output)分别表示服务Slong的输出参数个数与服务Sshort的输出参数个数,|d|表示两个服务的输出参数数量差值,OutSim为输出参数的相似度最大匹配数组。

6.如权利要求1~3之一所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述第五步中,服务聚类算法的过程如下:步骤(5.1)初始化未访问样本集合为原始样本集T,簇集合C划分为空集,进行步骤(5.2);

步骤(5.2)遍历原始样本集T,若遍历完成,则结束,否则从T中取出下一个服务Si并将其从T中移除,进行步骤(5.3);

步骤(5.3)结合步骤四定义的服务功能相似性度量方式寻找服务Si的Eps邻域;

步骤(5.4)创建新聚类簇Ck,若Si的Eps邻域样本数不少于MinPts,则将Si加入到该簇中,进行步骤(5.5),否则返回步骤(5.2);

步骤(5.5)遍历服务Si的邻域集合NEps(Si),若遍历完成,则进行步骤(5.13),否则取出集合NEps(Si)中的下一个服务S’k,进行步骤(5.6);

步骤(5.6)创建服务S’k的邻域集合NEps(S’k),进行步骤(5.7);

步骤(5.7)若原始样本集T包含服务S’k,则将服务S’k从T中移除,进行步骤(5.8),否则返回步骤(5.5);

步骤(5.8)遍历原始样本集T,若遍历完成,则进行步骤(5.11),否则从T中取出下一个服务S’l,进行步骤(5.9);

步骤(5.9)采用步骤四定义的服务功能相似性度量方式来计算服务S’k与服务S’l的功能相似度FunctionalSim(S’k,S’l),进行步骤(5.10)步骤(5.10)若服务S’k与服务S’l的功能相似度FunctionalSim(S’k,S’l)小于或等于搜索半径Eps,则将服务S’l加入服务S’k的邻域集合NEps(S’k),返回步骤(5.8),否则直接返回步骤(5.8);

步骤(5.11)若服务S’k的Eps邻域样本数不少于MinPts,则将该邻域中的服务加入到服务Si的Eps邻域集合NEps(Si),进行步骤(5.12),否则返回步骤(5.5);

步骤(5.12)若簇集合C中不包含含有服务S’k的聚类簇,则将服务S’k加入步骤(5.4)创建的聚类簇Ck,返回步骤(5.5),否则直接返回步骤(5.5);

步骤(5.13)将聚类簇Ck加入簇集合C,返回步骤(5.2)。

7.如权利要求6所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述步骤(5.3)中,所述寻找服务Si的Eps邻域的步骤如下:步骤(5.3.1)创建服务Si的邻域集合NEps(Si),进行步骤(5.3.2);

步骤(5.3.2)遍历原始样本集T,若遍历完成,则进行步骤(5.4),否则从T中取出下一个服务Sj,进行步骤(5.3.3);

步骤(5.3.3)采用步骤四定义的功能相似度来计算服务Si与服务Sj的功能相似度FunctionalSim(Si,Sj),进行步骤(5.3.4);

步骤(5.3.4)若服务Si与服务Sj的功能相似度FunctionalSim(Si,Sj)小于或等于搜索半径Eps,则将服务Sj加入服务Si的邻域集合NEps(Si),返回步骤(5.3.2),否则直接返回步骤(5.3.2)。

8.如权利要求1~3之一所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述第六步中,聚簇中心服务的计算过程如下:步骤(6.1)创建列表Scenter,记录各聚簇中心服务,进行步骤(6.2);

步骤(6.2)遍历第五步所创建的簇集合C,若遍历完成,则结束,否则从簇集合C取出下一个聚类簇Ck,进行步骤(6.3);

步骤(6.3)创建变量In.num与Out.num对聚类簇Ck的所有输入参数与输出参数进行统计,并将两个变量的初始值设为0,创建聚簇中心服务Skcenter,进行步骤(6.4);

步骤(6.4)遍历聚类簇Ck中的每一个服务,若遍历完成,则进行步骤(6.6),否则取出下一个服务Sk,进行步骤(6.5);

步骤(6.5)统计服务Sk的输入参数个数Sk.Innum与输出参数个数Sk.outnum,并分别累加至In.num与Out.num中,返回步骤(6.4);

步骤(6.6)遍历聚类簇Ck中的每一个服务,若遍历完成,则将Skcenter加入列表Scenter并返回步骤(6.2),否则取出下一个服务Sk,进行步骤(6.7);

步骤(6.7)计算服务Sk的各输入参数占In.num的比率p1,若p1大于给定阈值 则认为该输入参数在当前聚类中具有较高的重要性,并将其加入到聚簇中心服务的输入参数列表Skcenter.Input,进行步骤(6.8);

步骤(6.8)计算服务Sk的各输出参数占Out.num的比率p2,若p2大于给定阈值 则认为该输出参数在当前聚类中具有较高的重要性,并将其加入到聚簇中心服务的输出参数列表Skcenter.Output,返回步骤(6.6)。

9.如权利要求1~3之一所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述第八步中,基于QoS阈值的服务过滤方法的步骤如下:步骤(8.1)遍历候选服务集CandidateServices中的服务,若遍历完成,则结束,否则从候选服务集CandidateServices中取出下一个服务Sc,进行步骤(8.2);

步骤(8.2)遍历服务Sc中的QoS属性,若遍历完成,则返回步骤(8.1),否则从服务Sc中取出下一个QoS属性QoSProperty,进行步骤(8.3);

步骤(8.3)若用户指定的QoS约束QoSConstraints中包含QoSProperty,则进行步骤(8.4),否则返回步骤(8.2);

步骤(8.4)判断QoS约束QoSConstraints对QoSProperty的置信度系数Confidence是否不为0,置信度系数表示用户对指定阈值consValue的置信度,这个系数的值应该在[0,1]范围内,1表示过滤算法必须严格遵守指定的阈值;0代表过滤算法必须忽略此阈值,若Confidence不为0,则进行步骤(8.5),否则返回步骤(8.2);

步骤(8.5)若QoSProperty的类型Type属于收益型benefit且QoSProperty的属性值Value小于Confidence与consValue的乘积,则进行步骤(8.6),否则若Type属于成本型cost且QoSProperty的属性值Value大于consValue除以Confidence的结果,也进行步骤(8.6),否则返回步骤(8.2);

步骤(8.6)将服务Sc从候选服务集CandidateServices中过滤移除,返回步骤(8.2)。

10.如权利要求1~3之一所述的面向需求自适应的Web服务动态演化方法,其特征在于,所述第九步的步骤如下:

步骤(9.1)对用户设定的QoS属性进行权重计算,这里结合层次分析法AHP的机制,构建一个成对比较的判断矩阵,其中每个元素通过预定义分数对其他每个元素进行评分,预定义分数为从1到9,表示它们的相对重要性;该1‑9的标度方法符合人们进行判断时的心理习惯,表1给出了相应的绝对数标度:

表1

QoS属性权重计算的步骤如下:

步骤(9.1.1)确定AHP方法要使用的指标,进行步骤(9.1.2);

步骤(9.1.2)建立基于用户偏好的n阶成对比较矩阵A[n][n],进行步骤(9.1.3);

步骤(9.1.3)基于成对比较矩阵A计算每个QoS属性的重要性权重,具体计算步骤如下:步骤(9.1.3.1)建立记录每个QoS属性的重要性权重的向量W[n]和临时向量M[n]与临时矩阵P[n][n],进行步骤(9.1.3.2);

步骤(9.1.3.2)设立临时变量j,并设初始值0,进行步骤(9.1.3.3);

步骤(9.1.3.3)若j小于n进行步骤(9.1.3.4),否则进行步骤(9.1.3.5);

步骤(9.1.3.4)将矩阵A第j列之和并赋给M[j],再将j加1的值赋给j,返回步骤(9.1.3.3);

步骤(9.1.3.5)设立临时变量k,l,并设初始值0,进行步骤(9.1.3.6);

步骤(9.1.3.6)若k小于n,则进行步骤(9.1.3.7),否则进行步骤(9.1.3.9);

步骤(9.1.3.7)若l小于n,则进行步骤(9.1.3.8),否则将k加1的值赋给k,返回步骤(9.1.3.6);

步骤(9.1.3.8)将A[l][k]除以M[k]所得的值赋给P[l][k],再将l加1的值赋给l,返回步骤(9.1.3.7);

步骤(9.1.3.9)设立临时变量m,并设初始值0,进行步骤(9.1.3.10);

步骤(9.1.3.10)若m小于n,则进行步骤(9.1.3.11),否则进行步骤(9.1.3.12);

步骤(9.1.3.11)将矩阵P的第m行之和赋给W[m],再将m加1的值赋给m,返回步骤(9.1.3.10);

步骤(9.1.3.12)设立临时变量i,并设初始值0,进行步骤(9.1.3.13);

步骤(9.1.3.13)若i小于n,则进行步骤(5.3.14),否则计算结束;

步骤(9.1.3.14)将W[i]除以n所得的值再重新赋给W[i],再将i加1的值赋给i,返回步骤(9.1.3.13);

步骤(9.2)根据步骤(9.1)构建的成对比较矩阵A和步骤(9.1)所得的权重向量W验证用户判断的一致性,在AHP方法中,如果相应的一致性比率CR小于0.1,则认为用户判断具有满意的一致性,否则需要主观进行修正,直到满足一致性要求,CR需将CI值除以平均随机一致性指标RI来获得,计算步骤如下:

步骤(9.2.1)建立临时向量M[n]与临时矩阵P[n][n],设立变量CI表示一致性指数,λmax表示向量M中值最大的元素,进行步骤(9.2.2);

步骤(9.2.2)设立临时变量i,j,并设初始值0,进行步骤(9.2.3);

步骤(9.2.3)若j小于n,则进行步骤(9.2.4),否则进行步骤(9.2.6);

步骤(9.2.4)若i小于n,则进行步骤(9.2.5),否则将i加1的值赋给i,再返回步骤(9.2.3);

步骤(9.2.5)将A[i][j]乘以W[j]所得的值赋给P[i][j],再将j加1的值赋给j,返回步骤(9.2.4);

步骤(9.2.6)设立临时变量k,并设初始值0,进行步骤(9.2.7);

步骤(9.2.7)若k小于n,则进行步骤(9.2.8),否则进行步骤(9.2.9);

步骤(9.2.8)将矩阵P的第k行之和赋给M[k],再将k加1的值赋给k,返回步骤(9.2.7);

步骤(9.2.9)设立临时变量l,并设初始值0,进行步骤(9.2.10);

步骤(9.2.10)若l小于n,则进行步骤(9.2.11),否则进行步骤(9.2.12);

步骤(9.2.11)将M[l]除以W[l]所得的值赋给M[l],再将l加1的值赋给l,返回步骤(9.2.10);

步骤(9.2.12)将向量M中值最大的元素赋给λmax,进行步骤(9.2.13);

步骤(9.2.13)根据公式CI=(λmax‑n)/(n‑1)计算出一致性指标,进行步骤(9.2.14);

步骤(9.2.14)将CI值除以相应的平均随机一致性指标RI来获得一致性比率CR,若CR小于0.1,则认为用户判断具有满意的一致性,否则认为用户判断不具有满意的一致性;

步骤(9.3)进行服务的综合评分及排名,步骤如下:步骤(9.3.1)若步骤(9.2)最终结果认为用户判断具有满意的一致性,则进行步骤(9.3.2),否则反馈QoS权重需用户重新修订的结果,计算结束;

步骤(9.3.2)建立服务综合得分的向量compScore[Services.size],QoS分数向量qosScore[Services.size]以及记录标准化QoS值的QoSMtx矩阵,其中Services.size表示候选服务集的服务数量,QoSMtx中的行表示候选Web服务,列表示QoS属性,进行步骤(9.3.3);

步骤(9.3.3)遍历候选服务集CandidateServices,若遍历完成,则进行步骤(9.3.8),否则取出候选服务集CandidateServices的下一个服务Si,进行步骤(9.3.4);

步骤(9.3.4)遍历服务Si的中的QoS属性集合Si.qosProperties,若遍历完成,则进行步骤(9.3.7),否则从Si.qosProperties中取出下一个属性Si.Pj,进行步骤(9.3.5);

步骤(9.3.5)由于每个QoS属性值的度量区间各不相同,需要将QoS值归一化,使得取值范围在0到1之间,以确保每个QoS属性采用相同的跨度来评估,因此需要计算QoS属性Si.Pj的归一化值nv(pij),并将此值赋给QoSMtx[i][j],具体计算步骤如下:步骤(9.3.5.1)若属性Si.Pj为收益型属性时,进行步骤(9.3.5.2),若属性Si.Pj为成本型属性时,则进行步骤(9.3.5.3);

步骤(9.3.5.2)nv(pij)的计算公式如下:其中,v(pij)表示服务Si在属性Si.Pj的原始取值,vmax(pj)表示候选服务集CandidateServices每个服务中与Si.Pj属于同一属性的最大值,vmin(pj)表示候选服务集CandidateServices每个服务中与Si.Pj属于同一属性的最小值,进行步骤(9.3.6);

步骤(9.3.5.3)nv(pij)的计算公式如下:进行步骤(9.3.6);

步骤(9.3.6)若属性Si.Pj满足用户定义的QoS约束QoSConstraints,则计算属性Si.Pj的QoS得分,qosScore[i]再对QoS得分进行累加记录,整个过程的计算公式如下所示:qosScore[i]+=(QoSMtx[i][j]×QoSConstraint[j].Weight)其中,QoSConstraint[j].Weight表示用户对属性Si.Pj定义的权重,返回步骤(9.3.4),否则直接返回步骤(9.3.4);

步骤(9.3.7)结合第四步的功能相似性计算方法求出当前RCT节点需求SRCT与服务Si的功能相似性FunctionalSim(Si,SRCT),再结合步骤(9.3.6)所得的QoS得分qosScore[i]对服务Si综合得分进行加权计算,并把最后结果赋给compScore[i],计算公式如下:compScore[i]=w1*FunctionalSim(Si,SRCT)+w2*qosScore[i]其中w1,w2并分别表示功能相似度权重与QoS评分权重,返回步骤(9.3.3);

步骤(9.3.8)对完成综合评分的服务进行排名,返回分数最高的服务,即最佳服务。