基于协同过滤和slope one算法的web服务可靠性预测文献综述

 2022-08-01 21:43:12

文献综述

  1. 面向服务架构的概念

面向服务架构(SOA, service-oriented architecture)是近年来新兴的一种计算机软件开发方法。与传统开发方法不同的地方是,面向服务架构是一个组件模型,它通过一定的接口或者协议将不同的服务或者元件组合起来,从而形成一个新的、大型的系统。传统的开发方法如计算机辅助软件工程(CASE, Computer Aided Software Engineering)在开发独立的系统时具有一定的优势,但无法应付开放环境下的种种挑战[10]。相比之下,面向服务架构具有低耦合、高弹性、高灵活性、低成本等等特点,从而推动了分布式系统的开发。目前,面向服务架构已经在电子商务等领域得到了广泛的使用。

  1. web服务及可靠性的概念

面向服务架构中主要的角色有服务提供者(service provider)和服务消费者(service consumer)[10]。面向服务架构是一种思想,目前主要是通过web服务(web service)来实现,虽然现在两者同时被提及,但是两者有本质区别。SOA是一种指导原则,而web服务是具体的技术。目前web服务尚无标准的定义,根据万维网联盟(W3C, World Wide Web Consortium)的定义,web服务“是一个软件系统,用以支持网络间不同机器的互动操作”。而IBM的定义是“可以在因特网上通过程序调用的一组相关应用程序功能”。企业可以动态搭配 Web服务,从而通过最少量的编程来执行复杂事务。Web服务让全世界的买方和卖方彼此发现对方,动态地进行连接以及实时执行事务,而只需极少的人员交互作用[9]

在面向服务的架构下,开发者倾向于选择一定的服务进行组合完成开发。因此,作为服务消费者,在软件开发时选择使用高质量的web服务是至关重要的,因为这可以提高软件的稳定性,减少后期的错误,甚至是重造,从而减少时间与金钱的损失。在选择web服务时,一个重要的评价指标就是可靠性(reliability),web服务的可靠性是指web服务提供者提供的服务是否可以完成用户的操作,或者正确执行[13]。对此,IEEE标准的定义是“可靠性是在具体条件和时间下不会导致失败的概率”。但是,web服务可靠性并不是可以被直观发现的,因此可靠性的对立面——失败概率(failure rate)就成为了间接评价web服务的标准。而对于失败概率(failure rate),IEEE标准的定义是“在特定测量单元,如一段时间,一定次数的运行内,出现失败的概率”。由于失败概率相对可靠性而言更加具有可操作性,因此可以通过失败概率来衡量可靠性,失败概率越高,可靠性越低;反之,失败概率越低,可靠性越高。

3. web服务可靠性预测的方法

但是,对于服务消费者而言,通过参考失败概率来选择服务是一个黑盒(black box)过程,因为服务消费者无法直接知晓,也无法获取有效的数据进行准确的推测。此外,由于网络等环境因素、操作习惯等个人因素的影响,不同的用户调用同一个服务的可靠性可能是大相径庭的[2]。因此,从用户的角度出发,调用某一服务的可靠性预测(reliability prediction)急需被解决,因为这是在面向服务架构下开发者必须要面对的问题。传统的测试方法在面向服务架构的环境下可行性很低,原因在于:其一,web服务一般是属于不同的个人或者组织,且大多数是收费的;其二,web服务种类繁多,且同一功能或同属一类的web服务很多,换而言之,这些web服务互为替代品[1]。这两点使得传统的测试方法费时费力。

虽然传统的方法费时费力,但它可以收集尽可能多的、甚至是可得到的全部数据进行预测,因此准确性可以得到保证。如何对传统的方法进行改进,在尽可能减少时间和金钱成本的条件下,以及在数据稀少的前提下,做出准确的可靠性预测成为了目前该领域研究的热点问题。目前,主流思想是收集不同用户调用不同服务的过往数据,通过一定的模型和方法,从而推测特定用户调用特定服务的可靠性,用户基于此做出服务选择。服务可靠性预测的研究大多借鉴了推荐系统(recommender system)的算法和思想,目前,主要有如下几种主流的可靠性预测方法:

3.1 基于用户或物品的协同过滤(user-based or item-based collaborative filtering)

基于用户和物品的协同过滤统称为基于记忆的协同过滤(memory-based collaborative filtering)。该方法是在推荐系统中广泛使用的一种方法,推荐系统被广泛地应用于亚马逊等电商网站、Netflix等电影网站、YouTube等视频网站,主要功能是进行相似性和个性化推荐[5]。在服务可靠性预测中,主流研究的思想是:假设有m个用户和n个服务,即构成了一个m行n列的mtimes;n的矩阵,矩阵中每一项的值代表失败概率。失败概率可以来自多个来源,比如像YouTube等分享类网站一样用户自行上传,也可以在客户端设置一定的监视器来进行检测和记录等等。这样,可靠性预测的问题就转化为通过矩阵中已知的数据来进行运算,求解出特定用户调用特定服务的失败概率,即特定的缺失值[1,2,4,8]

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。