基于协同过滤的Web服务QoS预测

2014-02-10 21:39陈唯
科技创新与应用 2014年5期
关键词:调用服务质量协同

摘 要:服务质量(Quality of Service,QoS)是 Web 服务选择的关键指标。传统的用于Web 服务选择的QoS 值都是静态的历史记录,没有考虑对于同一个服务,不同用户获得的QoS值之间的差异性。近年来,出现了各种各样的针对用户的个性化 QoS 预测算法。文章将浅析如何将协同过滤算法应用到个性化的 QoS 预测当中。

关键词:Web 服务;服务质量;协同过滤;QoS 预测 1 引言

Web服务是一个或一组通过互联网提供的软件功能,它对外公布调用该功能的地址和接口,任何用户都可以通过互联网调用Web服务。因为Web服务具有的低耦合,易重用,可组合等特性,使得其在面向服务的体系结构(SOA)中得到了广泛的应用。并且,随着互联网尤其是云计算的不断发展和成熟,Web服务不仅被运用在构建企业级的软件系统,也越来越多的被运用在互联网应用当中。

单个的Web服务通常只能实现一个或几个比较简单的功能。为了满足较为复杂的业务需求,需要组合多个Web服务来实现。随着Web服务数量的不断增长,可供选择的Web服务越来越多,从中选择出最合适的Web服务进行组合越来越成为一个巨大的挑战。除了满足功能性的需求之外,通常还需要Web服务的QoS能够达到最优。又由于许多服务的QoS值具有动态变化的特性,所以准确的预测服务的QoS值显得尤为重要。

2 服务质量

服务质量,也即Quality of Service,简称QoS。顾名思义,QoS主要反应了Web服务在质量上的水平高低,涵盖了服务的多个方面的度量,是用户进行Web服务选择和服务组合的重要依据。根据万维网联盟(W3C)给出的官方定义,QoS主要分为性能,可靠性,安全性以及特定应用相关的其它属性。而根据QoS值是否经常变化以及是否对于不同的用户经常表现出不同的QoS值的特点,又可以把QoS属性分为动态属性和静态属性两种。比如,响应时间(Response Time),表示用户从发出Web服务的调用请求开始到收到服务返回的结果所花费的总时间。由于用户所处区域的网络状况的不同,可能导师响应时间有很大的变化。对于A用户来说响应时间较好的一个服务,对于另一个区域的B用户却不一定具有较好的响应时间。类似的还有吞吐量,也具有动态变化的特性。所以,对于这类动态变化的QoS属性,需要针对不同的用户进行个性化的QoS预测。而对于比如服务的可用性这类QoS属性,则相对固定,可以直接通过

3 基于协同过滤的QoS预测

协同过滤算法最初被用在电子商务的推荐系统中,比如Amazon公司,通过利用某一个用户对商品的历史评价数据以及和他相似的用户的评价数据来预测其可能感兴趣的商品,从而进行精准的商品推荐。最近几年协同过滤算法开始被用于预测Web服务的QoS值,用户调用服务后的QoS记录被等价成电子商务系统中用户对商品的评分。利用用户调用Web服务的历史QoS值来计算用户之间以及Web服务之间的相似度,然后选择相似度最高的几个用户或服务的QoS记录来进行QoS值的预测。

3.1 问题描述

表示n个Web服务, 表示m个用户。对于每个服务Si都有多个QoS属性,比如响应时间,吞吐量,可用性等。这些QoS属性中,有一些是相对固定的,比如可用性,这类QoS可以直接从服务提供商那里获取。但是如响应时间这类动态变化的QoS属性,其QoS值可能因调用用户的不同而变化。因此需要把用户的特征考虑进来从而进行个性化的QoS预测以及Web服务推荐。为了后面表述的方便,我们在后面的部分将只选取响应时间这一个动态QoS属性作为研究对象,在默认情况下提及的QoS就将指代响应时间。对于其它的动态QoS其预测方法是一样的。

表示一个n*m的用户-服务的二维矩阵,就像电子商务推荐系统中的用户-商品服务一样。其中,r(ui,sj)表示一条QoS记录,即用户ui最近一次调用服务si时得到的QoS值。如果用户ui没有调用过服务sj,那么r(ui,sj)的值被标记为null。这部分缺失的QoS值记录就是我们需要进行预测的部分。

QoS预测算法利用这些已有的历史QoS记录来预测用户调用一个未使用过的Web服务时可能的QoS值。该用户被称为目标用户,该服务被称为目标服务。

3.2 相似度计算

相似度计算是利用协同过滤算法进行QoS预测的关键步骤之一。相似度算法的好坏将直接影响到协同过滤的效果。最常用的相似度计算方法是基于皮尔逊相关系数的相似度算法。如式(1)所示。其中Sim(ui,uj)表示用户ui和uj之间的相似度值,取值范围从-1到1。-1代表完全的不同,1代表完全的相同,数值越大相似度也越大。S表示用户ui和uj共同调用过的服务的集合,r(ui,s)表示用户ui对服务s的评分。ri和rj分别表示用户ui和uj共同调用过服务的平均值。

3.3 预测QoS值

利用用户之间的相似度以及Web 服务之间的相似度,就可以预测一个目标用户对目标商品的可能的评分值。为了预测目标用户调用目标服务时的 QoS 值,通常选取与目标用户最相似的 k 个服务和用户参与最终 QoS 值的预测。

利用用户之间相似度预测 QoS 值的计算公式如式(3)所示。其中u表示所選则的 k 个相似用户的获得的历史 QoS 值的平均值。

4 结束语

采用协同过滤的方法进行 QoS 预测充分的考虑了用户以及服务之间的差异性和相似性,利用用户之间以及服务之间的相似度来对目标用户可能获得的 QoS 值进行预测。这种预测方法不仅在实现上比较简单,并且能够达到很高的预测效率,而且变量 k 和变量λ的设置也是的算法具有了很大的灵活性,能够根据不同的情况进行调整。

作者简介:陈唯(1989-),男,湖北省襄阳市,同济大学软件学院研究生在读,硕士,研究方向:Web 服务组合。

猜你喜欢
调用服务质量协同
蜀道难:车与路的协同进化
核电项目物项调用管理的应用研究
论如何提升博物馆人性化公共服务质量
“四化”协同才有出路
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究
三医联动 协同创新
倾听患者心声 提高服务质量
坚持履职尽责 提升服务质量
协同进化