关键字驱动的Web服务自动组合方法技术

技术编号:20978148 阅读:32 留言:0更新日期:2019-04-29 18:38
本发明专利技术公开了一种关键字驱动的Web服务自动组合方法,本发明专利技术提出的方法综合考虑了用户的个性化功能需求和服务数量两个重要因素。针对关键字唯一性和关键字时序性双重约束下组合服务个数最小化的自动Web服务组合问题,提出了关键字驱动的Web服务自动组合方法。特别地,该方法通过构造三个索引来实现了一系列有效的剪枝策略。为了实现高效的查询处理,本发明专利技术还提出了一系列图优化策略。

Keyword-driven automatic composition of Web services

The invention discloses a keyword-driven automatic Web service composition method, which takes into account two important factors of user's personalized functional requirements and service quantity. Aiming at the problem of automatic Web service composition with minimum number of composite services under double constraints of keyword uniqueness and keyword timing, a keyword-driven automatic Web service composition method is proposed. In particular, this method achieves a series of effective pruning strategies by constructing three indexes. In order to achieve efficient query processing, the invention also proposes a series of graph optimization strategies.

【技术实现步骤摘要】
关键字驱动的Web服务自动组合方法
本专利技术属于服务计算中的Web服务自动组合领域,在Web服务组合过程中引入关键字查询。针对关键字唯一性和关键字时序性双重约束下组合服务数量最小化的Web服务自动组合问题,提出了关键字驱动的Web服务自动组合方案。
技术介绍
近年来,随着面向服务架构(SOA)在软件工程中的应用的快速增长,通过组合现有的Web服务来构建基于服务的系统(SBS)的需求日益扩大。寻找合适的组件服务是SBS工程中的一个关键步骤,可以将其转化为面向功能请求的服务组合问题。该问题的典型解决过程是:通过分析用户的功能请求,在Web服务库中进行有效的服务发现、服务选择和服务匹配来满足用户的要求,进而形成可执行的服务组合解决方案。传统的SBS构建过程分为三个阶段:系统规划阶段、服务发现阶段和服务选择阶段。系统设计人员需要手动地依次完成上述三个阶段,且无论处于哪个阶段,设计人员都需要花费大量的时间和精力来学习相应的SOA技术,以获得最终的SBS解决方案。因此,过去几年来,工业界和学术界从各种研究角度研究了Web服务自动组合方法以帮助系统设计人员找到服务来快速构建SBS,而不必经历所有复杂的阶段。现有的Web服务自动组合技术主要分为两类:基于AI理论的Web服务自动组合方法和基于图搜索的Web服务自动组合方法。前者将服务组合问题视为一个规划问题的自动求解问题,即给定一个初始状态和目标状态,在一个服务集合中寻求一条服务组合的路径以达到从初始状态到目标状态的演变。这类方法需要过多的形式化表示方法或推理系统,因此实施起来较为困难。于是基于图搜索的Web服务自动组合方法应运而生,这类方法将服务以及服务之间的关系表示成关系图,Web服务组合的过程被转化为在关系图中进行遍历以寻找从输入到输出或者从输出到输入的可达路径。这两类方法主要考虑用户提供的初始输入和用户期望的最终输出,但忽略了组合方案中包含的Web服务是否精确满足用户的功能要求。因此如何缩小搜索空间以实现快速组合、同时最大限度地满足用户的个性化功能要求是Web服务组合需要解决的关键问题。
技术实现思路
本专利技术针对现有技术的不足,提出了一种关键字驱动的Web服务自动组合方法。该方法主张用关键字来表征服务的功能信息,在I/O数据流驱动的传统图搜索方法的基础上加入关键字查询技术,进而提出一种基于动态剪枝策略的深度优先搜索算法(DP-DFS)来快速获得满足用户需求且服务数量最少的Web服务组合方案。特别地,本专利技术设计了三种类型的索引以保证关键字的唯一性和时序性,并提出了有效的剪枝策略来提升搜索效率。本专利技术方法的具体步骤是:步骤(1).输入Web服务库W、语义本体Ont以及基于关键字的Web服务组合请求R={IR,OR,KR,QR};其中IR表示用户提供的初始输入;OR表示用户期待的最终输出;KR={k1,k2,…,kn}(n≥1)是查询关键字的集合,表示Web服务组合方案中应包含的服务功能;Web服务库W中的每个Web服务都包含对应的关键字,关键字从服务描述文件中获取,用以描述服务的功能信息;QR表示特定关键字之间的执行顺序;步骤(2).根据IR、OR以及语义本体Ont对服务之间的输入输出参数进行语义匹配,将离散的Web服务逐层连接,构建服务初始匹配图GI=(V,E);其中V=S∪P是节点的集合,S表示Web服务节点(以下简称为服务节点)集合,P表示数据传输过程中的I/O参数节点集合;S=SR∪{so,sd},其中SR表示图中包含的相关Web服务;so、sd是两个特殊的虚拟服务节点,分别对应于服务初始匹配图中的头尾节点;so不包含任何输入,它的输出是IR;sd不包含任何输出,它的输入是OR;E=SP∪PS是有向边的集合,表示服务节点与I/O参数节点之间的依赖关系;步骤(3).对服务初始匹配图进行预处理,预处理过程包括检测并去除死锁、合并等效桥接服务、去除冗余服务节点;步骤(4).为服务初始匹配图中的每个Web服务节点构建索引LNP以记录每个服务的必经前驱关键字节点集合;构建索引MND以记录每个服务节点与头节点So之间的最短距离(最少服务个数)及最短路径上包含的服务集合;步骤(5).在服务初始匹配图中运行DP-DFS启发式关键字搜索算法来生成最终服务组合图GF;DP-DFS启发式关键字搜索算法的具体执行过程如下:1)从初始匹配图的尾节点sd开始,逆向进行关键字搜索;将sd的每个输入参数添加到栈Inun中;初始化键值对集合Ksel<k,v>,其中k表示某个待查询的关键字,v表示关键字对应的服务节点;初始化最优组合服务个数的上限值upper-bound为无穷大;初始化当前部分解决方案GP=<Inun,Ssel,Ksel,LNS>并将其添加到栈Tps中,其中Ssel和Ksel分别表示部分解决方案中已选择的服务集合和关键字集合,LNS是为部分解决方案中每一个尚未处理的服务节点(仍含有未匹配输入的服务)构建的索引,用来记录服务节点的必经后继关键字节点;2)从栈Tps中弹出一个待扩展的部分解决方案进行如下判断:首先,根据以下预测函数计算其最少服务数量值f(GP):f(GP)=g(GP)+h(GP)其中,g(GP)表示部分解决方案中已包含的服务节点个数;h(GP)表示从当前部分解决方案扩展到完整解决方案的启发式预估最小成本(即将包含的最小节点个数);若f(GP)大于upper-bound,则返回步骤2);若当前部分解决方案没有未解决的输入参数且它包含了所有查询关键字,则将其作为当前最优组合方案GF并更新upper-bound值为该组合方案中包含的服务个数,返回步骤2);3)从Inun中取出一个未解决的输入参数i,并获取与i连接的所有前驱服务节点作为它的候选服务节点集合CANDIDATE(i);4)对的每一个候选服务节点进行如下操作:若该候选服务节点的前驱必经关键字已包含在该部分解决方案中,或者该候选服务节点的前驱必经关键字与部分解决方案中已有关键字之间不符合时序要求,或者选择该候选服务节点会造成循环,则从CANDIDATE(i)中移除该服务节点;5)在CANDIDATE(i)剩余的服务节点中选择与头节点so之间的最短距离最大的服务节点s进行如下操作:生成当前部分解决方案的副本并将该候选服务节点添加进来;更新相关变量Inun、Ssel、Ksel以及LNS;将新生成的部分解决方案压入栈Tps中;6)重复步骤5),直到CANDIDATE(i)中不存在未被处理的服务节点;7)重复步骤2)~步骤6),直到Tps中不包含任何待扩展的部分解决方案;8)输出此时的最优Web服务组合方案GF;本专利技术所提出的关键字驱动的Web服务自动组合方法主要分为以下几个模块进行:服务仓库构建模块、初始匹配图生成模块、初始匹配图优化模块、最终组合图生成模块。服务仓库构建模块根据每个Web服务的服务描述文件(WSDL)将Web服务形式化表示为三元组<输入参数,输出参数,关键字>,从而构建出用于进行组合的Web服务仓库。初始匹配图生成模块根据用户提供的初始输入以及期望得到的最终输出,按照I/O语义匹配规则逐层连接Web服务仓库中的相关服务,最终得到初始服务匹配图。初始匹配图优化模块用来对初始匹配图进行本文档来自技高网
...

【技术保护点】
1.关键字驱动的Web服务自动组合方法,其特征在于,包括如下步骤:步骤(1).输入Web服务库W、语义本体Ont以及基于关键字的Web服务组合请求R={IR,OR,KR,QR};其中IR表示用户提供的初始输入;OR表示用户期待的最终输出;KR={k1,k2,...,kn}是用户查询的关键字的集合,n≥1,表示Web服务组合方案中应包含的关键服务功能;Web服务库W中的每个Web服务都有相应的关键字,关键字从服务描述文件中获取,用以描述服务的功能信息;QR表示特定关键字之间的执行顺序;步骤(2).根据IR、OR以及语义本体Ont对服务之间的输入输出参数进行语义匹配,将离散的Web服务逐层连接,构建服务初始匹配图GI=(V,E);其中V=S∪P是节点的集合,S表示Web服务节点集合,P表示数据传输过程中的I/O参数节点集合;S=SR∪{so,sd},其中SR表示服务初始匹配图中包含的Web服务节点;so、sd是两个特殊的虚拟服务节点,分别对应于服务初始匹配图中的头尾节点;so不包含任何输入,它的输出是IR;sd不包含任何输出,它的输入是OR;E=SP∪PS是有向边的集合,表示服务节点与I/O参数节点之间的依赖关系;步骤(3).对服务初始匹配图进行预处理,预处理过程包括检测并去除死锁、合并等效桥接服务、去除冗余服务节点;步骤(4).为服务初始匹配图中的每个Web服务节点构建索引LNP以记录每个服务的必经前驱关键字节点集合;构建索引MND以记录每个服务节点与头节点so之间的最短距离及最短路径上包含的服务集合;步骤(5).在服务初始匹配图中运行DP‑DFS启发式关键字搜索算法来生成最终服务组合图GF;DP‑DFS启发式关键字搜索算法的具体执行过程如下:1)从初始匹配图的尾节点sd开始,逆向进行关键字搜索;将sd的每个输入参数添加到栈Inun中;初始化键值对集合Ksel<k,v>,其中k表示某个待查询的关键字,v表示关键字对应的服务节点;初始化最优组合服务个数的上限值upper‑bound为无穷大;初始化当前部分解决方案Gp=<Inun,Ssel,Ksel,LNS>并将其添加到栈Tps中,其中Ssel和Ksel分别表示部分解决方案中已包含的服务集合和关键字集合,LNS是为部分解决方案中每一个尚未处理的服务节点构建的索引,用来记录服务节点的必经后继关键字节点,其中尚未处理的服务节点表示仍含有未匹配输入的服务;2)从栈Tps中弹出一个待扩展的部分解决方案进行如下判断:首先,根据以下预测函数计算其最小服务个数值f(GP):f(GP)=g(GP)+h(GP)其中,g(GP)表示部分解决方案中已包含的服务节点个数;h(GP)表示从当前部分解决方案扩展到完整解决方案的启发式预估最小成本,最小成本为包含的最小节点个数;若f(GP)大于upper‑bound,则返回步骤2);若当前部分解决方案没有未解决的输入参数且它包含了所有查询关键字,则将其作为当前最优组合方案GF并更新upper‑bound值为该组合方案中包含的服务个数,返回步骤2);3)从Inun中取出一个未解决的输入参数i,并获取与i连接的所有前驱服务节点作为它的候选服务节点集合CANDIDATE(i);4)对i的每一个候选服务节点进行如下操作:若该候选服务节点的前驱必经关键字已包含在当前部分解决方案中,或者该候选服务节点的前驱必经关键字与部分解决方案中已有关键字之间不符合时序要求,或者选择该候选服务节点会造成循环,则从CANDIDATE(i)中移除该服务节点;所述的候选服务节点的前驱必经关键字由索引LNP得出;5)在CANDIDATE(i)剩余的服务节点中选择与头节点so之间的最短距离最大的服务节点s进行如下操作:生成当前部分解决方案的副本并将该候选服务节点添加进来;更新相关变量Inun、Ssel、Ksel以及LNS;将新生成的部分解决方案压入栈Tps中;6)重复步骤5),直到CANDIDATE(i)中不存在未被处理的服务节点;7)重复步骤2)~步骤6),直到Tps中不包含任何待扩展的部分解决方案;8)输出此时的最优Web服务组合方案GF。...

【技术特征摘要】
1.关键字驱动的Web服务自动组合方法,其特征在于,包括如下步骤:步骤(1).输入Web服务库W、语义本体Ont以及基于关键字的Web服务组合请求R={IR,OR,KR,QR};其中IR表示用户提供的初始输入;OR表示用户期待的最终输出;KR={k1,k2,...,kn}是用户查询的关键字的集合,n≥1,表示Web服务组合方案中应包含的关键服务功能;Web服务库W中的每个Web服务都有相应的关键字,关键字从服务描述文件中获取,用以描述服务的功能信息;QR表示特定关键字之间的执行顺序;步骤(2).根据IR、OR以及语义本体Ont对服务之间的输入输出参数进行语义匹配,将离散的Web服务逐层连接,构建服务初始匹配图GI=(V,E);其中V=S∪P是节点的集合,S表示Web服务节点集合,P表示数据传输过程中的I/O参数节点集合;S=SR∪{so,sd},其中SR表示服务初始匹配图中包含的Web服务节点;so、sd是两个特殊的虚拟服务节点,分别对应于服务初始匹配图中的头尾节点;so不包含任何输入,它的输出是IR;sd不包含任何输出,它的输入是OR;E=SP∪PS是有向边的集合,表示服务节点与I/O参数节点之间的依赖关系;步骤(3).对服务初始匹配图进行预处理,预处理过程包括检测并去除死锁、合并等效桥接服务、去除冗余服务节点;步骤(4).为服务初始匹配图中的每个Web服务节点构建索引LNP以记录每个服务的必经前驱关键字节点集合;构建索引MND以记录每个服务节点与头节点so之间的最短距离及最短路径上包含的服务集合;步骤(5).在服务初始匹配图中运行DP-DFS启发式关键字搜索算法来生成最终服务组合图GF;DP-DFS启发式关键字搜索算法的具体执行过程如下:1)从初始匹配图的尾节点sd开始,逆向进行关键字搜索;将sd的每个输入参数添加到栈Inun中;初始化键值对集合Ksel<k,v>,其中k表示某个待查询的关键字,v表示关键字对应的服务节点;初始化最优组合服务个数的上限值upper-bound为无穷大;初...

【专利技术属性】
技术研发人员:张蕾俞东进孙笑笑侯文杰应钰柯
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1