主权项 |
一种支持Top K查询的自动服务组合方法,包括:步骤1)、用户提交一用于请求前K个质量最好的服务组合结果的查询请求,根据该查询请求以及多个原子服务的输入参数、输出参数、原子服务间的匹配关系建立服务依赖图,由所述服务依赖图找出满足所述查询请求第一最优关键路径;其中,所述最优关键路径为总服务质量值allQoS最优的至少一条关键路径;所述关键路径为一条或多条只包括关键前驱的链状顺序路径;所述关键前驱是指对于服务组合结果中的任意一个服务节点,其所有输入参数的最优提供者中总服务质量值allQoS最差的那个提供者;所述总服务质量值allQoS为从所述查询请求的查询输入参数开始到所在原子服务被调用后的服务质量值;步骤2)、将所述第一最优关键路径保存在一集合中;步骤3)、从所述集合中选取总服务质量值allQoS最优的关键路径作为当前的最优关键路径,并生成对应的服务组合结果,然后对当前的最优关键路径进行松弛操作,生成新的关键路径,并放入所述集合中;其中,所述松弛操作包括:步骤3‑1)、选择当前的最优关键路径中的某一个结点作为待做松弛操作的松弛结点;步骤3‑2)、从所述松弛结点的各个输入参数的所有提供者中寻找具有最好allQoS的提供者且该提供者的allQoS差于目前的关键前驱的allQoS,若能找到,将该提供者记为新提供者;步骤3‑3)、将所述松弛结点的前驱结点改为所述的新提供者,保持所述松弛结点到终结结点的路径不变;步骤3‑4)、从所述新提供者开始,从后往前,为每个结点寻找其前驱结点,直到起始结点,从而形成一条从起始结点开始,经由所述新提供者,最终到达所述终结结点的新的关键路径;步骤4)、重复步骤3)的操作,直到已经找到的所有服务组合结果的数目达到用户所需要的K值。 |