一种在线的服务组合推荐系统及其推荐方法

文档序号:7708052阅读:104来源:国知局
专利名称:一种在线的服务组合推荐系统及其推荐方法
技术领域
本发明属于Web服务领域,主要利用了贝叶斯原理与A-Star启发式搜索方法,实现了一种针对服务组合的在线推荐机制。
背景技术
在最近的十年里,面向服务的思想通过不断的发展,已经被大多数人所接受,而由面向服务的思想发展而来的新型分布式计算模型SOA (Oriented Architecture,面向服务的体系架构),已经在电子商务、系统集成等领域起到了越来越重要的作用。在工业界, Microsoft, IBM、ΒΕΑ、Oracle等软件商都发布了各自的SOA战略,并建议用户在建设企业 IT系统时应该优先考虑SOA ;在学术界,研究人员组织了众多的服务计算技术会议,并把焦点集中在SOA的研究上。根据美国著名的IT市场研究与顾问咨询公司Gartner Group的预测,SOA将成为新的占绝对优势的软件工程实践方法,并将结束传统的整体软件体系架构长达40年的统治地位。在SOA中,服务是功能组件的基本单元,而通过发现和组合已有的服务,可以满足用户的各种新需求。Web服务是由服务提供商发布在互联网上的功能体,通过调用Web服务可以实现一定的功能,而通过组合多个Web服务,就能实现更多的功能,然而,随着SOA的迅速普及,互联网上的Web服务数量在以非常快的速度增加,这导致了用户通过人工的方式发现和组合现有的服务来实现预期的功能变得越来越困难。因此,通过自动的方式主动的向用户推荐实现预期功能的服务组合,已经成为了学术界和工业界关注的问题。目前对于服务组合推荐的研究,都是基于服务功能和质量等显式属性进行的,但是服务的显式属性并不能完全反映用户的需求,对于用户偏好等隐式属性则无法体现;另外,过去的研究往往都是离线完成的,所以不能在用户组合服务的过程中及时的为用户推荐服务组合。因此,一种能充分体现用户需求,既能考虑服务的显式属性,又能兼顾服务的隐式属性,同时又可以及时根据用户的选择做出调整的在线服务组合推荐机制,已成为目前学术界与工业界的急切需要解决的问题。

发明内容
本发明针对上述的技术缺陷,提出一种在线的服务组合推荐系统以及推荐方法。为了解决上述技术问题,本发明的技术方案如下
一种在线的服务组合推荐系统,包括使用次数计数器、服务查找树构造器、服务组合推荐器,所述使用次数计数器用于从服务组合使用日志库中获取服务组合的使用记录,并统计各个服务组合的使用次数;所述服务查找树构造器用于从所述使用次数计数器获取服务组合的使用次数以及从服务注册中心获取对应服务组合的QoS值,通过所述服务组合的使用次数和所述对应的服务组合QoS值,计算服务组合的/^(5·)值,并构造服务组合的服务查找树T ;所述服务组合推荐器根据获取所述服务组合的服务查找树及已组合而未完成的服务组合前缀片段q,运用A-star启发式搜索,得出服务组合方案;
所述/^⑶值为服务组合的QoS值和对应服务组合使用次数的线性组合α QoS(S) X β U(S), α +β =I0作为可选方案,所述服务查找树T中树上每个节点包含一个服务以及一个/值,所述节点如果为叶子节点,则所述/值表示服务组合的/7C )值,所述节点如果为非叶子节点, 则所述/值取其儿子节点中最大的/值;所述服务组合为从根节点到一个叶子节点路径上的服务集合。一种在线的服务组合推荐方法,包括如下步骤
1)从服务组合使用日志库中获取服务组合的使用记录,并统计各个服务组合的使用次数;
2)根据所述服务组合的使用次数以及从服务注册中心获取得到的对应服务组合的 QoS值,计算服务组合的PC )值,并构造服务组合的服务查找树T ;
3)根据已组合而未完成的服务组合前缀片段q,对所述服务查找树T运用A-star启发式搜索,得出服务组合方案;
所述/^⑶值为服务组合的QoS值和对应服务组合使用次数的线性组合 α QoS(S) X β U(S), α +β =I0作为可选方案,上述推荐方法中所述服务查找树中树上每个节点包含一个服务以及一个/值,所述节点如果为叶子节点,则所述/值表示服务组合的/7C )值,所述节点如果为非叶子节点,则所述/值取其儿子节点中最大的/值;所述服务组合为从根节点到一个叶子节点路径上的服务集合。作为可选方案,上述推荐方法中所述步骤2)中构造服务组合的服务查找树的步骤包括
31)获取所有已使用的服务组合的集合R;
32)初始化只有根节点的服务查找树Τ,并在根节点中存储占位符的假服务及设置 /值为1 ;
33)循环遍历所述服务组合的集合R中的服务组合S,计算服务组合的/^(5·)值;
34)从所述根节点开始将所述服务组合S按先后顺序作为父子关系添加到所述树T中, 如果所述服务组合S中某个服务与其兄弟节点存储的服务相同,则合并此节点;
35)在最后一个服务下面添加儿子节点,并在此节点中存储占位符的假服务“$”; 36 )在上述新增的节点中存储/值;
37)判断服务组合的集合R是否还有未处理的服务组合,如有则返回步骤33),如没有则输出服务查找树Τ。作为可选方案,上述推荐方法中对所述服务查找树T运用A-star启发式搜索,包括如下步骤
61)获取已组合而未完成的服务组合前缀片段q,和所述服务查找树T;
62)初始化以χ值大为优先的优先队列Q,并加入元素x=l,i=l,n=T的根节点;
63)所述优先队列Q中取出队列头元素c,并对于节点c.η的每个儿子节点η’,将元素 x=c. χX Sim(WSqj^i, c. n. WS) Xn' . f/c. η. f), i=c. i+1, n=n,的节点加入所述优先队列 Q ; 如果c. i等于所述服务组合前缀片段q的长度,则从节点c. η开始,找一条节点上的f值最大的路径S’,并将S’加入集合SS中;如果所述优先队列Q不为空且集合SS的元素个数小于阀值,则循环步骤63),否则跳出循环;所述Sim(WStl,ai,c. η. WS),表示服务WSt^i和服务c. n. WS之间的相似度,取值范围为0到1之间;所述WSy. i表示q中第c. i个服务;
64)从所述集合 SS 中找出使 Sim(WStuiWSu) X …XSim(WStljtlllWSsjtll) XP(S)的值最大的服务组合S ;输出所述服务组合S。本发明的有益效果在于
1)以服务的QoS结合服务的使用次数作为服务好坏的评价标准,从而避免了QoS的不可共度性和矛盾性带来的问题;
2)为用户推荐可以替代已组合服务的更好的服务,并且能将未组合完成的服务组合扩展为功能完整的服务组合;
3)快速的为用户推荐服务组合,并且可以通过记录搜索状态,实现当用户修改服务组合时,即时的更新推荐的服务组合。


图1为整体结构图2为服务查找树构造器内部流程图; 图3为服务组合推荐器内部流程图; 图4为服务查找树示意图。
具体实施例方式下面将结合附图和具体实施例对本发明做进一步说明。在整个系统中,将Web服务表示为以下形式
Web服务WS=(N,Cl, I,F, 0,CO, QoS),其中N为Web服务的名称,CI为服务执行的前置条件(也称为先决条件)的列表,I为服务的输入参数列表,F为服务的功能,0为服务的输出参数列表,CO为服务执行的后置条件列表,QoS为服务的QoS质量。只考虑服务间只存在顺序关系的服务组合,并将其表示为以下形式
服务组合S=(WSi,WS2,…,WSn),其中WSi为按顺序执行的第i个Web服务,并且满足
IiC (O1 U O2 U ... U Oh)和 Cl" (CO1 Λ CO2 Λ …Λ COi^1)
的约束。作为推荐的主要依据的服务间相似度以及服务组合的QoS和使用次数表示为以下形式
服务间相似度AinKWSi,WSj),表示服务WSi和服务Wh之间的相似度,取值范围为 [O, 1]。服务组合的QoS =QoS (S) = Π ^oS (WSs;i),其中QoS(WSy)为S中第i个服务的QoS质量。服务组合使用次数U(S)= Σ A(S),其中Ui (S)为用户i使用服务组合S的次数。设用户已组合的未完成的服务组合前缀片段为^本推荐系统的目标是在所有使用过的历史服务组合中找到服务组合&使概率/^4 )最大,其中&是以7为前缀的一个服务组合。根据贝叶斯定理,概率可表示为
权利要求
1.一种在线的服务组合推荐系统,其特征在于,包括使用次数计数器、服务查找树构造器、服务组合推荐器,所述使用次数计数器用于从服务组合使用日志库中获取服务组合的使用记录,并统计各个服务组合的使用次数;所述服务查找树构造器用于从所述使用次数计数器获取服务组合的使用次数以及从服务注册中心获取对应服务组合的QoS值,通过所述服务组合的使用次数和所述对应的服务组合QoS值,计算服务组合的PC )值,并构造服务组合的服务查找树T ;所述服务组合推荐器根据获取所述服务组合的服务查找树及已组合而未完成的服务组合前缀片段q,运用A-star启发式搜索,得出服务组合方案;所述/^⑶值为服务组合的QoS值和对应服务组合使用次数的线性组合 α QoS(S) X β U(S), α +β =I0
2.根据权利要求1所述一种在线的服务组合推荐系统,其特征在于,所述服务查找树T 中树上每个节点包含一个服务以及一个/值,所述节点如果为叶子节点,则所述/值表示服务组合的/^(5·)值,所述节点如果为非叶子节点,则所述/值取其儿子节点中最大的/值;所述服务组合为从根节点到一个叶子节点路径上的服务集合。
3.—种在线的服务组合推荐方法,其特征在于,包括如下步骤从服务组合使用日志库中获取服务组合的使用记录,并统计各个服务组合的使用次数;根据所述服务组合的使用次数以及从服务注册中心获取得到的对应服务组合的QoS 值,计算服务组合的PC )值,并构造服务组合的服务查找树T ;根据已组合而未完成的服务组合前缀片段q,对所述服务查找树T运用A-star启发式搜索,得出服务组合方案;所述/^⑶值为服务组合的QoS值和对应服务组合使用次数的线性组合 α QoS(S) X β U(S), α +β =I0
4.根据权利要求3所述的一种在线的服务组合推荐方法,其特征在于,所述服务查找树中树上每个节点包含一个服务以及一个/值,所述节点如果为叶子节点,则所述/值表示服务组合的/^(5·)值,所述节点如果为非叶子节点,则所述/值取其儿子节点中最大的/值; 所述服务组合为从根节点到一个叶子节点路径上的服务集合。
5.根据权利要求3所述的一种在线的服务组合推荐方法,其特征在于,所述步骤2)中构造服务组合的服务查找树的步骤包括31)获取所有已使用的服务组合的集合R;32)初始化只有根节点的服务查找树Τ,并在根节点中存储占位符的假服务及设置 /值为1 ;33)循环遍历所述服务组合的集合R中的服务组合S,计算服务组合的/^(5·)值;34)从所述根节点开始将所述服务组合S按先后顺序作为父子关系添加到所述树T中, 如果所述服务组合S中某个服务与其兄弟节点存储的服务相同,则合并此节点;35)在最后一个服务下面添加儿子节点,并在此节点中存储占位符的假服务“$”;36 )在上述新增的节点中存储/值;37)判断服务组合的集合R是否还有未处理的服务组合,如有则返回步骤33),如没有则输出服务查找树Τ。
6.根据权利要求4或5所述的一种在线的服务组合推荐方法,其特征在于,所述步骤3)中对所述服务查找树T运用A-star启发式搜索,包括如下步骤61)获取已组合而未完成的服务组合前缀片段q,和所述服务查找树T;62)初始化以χ值大为优先的优先队列Q,并加入元素x=l,i=l,n=T的根节点;63)所述优先队列Q中取出队列头元素c,并对于节点c.η的每个儿子节点η’,将元素 x=c. χX Sim(WSqj^i, c. n. WS) Xn' . f/c. η. f), i=c. i+1, n=n,的节点加入所述优先队列 Q ; 如果c. i等于所述服务组合前缀片段q的长度,则从节点c. η开始,找一条节点上的f值最大的路径S’,并将S’加入集合SS中;如果所述优先队列Q不为空且集合SS的元素个数小于阀值,则循环步骤63),否则跳出循环;所述Sim(WStl,ai,c. η. WS),表示服务WSt^i和服务 c. n. WS之间的相似度,取值范围为0到1之间;所述WSy. i表示q中第c. i个服务;64)从所述集合SS 中找出使 Sim(WStuiWSu) X …XSim(WStljtlllWSsjtll) XP(S)的值最大的服务组合S ;输出所述服务组合S。
全文摘要
本发明公开了一种在线的服务组合推荐系统以及推荐方法,包括使用次数计数器、服务查找树构造器、服务组合推荐器,使用次数计数器用于从服务组合使用日志库中获取服务组合的使用记录,并统计各个服务组合的使用次数;服务查找树构造器用于从使用次数计数器获取服务组合的使用次数以及从服务注册中心获取对应服务组合的QoS值,通过服务组合的使用次数和对应的服务组合QoS值,计算服务组合的P(S)值,并构造服务组合的服务查找树T;服务组合推荐器根据获取所述服务组合的服务查找树及已组合而未完成的服务组合前缀片段q,运用A-star启发式搜索,得出服务组合方案,从而为用户推荐可以替代已组合服务的更好的服务。
文档编号H04L29/08GK102231757SQ20111017763
公开日2011年11月2日 申请日期2011年6月29日 优先权日2011年6月29日
发明者吴健, 吴朝晖, 尹建伟, 李莹, 简恒懿, 邓水光 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1