首页> 中国专利> 基于服务特性的服务合成系统及服务合成方法

基于服务特性的服务合成系统及服务合成方法

摘要

本发明公开了一种基于服务特性的服务合成系统,其包括:存储模块,用于存储路径表及合成向量表;初始化模块,通过对Web服务集合执行建模处理来初始化存储模块中的路径表和合成向量表;合成模块,用于根据方案选择规则根据方案选择规则从输入到输出的多条路径中选出一条路径作为最优路径,并使用所述最优路径更新存储模块中的路径表和合成向量表。相应地,本发明提供了一种基于服务特性的服务合成方法。根据本发明的技术方案,可以在较好的时间复杂度内进行用户满意的服务合成。

著录项

  • 公开/公告号CN101175090A

    专利类型发明专利

  • 公开/公告日2008-05-07

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;复旦大学;

    申请/专利号CN200710031552.9

  • 申请日2007-11-21

  • 分类号H04L29/08;H04L12/56;

  • 代理机构广州三环专利代理有限公司;

  • 代理人郝传鑫

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 20:06:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-01-19

    授权

    授权

  • 2008-07-02

    实质审查的生效

    实质审查的生效

  • 2008-05-07

    公开

    公开

说明书

技术领域

本发明涉及电子通信领域,尤其涉及一种基于服务特性的服务合成系统及服务合成方法。

背景技术

Web服务具有自包含、自描述和模块化的特点,可通过Internet进行发布和调用。它可以处理简单的请求,也可以通过将简单的Web服务组合在一起来执行复杂的业务过程。它具备的松散耦合以及平台无关的优良特性非常适合Internet环境下异构应用之间的互操作和集成。

随着Web服务提供者数量的增多,不可避免地会出现冗余现象,即不同的服务提供者开发了功能相同或类似的Web服务。这样,用户在使用Web服务或者在利用简单的Web服务创建复合Web服务的时候,通常都有多个候选Web服务。为了帮助用户实现Web服务的自动选取和合成,在满足用户功能需求的基础上,往往将服务质量(Quality of Service,QoS)作为区分和评价候选Web服务的标准。所述QoS是衡量合成方案的重要标准,在一定程度上反映了用户对合成方案的满意度。

Web服务的服务质量由多种服务质量属性(QoS Properties)构成,可以从性能、可靠性、可用性和安全性等多个方面来描述Web服务的非功能特性。

Web Service是一种部署在Web上的、自包含的、模块化的应用程序,它可以在网络中被描述、发布、查找以及调用。Web Services具有对象技术所承诺的所有优点;同时,Web Services的基石是以XML为主的、开放的Web规范技术,因此具有比任何现有的对象技术更好的开放性,是建立可互操作的分布式应用程序的新平台。

Web Services合成就是将多个自治的Web Services根据应用需要,通过服务查找以及服务之间的接口集成来提供新的、功能更强的Web Services,或者说提供一些value-added的Web Services。一个合成的Web Services是一些独立的、相互交互的Web Services的聚集,并把它所聚集的Web Services作为自己的组件来看待,从而获得比原先Web Services具有更新的功能。从“粒度”意义上讲,Web Services合成是对Web Services进行更大部分的封装并把该封装后作为一个Web Service暴露给外界;而从“顺序”意义上讲,合成是定义一系列Web Services的调用顺序。

目前服务质量与Web Services合成算法方面已取得了一些成果,但还没有比较好的算法将两者很好的结合起来。现有的一个质量驱动的Web Services合成方法,主要包括执行代价(price)、执行时间(duration)等衡量标准,在此基础上,提出了一个全局服务选择方法,但是没有具体给出求解合成方案的过程。另一些合成算法,可以在service代价只有单个属性的条件下在O(n3)的复杂度内求出代价最优的合成方案。但当service的代价是一个向量时,把它们之间的关系简单地理解为一个和,即Q(cs)=Σi=15wi·Qi,但实际情况更为复杂。Liu提出了一种动态合成方法,该方法首先对Web Services进行建模,然后采用合成算法动态生成合成方案。对应于用户要求的多个输出,这种方法为每一个输出进行一次合成方案的求解,得到对应于单个输出的所有方案。然后再对所得到方案做自然连接。自然连接是指假设用户要求的输出为{A,B,C},对应于A输出的合成方案是4个,B输出的合成方案是5个,C输出的合成方案是6个,根据该算法,对应用户输出的合成方案将有4×5×6=120个,它穷举了根据用户输入输出得出的所有方案,然后根据QoS方法找出一个QoS最优的方案反馈给用户。这里的结果是QoS最优的,但是由于需要进行穷举,整个过程的时间复杂度异常庞大,在实际中不利于实现。

发明内容

本发明实施例在于提供一种基于服务特性的服务合成系统及服务合成方法,可在较小的时间复杂度内自动地进行合成,得到用户偏好的最优合成方案。

为了实现上述效果,本发明实施例提出了一种基于服务特性的服务合成系统,其包括:

存储模块,用于存储路径表及合成向量表;

初始化模块,通过对Web服务集合进行建模处理(如:产生式建模、属性绑定建模)来初始化存储模块中的路径表和合成向量表;

合成模块,用于根据方案选择规则从输入到输出的多条路径中选出一条路径作为最优路径,并使用所述最优路径更新对存储模块中的路径表和合成向量。

相应地,本发明还提供了一种基于服务特性的服务合成方法,其特征在于,包括:

通过对Web服务集合进行建模(包括产生式建模或属性绑定建模)处理得到初始的路径表和合成向量表;

根据方案选择规则从输入到输出的多条路径中选出一条路径作为最优路径,并使用所述最优路径更新所述初始的路径表和合成向量表。

根据本发明实施例提出的一种基于服务质量的服务合成系统及服务合成方法,通过建模处理将Web服务的输入输出用路径模型表示,服务合成的过程就是路径更新过程,通过按照方案选择规则(用户对服务的各质量属性的偏好排序及区分度)选取路径,而不需要穷举所有合成方案,减小了时间复杂度,提高了系统工作效率。

附图说明

图1是本发明实施例的一种应用场景示意图;

图2是本发明实施例的一种服务合成系统的结构示意图;

图3是图2所述的初始化模块的结构示意图;

图4是图2所述的合成模块的结构示意图;

图5是本发明实施例的一种服务合成方法的流程图;

图6是图5所述方法的步骤S1的具体流程图;

图7是图5所述方法的步骤S2的具体流程图;

图8是图5所述方法的步骤S3的具体流程图;

图9是本发明提供的一具体实施例的网络结构图;

图10是对应于图9所示的网络结构图的路径示意图;

图11是本发明实施例中一种绑定建模的示意图。

具体实施方式

本发明实施例提出的一种基于服务特性的服务合成系统及服务合成方法,通过建模处理将Web服务的输入输出用路径模型表示,服务合成的过程就是路径更新过程,最后得到的最短路径,即为用户偏好的最优方案。

下面将结合附图,详细阐述本发明实施例提出的一种基于服务特性的服务合成系统及服务合成方法的技术方案。

参考图1,是本发明实施例的一种应用场景。

业务目录1存储了业务或服务的注册信息以及相应的描述信息,包括接口信息、Web服务之间的关联关系、QoS信息等;

QoS维度合成标准提供服务器3负责维护当前标准定义的通用的QoS权值计算逻辑;

服务合成系统2根据用户3提供的偏好排序及区分度、以及QoS维度合成标准提供服务器提供的权值计算逻辑将业务目录提供的多种服务进行合成,最后按照用户3提供的输入集及输出集的要求,向用户提供最短路径或最优QoS信息相应的方案。

其中,所述偏好排序是用户根据自身对多个QoS属性的偏好,从高到低的一个排序;

所述区分度是服务合成过程中,对于几条备选路径(路径对应于方案)进行比较时,针对具体的某个QoS属性,用户可以接受的性能差异的百分比。如:4条路径的执行代价(Price)分别为1.0,1.1,1.2,1.5时,用户区分度为15%,由于1.0是当前最好,其它3个(1.1,1.2,1.5)与1.0比较,只有1.1与1.0的差距没有超出15%,所以用户可以接受,进一步比较下一属性。

如图2所示,图1所述的服务合成系统2具体可以包括:

存储模块21,用于存储路径表及合成向量表;

初始化模块22,通过对Web服务集合进行建模处理(如:产生式建模、属性绑定建模)来初始化存储模块21中的路径表和合成向量表;

合成模块23,用于根据方案选择规则从相同的输入到相同的输出的多条路径中选出一条路径作为最优路径,并使用所述最优路径更新存储模块21中的路径表和合成向量表;

多服务处理模块24,用于对合成模块23更新得到的路径表和合成向量表进行多服务处理,最后获得最优路径表及最优合成向量表。

查询模块25,用于根据用户提供的输入集合及输出集合查询经过合成模块23及多服务处理模块24处理后的合成向量表和路径表,以获得与所述输入集合及输出集合对应的QoS代价向量最优的路径及向量值。

其中,所述产生式建模,是把一个Web服务表示为一个产生式,产生式的体部和头部分别表示Web服务的输入和输出,如:I->O,其中,I表示输入,O表示输出;即:产生式、可达路径、Web服务三者是一一对应的关系;

所述路径表,用来存储当前所求出的合成过程中各个输入到各个输出的最优代价向量所对应的路径信息,如表1所示:

表1

    {C}    {E}    {C,D}  {A,B}    {(1)}  {C,D}    {(2)}  {D}    {(3)}    {(3),(2)}    {(3)}  {A,B,D}    {(1)}    {(1),(2)}    {(1)}

表的纵向表示输入,如:{A,B}表示输入为A和B;横向表示输出,如:{C}表示输出为C;表格中的{(1)}表示有路径1可达,1表示路径号,表格中的空白表示对应的路径暂不可达;如:输入为A和B,输出为C有路径1可达,其对应的产生式:{A,B}->{C},同时一个可达路径也对应一种Web服务或一个合成方案。

所述合成向量表,用来存储当前所求出的合成过程中各个输入到各个输出的最优代价向量信息,如表2所示:

表2

             {C}             {E}            {C,D}{A,B}  (0.5,0.8,2.46,2.23,2){C,D}  0  (0.7,1.8.1.49,1.35,2.5)  0{D}  (1.5,2.5,.2.46,2.34,3)  (1.5,2.5,.2.46,2.34,3)  (1.5,2.5,.2.46,2.34,3){A,B,D}  (0.5,0.8,2,46,2.23,2)  (1.2,2.6,3.67,3.01,2.25)  (0.5,0.8,2,46,2.23,2)

表的纵向表示输入,如:{A,B}表示输入为A和B;横向表示输出,如:{C}表示输出为C,表格中的小括弧中的数据表示合成向量即为该合成方案的代价向量,如:(0.5,0.8,2,46,2.23,2)表示了{A,B}->{C}对应的合成方案的代价向量,表格中的0表示输入和输出相同,表格中的空白表示代价向量无穷大,即不存在可达路径。

其中,所述方案选择规则具体为:

获取用户对QoS属性的偏好排序,如:执行代价、执行时间、可靠性、可用性、名声。;

选取所述排序中的第一个属性,如:执行代价,;

判断两个方案的所述属性的差值是否超过区分度;

若所述判断结果为是,若所述判断结果为是,则根据两个方案的属性值,按照第一规则选取其中一个方案作为最优方案;

若所述判断结果为否,选取所述排序中的下一个属性(执行时间),返回判断两个方案的所述属性的差值是否超过区分度的步骤。

其中,所述第一规则是针对具体的QoS属性,预先设置的选取规则,具体地,选取较优的一个属性对应的方案。以上述的五个属性为例:

对于执行代代价,用户希望代价越小越好,所以,第一规则规定,选取该属性的权值较小的方案;

对于执行时间,用户希望处理时间越小越好,所以,第一规则规定,选取该属性的权值较小的方案;

对于可靠性,用户期望可靠性越大越好,所以,第一规则规定,选取该属性的权值较大的方案;

对于可用性,用户期望可用性越大越好,所以,第一规则规定,选取该属性的权值较大的方案;

对于名声,用户期望名声更好的方案,所以,第一规则规定,选取该属性的权值较大的方案。

在具体实施时,如图3所示,图2所述的初始化模块22包括:

服务集合单元221,用于存储Web服务集合以及该集合中各个Web服务的关系信息,所述关系信息至少包括各个Web服务之间的关联关系;

服务权值集合单元222,用于存储所述各个Web服务的QoS权值信息;

多标准评价单元223,用于根据服务权值集合单元222的QoS权值信息,通过采用质量向量的方法对服务集合单元221中的Web服务集合进行评价,并生成含有QoS向量的服务集合;

产生式建模单元224,用于将多标准评价单元223生成的含有QoS向量的服务集合进行产生式建模,生成建模表,如表3所示。

表3

      质量标准权值(Values of Quality Criteria)执行代价  执行时间  可靠性  可用性  名声A&B->C0.5  0.8  2.46  2.23  2C&D->E0.7  1.8  1.49  1.35  2.5D->C1.5  2.5  2.46  2.34  3

其中,“&”表示与的关系,纵向表示的产生式,横向表示每个产生式对应的各个质量标准的执行代价权值,即QoS权值。

合成初始化单元225,用于根据产生式建模单元223生成的建模表初始化所述存储模块21中的路径表和合成向量表。

在具体实施时,如图4所示,图2所述的合成模块23包括:

权值计算逻辑单元231,用于存储权值计算逻辑,该权值计算逻辑对应于对各个质量标准(或QoS属性)的计算方法,如:对于执行代价和执行时间:直接相加,对于可靠性和可用性:取其指数形式相乘,对于名声:加入当前路径的值后除于当前路径总数比较平均值等。

偏好排序及区分度单元232,用于存储各个服务质量标准或服务属性的偏好排序及区分度,所述偏好排序是用户设定对各个质量标准的偏好顺序;所述区分度用来表示用户可以接受的各个质量标准上的差别;

合成单元233,用于根据所述权值计算逻辑和偏好排序及区分度进行合成计算,更新所述存储模块中的路径表和合成向量表,获得完整的路径集合。

以上对本发明实施例的一种基于服务特性的服务合成系统进行了详细介绍,下面将结合图5、图6、图7和图8详细阐述本发明实施例提出的一种服务合成方法的技术方案。

参考图5,一种基于服务特性的服务合成方法包括:

步骤S1,通过对Web服务集合进行建模处理(如:产生式建模、属性绑定建模)得到初始的路径表和合成向量表;

步骤S2,根据方案选择规则从相同的输入到相同的输出的多条路径中选出一条路径作为最优路径,并使用所述最优路径更新所述初始的路径表和合成向量表。

当检测到存在多服务的情况,在步骤S2之后,还包括:

步骤S3,对通过代价向量更新得到的路径表和合成向量表进行多服务处理,获得最优路径表及最优合成向量表。

其中,以产生式建模为例,如图6所示,图5所述的步骤S1具体包括:

步骤S101,根据Web服务集合信息及QoS权值信息生成含有QoS向量的服务集合;

步骤S102,对所述含有QoS向量的服务集合进行产生式建模,生成建模表;

步骤S103,根据所述建模表生成初始的路径表和合成向量表。

如图7所示,图5所述的步骤S2具体为:针对所述合成向量表的每一行均执行一遍下述步骤:

S201,生成两个节点集合,即:已处理节点集合和未处理节点集合;

S202,初始化所述合成向量表的所有输出节点到未处理节点集合中;

S203,将所述合成向量表的当前处理行输入侧的输入节点加入到已处理节点集合;

S204,判断所述输入节点到未处理节点集合是否存在可达路径,如果是,则执行步骤S205,否则,直接将未处理节点集合中的节点加入到已处理节点集合,并清空未处理节点集合;

S205,按照方案选择规则从所述可达路径中选出第一路径,并将第一路径的输出节点加入到已处理节点集合,从未处理节点集合中删除所述第一路径的输出节点;

S206,判断所述第一路径的输出节点到未处理节点集合是否存在可达路径,如果是,则执行步骤S207;

S207,按照方案选择规则从所述可达路径中选出第二路径;

S208,将所述第一路径与第二路径合成为第三路径;

S209,判断输入节点到所述第三路径的输出节点是否存在可达路径,如果是,则执行步骤S210,否则,执行步骤S211;

S210,按照方案选择规则从所述可达路径和第三路径中选出第四路径,并用第四路径更新所述合成向量表和路径表;

S211,用所述第三路径更新所述合成向量表和路径表;

S212,判断未处理节点集合是否为空,如果否,则返回执行步骤S204:判断所述输入节点到未处理节点集合是否存在可达路径的步骤,否则,结束本步骤。

其中,在本发明实施例中所述的方案选择规则具体为:

获取用户对QoS属性的偏好排序,如:执行代价、执行时间、可靠性、可用性、名声。;

选取所述排序中的第一个属性,如:执行代价,;

判断两个方案的所述属性的差值是否超过区分度;

若所述判断结果为是,若所述判断结果为是,则根据两个方案的属性的权值,按照第一规则选取其中一个方案作为最优方案;

若所述判断结果为否,选取所述排序中的下一个属性(执行时间),返回判断两个方案的所述属性的差值是否超过区分度的步骤。

其中,所述第一规则为针对具体的QoS属性,选取较优的属性对应的方案。

如图8所示,图5所述的步骤S3具体为:针对所述合成向量表的每一行均执行一遍下述步骤:

S301,判断当前处理行的输入是否是一个集合,如果是则执行下一步骤;如:输入为{C,D}是一个集合;

S302,判断是否存在节点到所述集合形成可达路径,如果是,则执行下一步骤;如:存在A->C,B->D;

S303,将所述节点生成为输入集,所述集合生成为输出集,添加到所述合成向量表及路径表中;即:输入集为{A,B},输出集为{C,D};

S304,当所述输入集到其它节点存在可达路径时,针对每一个QoS属性,按照第二规则选取所述可达路径的属性中较优的属性更新所述输入集到所述节点的路径的QoS属性;

其中,所述第二规则是针对具体的QoS属性,预先设置的选取规则,具体地,选取较优的属性。以执行代价、执行时间、可靠性、可用性、名声的选取为例:

对于执行代代价,用户希望代价越小越好,所以,第二规则规定:选取权值较小的属性;

对于执行时间,用户希望处理时间越小越好,所以,第二规则规定,选取权值较小的属性;

对于可靠性,用户期望可靠性越大越好,所以,第二规则规定,选取权值较大的属性;

对于可用性,用户期望可用性越大越好,所以,第二规则规定,选取权值较大的属性;

对于名声,用户期望名声更好的方案,所以,第二规则规定,选取权值较大的属性。

如:存在{A,B}->X,则比较{A,B}->{C,D}->X,A->X,B->X,取各项属性最优值更新{A,B}->X;

S305,当其它节点到所述输出集存在可达路径时,针对每一个QoS属性,按照与第二规则相反的规则选取所述可达路径的属性中较差的属性更新所述节点到所述输出集的的路径的QoS属性;

其中,所述与第二规则相反的规则,即:与第二规则规定的选取方法相反,具体地,选取较差的属性。以执行代价、执行时间、可靠性、可用性、名声的选取为例,

对于执行代代价,用户希望代价越小越好,所述与第二规则相反的规则规定:选取权值较大的属性;

对于执行时间,用户希望处理时间越小越好,所述与第二规则相反的规则规定:选取权值较大的属性;

对于可靠性,用户期望可靠性越大越好,所述与第二规则相反的规则规定:选取权值较小的属性;

对于可用性,用户期望可用性越大越好,所述与第二规则相反的规则规定:选取权值较小的属性;

对于名声,用户期望名声更好的方案,所述与第一规则相反的规则规定:选取权值较小的属性。

如:存在X->{C,D},则比较X->C,X->D,取各项属性较差值更新X->{C,D}。

上述实施例对本发明提出的一种基于服务特性的服务合成系统及方法作了详细的阐述,为了使本领域的技术人员能进一步理解和使用本发明,下面结合图9和图10,具体阐述本发明实施例的技术方案。

在本实施例中,服务质量(QoS)的属性包括:执行代价(Price)、执行时间(Duration)、可靠性(Reliability)、可用性(Availability)和名声(Reputation),在实际中当然可以包括其它属性,如:安全性、容灾性等。

其QoS用向量表示为:

Q(cs)=(Qprice(cs),Qdu(cs),Qrel(cs),Qav(cs),Qrep(cs)

用户对QoS属性的偏好排序为:执行代价、执行时间、可靠性、可用性和名声,对这五个属性给出区分度分别为:10%、20%、30%、40%、50%。

图9是本实施例中一种Web服务网络结构图,其中,圆圈里的数字1、2、3、4、5、6、7表示7个Web服务,字母A、B、C、D、E、F表示各个服务的输入和输出,“∧”表示与的关系,“∨”表示或的关系,如:对于服务6:输入C和D,输出E。为了便于理解本发明实施例的技术方案,将图9转化为传统的路径图,如图10所示,圆圈里的字母表示输入节点或输出节点,边(图示的带箭头的直线)表示权值向量,边上的第一个数字为服务编号,两个字母(节点)之间如果存在边,则表示对应输入输出的服务。

本发明实施例的服务合成系统处理步骤如下:

步骤1,进行产生式建模:

根据图9中所有Web服务的关系信息以及权值信息生成含有QoS向量的服务集合(如图10所示,),根据图10所示的各个节点及向量关系进行产生式建模,即将存在边节点关系表示为:I->O形式,生成建模表,如表4所示:

表4

                  质量标准权值(Values of Quality Criteria)  执行代价  执行时间    可靠性    可用性    名声    A->C  0.5  0.8    0.5/1.65    0.8/2.23    2    A->D  0.85  1.0    0.4/1.49    0.3/1.35    2.5    A->F  1.5  1.0    0.9/2.46    0.85/2.3    4    3    B->D  0.6  1.5    0.9/2.46    0.85/2.3    4    3    C->F  0.3  2.0    0.6/1.82    0.4/1.49    2.5    C&D->E  0.8  2.0    0.4/1.49    0.5/1.65    2.5    F->E  1.2  2.5    0.8/2.23    0.9/2.46    2

步骤2,生成初始的合成向量表及路径表:

根据上述建模表生成初始的合成向量表,如表5所示,纵向为产生式的输入,横向为产生式的输出,具有可达路径的表格中填入QoS向量,如:输入为A和输出为C对应的表格填入(0.5,0.8,1.65,2.23,2);输入节点集合包含输出节点集合时,表格填入0,如:输入为{C,D}和输出为C对应的表格填入0。表格数据不为空时,表示存在一条输入到输出的路径,即对应一个Web服务或合成方案,当表格数据为空时,表示暂不可达,即暂不存在可达路径。

表5

            {C}             {D}                {E}                 {F}  {A}    (0.5,0.8,1.65,2.23,2)  (0.85,1.0,1.49,1.35,2.5)  (1.5,1.0,2.46,2.34,3)  {B}  (0.6,1.5,2.46,2.34,3)  {C}    0  (0.3,2.0,1.82,1.49,2.5)  {C,  D}    0  0(0.8,2.0,1.49,1.65,2.5)  {F}(1.2,2.5,2.23,2.46,2)  0

根据上述建模表生成初始的路径表,如表6所示:

表6

    {C}    {D}    {E}    {F}  {A}    {(1)}    {(2)}    {(3)}  {B}    {(4)}  {C}    0    {(5)}  {C,  D}    0    0    {(6)}  {F}    {(7)}    0

其中,该路径表的纵向为产生式的输入,横向为产生式的输出,具有可达路径的表格中服务编号,表格数据为0表示输入节点集合包含输出节点集合,表格数据为空表示暂不存在可达路径。

步骤3,进行合成处理,不断更新合成向量表及路径表:

根据方案选择规则从相同的输入到相同的输出的多条路径中选出一条路径作为最优路径,并使用所述最优路径更新所述路径表和合成向量表,具体地,针对所述合成向量表的每一行执行下述操作:

对第一行,生成两个节点集合,即:已处理节点集合S和未处理节点集合N,初始已处理集合S为:{A},其余横向输出节点到未处理集合N,即N为:{C,D,E,F};

判断输入节点A到未处理集合N是否存在可达路径,如果存在,则从所述可达路径中选出最佳路径,具体为:

根据表5第一行,找出输入为A的所有产生式,取出所有权值向量(用V表示):

A->C:V1(0.5,0.8,1.65,2.23,2),

A->D:V2(0.85,1.0,1.49,2.23,2),

A->F:V3(1.5,1.0,2.46,2.34,3),

按照方案选择规则,对于第一属性Price进行比较,Price越小越好,此时V1的Price最优,为0.5,用户区分度为10%,而其它两个Price均超过了0.5×(1+10%)=0.55,即超出了用户接受的范围,所以选取V1对应的路径,相应的服务(产生式与服务是一一对应的)为A->C,此时将C加入到已处理集合S,即S为{A,C},同时从未处理集合N中删除节点C,即N为{D,E,F}。

判断是否存在C点到未处理集合N的可达路径,经过查询合成向量表(表5),发现存在C->F的产生式,即存在C到F的路径,将A->C与C->F进行合成A->C->F,按照给定的QoS权值计算逻辑进行处理,在本例中,前两个属性(执行代价和执行时间)值相加,中间两个属性(可靠性和可用性)值相乘,最后个属性(名声)值相加取平均,即:

A->C:V1(0.5,0.8,1.65,2.23,2)

C->F:V(0.3,2.0,1.82,1.49,2.5)

A->C->F:V4(0.8,2.8,3.0,3.32,2.25)

判断是否存在A到F的可达路径,经查询表5发现存在:A->F:V3(1.5,1.0,2.46,2.34,3);

按照方案选择规则,从A->C->F:V4(0.8,2.8,3.0,3.32,2.25)和A->F:V3(1.5,1.0,2.46,2.34,3)中选出较佳路径,具体为:对第一属性Price进行比较,Price越小越好,此时V4的Price最优,为0.8,用户区分度为10%,而V3的Price为1.5超过了0.8×(1+10%)=0.88,即超出了用户接受范围,因此,选取V4对应的路径,即产生式:A->C->F,并更新路径表和合成向量表,具体为:更新A->F为A->C->F,同时用V4替换V3,此时合成向量表如表7所示,路径表如表8所示。

表7

            {C}                 {D}              {E}               {F}  {A}    (0.5,0.8,1.65,2.23,2)  (0.85,1.0,1.49,1.35,2.5)  (0.8,2.8,3.0,3.32,2.25)  {B}  (0.6,1.5,2.46,2.34,3)  {C}    0  (0.3,2.0,1.82,1.49,2.5)  {C,  D}    0  0(0.8,2.0,1.49,1.65,2.5)  {F}(1.2,2.5,2.23,2.46,2)  0

表8

    {C}    {D}    {E}    {F}  {A}    {(1)}    {(2)}    {(1),(5)}  {B}    {(4)}  {C}    0    {(5)}  {C,  D}    0    0    {(6)}  {F}    {(7)}    0

判断未处理节点集合是否为空,此时,已处理节点集合S为{A,C},未处理节点集合N为{D,E,F},即N不为空,则继续判断输入节点A到未处理集合N是否存在可达路径,经查更新后的合成向量表7发现存在以下产生式对应的路径:

A->D:V6(0.85,1.0,1.49,2.23,2)

A->F:V7(0.8,2.8,3.0,3.32,2.25),

按照方案选择规则,对第一属性Price进行比较,Price越小越好,此时V7的Price最优,为0.8,用户区分度为10%,而V6的Price为0.85小于0.8×(1+10%)=0.88,即用户可以接受,则按照偏好排序,进一步比较第二属性Duration,Duration越小越好,此时V6的Duration最优,为1.0,用户区分度为20%,而V7的Duration为2.8超过了1×(1+20%)=1.2,即超出了用户接受的范围,因此,选取V6对应的产生式(A->D)对应的路径,并将D加入到已处理节点集合S,同时从未处理节点集合N中删除。

此时,已处理节点集合S为{A,C,D},未处理节点集合N为{E,F};

判断是否存在D到未处理节点集合N的可达路径,经查表7发现,并不存在D到其它未处理节点的产生式,即不存在任何可达路径;

判断未处理节点集合N是否为空,发现N为{E,F},即不为空,则继续判断输入节点A到未处理节点集合N是否存在可达路径,经查表7发现,只存在一个产生式:A->F:V8(0.8,2.8,3.0,3.32,2.25)对应的路径,此时没有其它产生式与之相比较,则A->F对应的路径即为最佳路径,因此将F加入到已处理节点集合S,并从未处理节点集合N中删除,即:S为{A,C,D,F},N为{E};

判断是否存在节点F到未处理集合N的可达路径,经查询表7发现,存在F->E,因此将A->F和F->E合成为A->F->E,具体为:按照给定的QoS权值计算逻辑进行处理,在本例中,前两个属性(执行代价和执行时间)值相加,中间两个属性(可靠性和可用性)值相乘,最后一个属性(名声)值相加取平均,即:

A->F:V8(0.8,2.8,3.0,3.32,2.25)

F->E:V(1.2,2.5,2.23,2.46,2)

A->F->E:V9(2.0,5.3,6.69,8.26,2.13)

判断是否存在A到E的可达路径,经查询表7发现A到E不可达,因此,用A->F->E:V9(2.0,5.3,6.69,8.26,2.13)更新合成向量表和路径表,更新后的合成向量表如表9所示,路径表如表10所示。

表9

            {C}                {D}             {E}              {F}  {A}  (0.5,0.8,1.65,2.23,2)  (0.85,1.0,1.49,1.35,2.5)  (2.0,5.3,6.69,8.26,2.13)(0.8,2.8,3.0,3.32,2.25)  {B}  (0.6,1.5,2.46,2.34,3)  {C}  0(0.3,2.0,1.82,1.49,2.5)  {C,  D}  0  0  (0.8,2.0,1.49,1.65,2.5)  {F}  (1.2,2.5,2.23,2.46,2)0

表10

    {C}    {D}    {E}    {F}  {A}    {(1)}    {(2)}    {(1),(5),(7)}    {(1),(5)}  {B}    {(4)}  {C}    0    {(5)}  {C,  D}    0    0    {(6)}  {F}    {(7)}    0

判断未处理节点集合是否为空,此时,已处理节点集合S为{A,C,D,F},未处理节点集合N为{E},即N不为空,则继续判断是否存在A到未处理节点集合N的可达路径,查表9发现,存在A到E的可达路径,即A->E:V10(2.0,5.3,6.69,8.26,2.13),因此将E加入到已处理节点集合S,并从未处理节点集合N中删除,即:已处理节点集合S为{A,C,D,E,F},未处理节点集合N为空;

判断是否存在E到未处理节点集合N的可达路径,由于N为空集,则不存在可达路径,不必更新;

由于未处理节点集合N为空集,表明已经找到输入为A到其它所有节点的最短路径或最佳路径。

然后针对其它各行的输入均执行一遍上述操作,更新后的合成向量表如表11所示,更新后路径表如表12所示。

表11

            {C}                {D}                {E}               {F}  {A}  (0.5,0.8,1.65,2.23,2)  (0.85,1.0,1.49,1.35,2.5)  (2.0,5.3,6.69,8.26,2.13)  (0.8,2.8,3.0,3.32,2.25)  {B}  (0.6,1.5,2.46,2.34,3)  {C}  0  (1.5,4.5,4.06,3.67,2.75)  (0.3,2.0,1.82,1.49,2.5)  {C,  D}  0  0  (0.8,2.0,1.49,1.65,2.5)  {F}  (1.2,2.5,2.23,2.46,2)    0

表12

    {C}    {D}    {E}    {F}  {A}    {(1)}    {(2)}    {(1),(5),(7)}    {(1),(5)}  {B}    {(4)}  {C}    0    {(5),(7)}    {(5)}  {C,  D}    0    0    {(6)}  {F}    {(7)}    0

步骤4,对输入是个集合的进行多服务处理:

针对上述更新后的合成向量表(表11所示)的每一行执行一遍如下操作:

判断当前处理行的输入是否是一个集合,如果是则执行下一步操作,否则,处理下一行;

当处理到第4行的时候,发现了输入是一个集合:{C,D},输出为E,,然后,判断是否存在节点到所述集合{C,D}形成可达路径,查询表11发现存在:A->C,B->D以及A->D,因此进入下一步;

将节点A和B生成输入集{A,B},节点A生成输入集{A,A},将{C,D}生成为输出集,即存在如下产生式:{A,B}->{C,D},{A,A}->{C,D},并将新生成的输入集和输出集添加到合成向量表和路径表中,更新合成向量表及路径表。

首先对{A,B}->{C,D}进行向量更新,更新过程如下:

A->C:(0.5,0.8,1.65,2.23,2)

B->D:(0.6,1.5,2.46,2.34,3)

由于A->C和B->D是并行关系(而非“A->C和C->D”式的串行关系),各项属性较差值就能表示{A,B}->{C,D}的QoS属性,所以这里各项属性取较差值,而不是按照QoS权值计算逻辑进行计算;

如:对于第一属性Price,越大越差,因此,{A,B}->{C,D}的Price取0.6,对于第二属性Duration,越大越差,因此,{A,B}->{C,D}的Price取1.5,而对于可靠性、可用性和名声是值越小表示越差,所以分别去较小值:1.65,2.23,2;

即:{A,B}->{C,D}的QoS权值向量为(0.6,1.5,1.65,2.23,2)

然后,对{A,B}->{C,D}与{C,D}->E进行合成更新,即:

{C,D}->E:(0.8,2.0,1.49,1.65,2.5)

{A,B}->{C,D}:(0.6,1.5,1.65,2.23,2)

按照QoS权值计算逻辑计算得到:

{A,B}->{C,D}->E:(1.4,3.5,2.46,3.68,2.25),

判断是否存在A或B到E可达路径,查表11发现,存在A->E:(2.0,5.3,6.69,8.26,2.13),按照方案选取规则从{A,B}->{C,D}->E和A->E中选取最佳路径:

对第一属性Price,越小越好,此时{A,B}->{C,D}->E的Price最优,为1.4,用户区分度为10%,而A->E的Price为2.0超过了1.4×(1+10%)=1.54,所以选取{A,B}->{C,D}->E,并更新合成向量表和路径表;

对于{A,B}到其它各节点(X)的最优路径,各属性按照第二规则,从A->X、B->X以及{A,B}->X的属性中,选取较优的一个属性权值更新{A,B}->X的合成向量表和路径表;

对于其它节点(X)到{C,D}的最优路径,各属性按照与第二规则相反的规则,从X->C、X->D以及X->{C,D}的属性中选取较差的一个属性权值更新X->{C,D}的合成向量表和路径表;

全部更新后得到的合成向量表如表13所示:

表13

          {C}            {D}             {E}               {F}          {C,D}  {A}    (0.5,0.8,1.65,2.2    3,2)    (0.85,1.0,1.49,1.35,    2.5)  (2.0,5.3,6.69,8.26,2.  13)  (0.8,2.8,3.0,3.32,  2.25)  (0.85,1.0,1.49,1.3  5,2)  {B}    (0.6,1.5,2.46,2.34,3    )  {C}    0  (1.5,4.5,4.06,3.67,2.  75)  (0.3,2.0,1.82,1.4  9,2.5)  {C,  D}    0    0  (0.8,2.0,1.49,1.65,2.5)  0  {F}  (1.2,2.5,2.23,2.46,2)  0  0  {A,  B}   (0.5,0.8,1.65,2.2    3,2)    (0.6,1.5,2.46,2.34,3    )   (1.4,3.5,2.46,3.68,2.2    5)  (0.8,2.8,3.0,3.32,  2.25)  (0.6,1.5,1.65,  2.23,2)

然后基于表13所示的合成向量表,对{A,A}->{C,D}进行向量更新,更新步骤与上述对{A,B}->{C,D}的更新过程完全一致:

根据A->{C,D}:(0.85,1.0,1.49,1.35,2),

{C,D}->E:(0.8,2.0,1.49,1.65,2.5)

按照QoS权值计算逻辑计算得到{A}->{C,D}->{E}的向量值为(1.65,3.0,2.22,2.23,2.25)

将{A}->{C,D}->{E}的向量值为(1.65,3.0,2.22,2.23,2.25)与当前A->E的最优方案(2.0,5.3,6.69,8.26,2.13)进行比较,发现(1.65,3.0,2.22,2.23,2.25)优于(2.0,5.3,6.69,8.26,2.13),更新A->E的最优方案为A->{C,D}->E,更新权值向量为(1.65,3.0,2.22,2.23,2.25)。

判断发现存在{A,B}->E的最优方案(1.4,3.5,2.46,3.68,2.25)与A->E的最优方案(1.65,3.0,2.22,2.23,2.25)进行比较:

对第一优先属性price进行比较,price越小越好,此时{A,B}->E的price最优,为1.4,用户区分度为10%,而另一个price均超过了1.4×(1+10%)=1.54,超出用户接受范围,因此,当前{A,B}->{C,D}->{E}已为最优方案,不必更新。

此时更新后得到最优的合成向量表,如表14所示:

表14

           {C}              {D}              {E}          {F}            {C,D}  {A}  (0.5,0.8,1.65,2.2  3,2)    (0.85,1.0,1.49,1.35,    2.5)  (1.65,3.0,2.22,2.23,  2.25)    (0.8,2.8,3.0,3.32,    2.25)    (0.85,1.0,1.49,1.3    5,2)  {B}    (0.6,1.5,2.46,2.34,3    )  {C}  0  (1.5,4.5,4.06,3.67,2.  75)    (0.3,2.0,1.82,1.4    9,2.5)  {C,  D}  0    0  (0.8,2.0,1.49,1.65,2.5)    0  {F}  (1.2,2.5,2.23,2.46,2)    0    0  {A,  B}  (0.5,0.8,1.65,2.2  3,2)    (0.6,1.5,2.46,2.34,3    )  (1.4,3.5,2.46,3.68,2.2  5)    (0.8,2.8,3.0,3.32,    2.25)    (0.6,  1.5,  1.65,    2.23,2)

更新后的路径表,如表15所示:

表15

    {C}    {D}    {E}    {F}    {C,D}  {A}    {(1)}    {(2)}    {(1),(2),(6)}    {(1),(5)}    {(1),(2)}  {B}    {(4)}  {C}    0    {(5),(7)}    {(5)}  {C,  D}    0    0    {(6)}    0  {F}    {(7)}    0    0  {A,  B}    {(1)}    {(4)}    {(1),(2),(6)}    {(1),(5)}    {(1),(2)}

最后,当用户输入查询条件,如:输入集合及输出集合,服务合成系统将会自动查询表14或表15,将与查询条件相对应的最短路径(即最优的Web服务合成方案)提供给用户。

值得说明的是,上述实施例中以产生式建模进行建模处理得到合成向量表和路径表,只是本发明的优选实施例而已,本领域的技术人员应该了解还有其它建模方式,如属性绑定建模,也可以获得合成向量表和路径表。所述属性绑定建模,是把Web Service看成一个类,它的输入I,输出O作为类的属性,表示为S(I,O),在每一个输入属性名前都加一个“$”,表示该属性是一个输入变量。如图11所示,一个服务1,拥有两个输入参数A和B,输出参数为C,用“$”区分服务1的输入和输出属性。

综上所述,根据本发明实施例提出的一种基于服务质量的服务合成系统及服务合成方法,通过产生式建模将Web服务的输入输出用路径模型表示,服务合成的过程就是路径更新过程,通过按照方案选择规则(用户对服务的各质量属性的偏好排序及区分度)选取路径,而不需要穷举所有合成方案,减小了时间复杂度,提高了系统工作效率。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号