论文部分内容阅读
在面向服务的软件工程中,面向服务的架构(SOA)和微服务架构(MSA)的广泛应用促进了 Web服务、云服务以及基于服务的系统(SBS)的快速增长。数量众多的web服务和云服务已经部署在世界各地。随着功能属性相同而具有不同质量值的web服务数量的快速增长,发现合适的web服务变得愈加困难和重要。因此,web服务推荐已经成为重要的研究课题,同时具有强烈的现实意义。现有的web服务推荐方法使用了 Skyline、协同过滤以及基于内容的推荐技术。基于Skyline的推荐技术主要使用Skyline技术从大量候选服务中选出那些具有最佳全局QoS值的服务推荐给用户。基于协同过滤的推荐技术主要根据用户的历史行为数据,为目标用户甄别出邻居用户集合,最后基于该集合为目标用户预测服务QoS值,选择出Top-k服务推荐给用户。基于内容的推荐技术直接根据用户的历史行为数据为用户选择那些相似的服务进行推荐。然而,这些方法都没有解决一个关键的、基础的问题:在构建SBS之前,如何根据一个系统工程师的服务质量(例如:响应时间,可靠性等等)约束来推荐web服务?与此同时,现有的绝大多数研究工作都没有考虑到另外一个问题:在SBS构建成功后,若某服务的QoS值发生变化或者产生一个新服务,如何通知系统工程师对SBS进行优化。此时需要甄选出合适的系统工程师将新服务推荐给这些系统工程师。所以在本文中,SBS系统构建之前,我们提出了两种以用户兴趣为中心、以用户为导向的个性化web服务推荐方法,分别是KNN-based方法和DSL-based方法。其中KNN-based方法使用了 k最近邻技术来寻找那些在质量属性上与系统工程师质量约束最为相似的web服务。此外,DSL-based方法则是根据系统工程师的质量约束,使用Dynamic Skyline技术来发现那些具有代表性的web服务,即那些没有被其它任何web服务支配过的服务。同时为了克服两种基本方法的缺陷,我们提出了两种基于KNN-Based和DSL-Based的混合方法,分别为KNN-DSL以及DSL-KNN。当然在SBS构建成功之后,我们同样提出了两种以用户兴趣为中心、以服务为导向的个性化web服务推荐方法,分别为KNN-Based方法和RSL-Based方法。其中KNN-Based方法类似,RSL-Based方法则是根据改变之后的新服务的服务质量,使用了 Reverse Skyline技术来发现那些具有“代表性”的系统工程师,也就是对于选中的系统工程师来说,新服务没有被其他任何老的候选服务所支配。同样的两种混合方法被提出以克服基本方法的缺陷,分别为KNN-RSL和RSL-KNN。最后基于QWS数据集(包含了 2507条真实世界的web服务记录)的大量实验有效地论证了本文方法的有效性和效率。