专利名称:用于推荐Web服务组合的装置和方法
技术领域:
本发明涉及一种用于推荐Web服务组合的装置和方法,具体涉及在考虑Web服务之间的输入输出关系的情况下根据当前Web服务组合与历史Web服务组合的匹配来推荐Web服务组合的装置和方法。
背景技术:
随着Web服务技术的发展,网络上出现了越来越多的可用的Web服务。由于Web月艮务的数量庞大,而且其中有很多在功能方面是相似的,因此用户很难手动发现并选择符合他们需求的Web服务。尤其在半自动Web服务组合领域,当用户通过与一个Web服务组合平台进行交互,从而一步一步地从Web服务列表中选择已有的Web服务来进行组合时,用户迫切地需要一个能够过滤掉不符合他们需求并且推荐一个小规模的排好序的最合适的Web服务组合的推荐方法。传统的推荐方法包括以下三种:第一种方法通过在注册Web服务时向描述文件中加入语义信息,然后在服务发现阶段利用语义信息中的功能属性(如输入、输出、前置条件、后置条件等)过滤掉功能不符合要求的服务,并进一步利用语义信息中的非功能属性(如位置、服务质量参数等)过滤掉不适合的服务。这种方法依赖于语义信息,因此不适用于诸如BPEL(业务处理执行语言)的不支持语义的组合方法。第二种方法利用用户对服务质量的反馈来对Web服务组合进行排序,然后基于排序进行推荐。由于用户的反馈是一个主观的值,对于不同的用户可能差别很大,因此利用该方法来进行推荐的准确度不高。第三种方法通过对历史组合进行挖掘来推荐Web服务。这种方法把一个组合看作一个序列,而把最终完成一个组合看作一个频繁序列挖掘的问题。这种方法可以处理顺序的组合,但是不能处理包含并行模式的组合。而且,这种方法没有考虑Web服务的输入输出关系,导致利用这种方法推荐的Web服务不能很好地符合用户的需求。
发明内容
为了至少部分地解决现有技术中存在的问题,本发明提供一种用于推荐Web服务组合的装置和方法。根据本发明实施例的用于推荐Web服务组合的装置包括:有向无环图生成单元,被配置为生成当前Web服务组合的有向无环图(DAG),该有向无环图中的节点代表Web服务,边代表Web服务之间的输入输出关系;匹配单元,被配置为将有向无环图与预先存储的历史Web服务组合的有向无环图进行匹配;以及推荐单元,被配置为根据匹配的结果为用户推荐Web服务组合根据本发明另一实施例的用于推荐Web服务组合的方法包括步骤:生成当前Web服务组合的有向无环图,该有向无环图中的节点代表Web服务,边代表Web服务之间的输入输出关系;将有向无环图与预先存储的历史Web服务组合的有向无环图进行匹配;以及根据匹配结果为用户推荐Web服务组合。根据本发明的装置和方法的一个优点是,通过利用Web服务之间的输入输出的连接关系,能够以更高的准确度推荐Web服务组合。
参照以下结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。为了避免因不必要的细节而模糊了本发明,在附图中仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其它细节。图1是示出根据本发明实施例的用于推荐Web服务组合的装置的配置示例的框图;图2a示出现有技术中使用的只考虑Web服务间的顺序关系而未考虑输入输出关系的Web服务组合的有向无环图的示例;图2b示出根据本发明实施例的用于推荐Web服务组合的装置生成和使用的有向无环图的示例;图3是示出根据本发明一个实施例的用于推荐Web服务组合的装置中的匹配单元的配置示例的框图;图4示出历史Web服务组合示例的有向无环图;图5示出根据本发明一个实施例的装置的频繁序列树生成部分基于图4所示的历史Web服务组合而生成的频繁序列树的示例;图6示出由用户生成的当前Web服务组合的示例;图7示出根据本发明一个实施例的装置基于图4所示的历史Web服务组合和图6所示的当前Web服务组合而为用户推荐的Web服务组合的示例;图8示出由用户生成的当前Web服务组合的另一示例;图9示出基于图8所示的当前Web服务组合从历史Web服务组合中提取的Web服务组合的示例;图10是示出根据本发明实施例的用于推荐Web服务组合的方法的流程图;图11是示出根据本发明一个实施例的方法中将当前Web服务组合的有向无环图与历史Web服务组合的有向无环图进行匹配以及根据匹配结果为用户推荐Web服务组合的步骤的具体过程的流程图;图12示出根据本发明的变型实施例的装置和方法利用反转序列生成的频繁序列树的示例;以及图13是示出实现本发明的装置和方法的计算机的示例性结构的框图。
具体实施例方式下面参照
本发明的实施例。应注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。图1是示出根据本发明实施例的用于推荐Web服务组合的装置100的配置示例的框图。用于推荐Web服务组合的装置100包括有向无环图生成单元110、匹配单元120以及推荐单元130。由用户创建或编辑的当前Web服务组合被提供给装置100的有向无环图生成单元110,有向无环图生成单元110被配置为生成Web服务组合的有向无环图,在该有向无环图中,节点代表Web服务,边代表Web服务之间的输入输出关系。图2b示出根据本发明实施例的有向无环图生成单元110生成的Web服务组合的有向无环图的示例,其中,节点W1-W7代表Web服务,节点间的边(由箭头表示)代表Web月艮务间的输入输出关系。例如,在如图2b的I所示的有向无环图中,节点W4与W5之间具有这样的输入输出关系:w4的第一输出(由O4a表不)被提供给W5的第一输入(由I5a表不),W4的第二输出(由O4,2表示)被提供给W5的第二输入(由I5,2表示)。在如图2b的II所示的有向无环图中,节点W4与W5之间具有这样的输入输出关系:W4的第一输出被提供给W5的第二输入,W4的第二输出被提供给W5的第一输入。作为对比,图2a中示出了未考虑Web服务间的输入输出关系的有向无环图的示例。在图2a中,节点间的边仅表示各Web服务的执行顺序,即在该组合中按照箭头所示的顺序执行各个节点所代表的Web服务,而其中并未考虑Web服务的各个输入和输出的连接关系。回到图1,装置100的匹配单元120被配置为将有向无环图生成单元110生成的当前Web服务组合的有向无环图与预先存储的历史Web服务组合的有向无环图进行匹配。推荐单元130被配置为根据匹配单元120的匹配结果为用户推荐Web服务组合。匹配单元120可以采用多种匹配方式,例如可以通过将当前组合的有向无环图与历史组合的有向无环图进行逐个比较,来查找包含当前组合的至少一部分的历史组合。推荐单元130可以按照预定规则,根据匹配结果向用户推荐Web服务组合,例如当查找到多个与当前组合匹配的历史组合时,推荐单元130可以将匹配频度较高的历史组合的部分推荐给用户。再次参考图2,图2b中的1-1II为历史Web服务组合的有向无环图,而IV为用户提供的当前组合的有向无环图。通过将当前组合与历史组合的有向无环图进行匹配,可以确定组合II包含当前组合,从而可以将包含W7的组合推荐给用户。作为对比,如图2a所示,在使用只考虑Web服务间的顺序关系而未考虑输入输出关系的有向无环图进行匹配的情况下,历史组合1-1II的有向无环图均包含当前组合的有向无环图,由于^在(W4 —W5)之后出现了两次,而W7仅出现了一次,所以根据传统方法(例如背景技术中所述的第三种方法),会推荐W6作为后续Web服务推荐给用户,然而该组合实际上并不是与当前组合最精确匹配的历史组合。通过该示例可以看出,根据本发明实施例的用于推荐Web服务组合的装置通过利用Web服务之间的输入输出的连接关系,能够以更高的准确度推荐Web服务组合。以上说明了本发明的一般实施例,而在存在较大数量的历史Web组合以及在涉及例如并行模式的较复杂的Web服务组合的情况下,可以采用频繁序列挖掘进行Web服务组合的匹配和推荐。图3示出根据本发明一个实施例的用于推荐Web服务组合的装置的匹配单元320的配置示例。匹配单元320包括序列生成部分321、频繁序列树生成部分322以及序列提取部分323。
序列生成部分321被配置为根据有向无环图的拓扑排序生成表示相应Web服务组合的序列,该序列的元素为U、Os和It构成的四元组,其中,Ws表示源Web服务、Wt表示目标Web服务、Os表不源Web服务的输出、It表不目标Web服务的输入。该序列的一个兀素代表的是组合中两个Web服务间的一种关系,其对应于有向无环图中的一个边。序列生成部分321例如可以通过以下示例算法I由有向无环图生成序列:输入:D表不Web服务组合的有向无环图1.Q:=空序列2.while (D的节点集合不为空)3.N:= D中没有前驱的节点的集合4.while (N 不为空)5.E:= N中Web服务编号(Ws)最小的元素6.0:= D中以E为其源Web服务的边的集合7.while (0 不为空)8.1:= 0中具有最小输出编号(Os)、最小目的Web服务编号(Wt)、最小输入编号(It)的元素(先比较Os,然后比较Wt,最后比较It)9.T: = D中与I具有共同的目的Web服务的边的集合10.S: = T中所有边的源Web服务的节点的集合11.1f (S 是 N 的一个子集)12.将(Ws,Wt, Os, It)添加为Q的最后一个元素13.从D中删除I14.end-1f15.从0中删除I16.end-while17.1f (D中以E为其源Web服务的边的集合为空)18.从D中删除E19.end-1f20.从N中删除E21.end-while22.1f (D的边的集合不为空)23.将I I添加为Q的最后一个元素24.end-1f25.end-while输出:返回Q在该示例算法中,根据目标Web服务的拓扑排序确定元素的层级,并在序列中用分隔符(用“I I”表示)分隔不同层级的元素。对于同一层级的元素,根据该算法中规定的排序方案(排序方案不限于此),根据预先确定的Web服务的编号及其各个输入和输出的编号可以确定各个元素的排列顺序。因此,给定一个Web服务组合,序列生成部分321能够生成一个唯一代表该组合的序列。例如,对于图4示出历史Web服务组合的有向无环图,序列生成部分321可以生成
权利要求
1.一种用于推荐Web服务组合的装置,包括: 有向无环图生成单元,被配置为生成当前Web服务组合的有向无环图,所述有向无环图中的节点代表Web服务,边代表Web服务之间的输入输出关系; 匹配单元,被配置为将所述有向无环图与预先存储的历史Web服务组合的有向无环图进行匹配;以及 推荐单元,被配置为根据所述匹配的结果为用户推荐Web服务组合。
2.根据权利要求1所述的装置,其中所述匹配单元包括: 序列生成部分,被配置为根据所述有向无环图的拓扑排序生成表示相应Web服务组合的序列,所述序列的元素为Ws、Wt、Os和It构成的四元组,其中,Ws表示源Web服务、Wt表示目标Web服务、Os表不源Web服务的输出、It表不目标Web服务的输入; 频繁序列树生成部分,被配置为根据所述历史Web服务组合的所述序列生成或更新频繁序列树;以及 序列提取部分,被配置为从所述频繁序列树中提取前驱子序列与所述当前Web服务组合的序列的后缀子序列相同的序列。
3.根据权利要求2所述的装置,其中,所述序列生成部分还被配置为根据所述目标Web服务的拓扑排序确定所述元素的层级,并在所述序列中用分隔符分隔不同层级的元素。
4.根据权利要求2所述的装置,其中所述推荐单元将所述序列提取部分提取出的序列按照所述频繁序列树中的支持度按降序进行排序,如果两个序列支持度相同,则按照去掉当前Web服务组合序列的所述后缀子序列之后的序列长度再次进行排序,所述序列长度较长的优先,并且 所述推荐单元根据预先设置的参数n提取排序结果中的前n条结果,并推荐与所述前n条结果相对应的Web服务组合。
5.根据权利要求1-4中任一项所述的装置,还包括更新单元,被配置为将用户完成的Web服务组合添加到所述历史Web服务组合中。
6.一种用于推荐Web服务组合的方法,包括: 生成当前Web服务组合的有向无环图,所述有向无环图中的节点代表Web服务,边代表Web服务之间的输入输出关系; 将所述有向无环图与预先存储的历史Web服务组合的有向无环图进行匹配;以及 根据匹配结果为用户推荐Web服务组合。
7.根据权利要求6所述的方法,其中,将当前Web服务组合的有向无环图与历史Web服务组合的有向无环图进行匹配的步骤包括: 根据所述有向无环图的拓扑排序生成表示相应Web服务组合的序列,所述序列的元素为Ws、Wt、0s和It构成的四元组,其中,Ws表示源Web服务、Wt表示目标Web服务、Os表示源Web服务的输出、It表不目标Web服务的输入; 利用频繁序列挖掘方法,根据所述历史Web服务组合的所述序列生成或更新频繁序列树;以及 从所述频繁序列树中提取前驱子序列与所述当前Web服务组合的序列的后缀子序列相同的序列。
8.根据权利要求7所述的方法, 其中,所述根据所述有向无环图的拓扑排序生成表示相应Web服务组合的序列的步骤还包括:根据所述目标Web服务的拓扑排序确定所述元素的层级,并在所述序列中用分隔符分隔不同层级的元素。
9.根据权利要求7所述的方法,其中,根据匹配结果为用户推荐Web服务组合的步骤还包括: 将所提取出的序列按照所述频繁序列树中的支持度按降序进行排序,如果两个序列支持度相同,则按照去掉当前Web服务组合序列的后缀子序列之后的序列长度再次进行排序,所述序列长度较长的优先;以及 根据预先设置的参数n,提取排序结果中的前n条结果,并推荐与所述前n条结果相对应的Web服务组合。
10.根据权利要求6-9中任一项所述的方法,还包括步骤: 将用户完成的Web服务组 合添加到所述历史Web服务组合中。
全文摘要
一种用于推荐Web服务组合的装置和方法。该装置包括有向无环图生成单元,被配置为生成当前Web服务组合的有向无环图,该有向无环图中的节点代表Web服务,边代表Web服务之间的输入输出关系;匹配单元,被配置为将有向无环图与预先存储的历史Web服务组合的有向无环图进行匹配;以及推荐单元,被配置为根据匹配的结果为用户推荐Web服务组合。
文档编号G06F17/30GK103207858SQ20121000725
公开日2013年7月17日 申请日期2012年1月11日 优先权日2012年1月11日
发明者钟朝亮, 张军, 李邵明, 邹纲, 皮冰锋, 于浩, 松尾昭彦 申请人:富士通株式会社