面向服务体系结构中的QoS评价方法研究

来源 :科协论坛·下半月 | 被引量 : 0次 | 上传用户:Janette
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:面向服务的体系结构具有粗粒度、松耦合、可重用性等特性,目前服务状态的评价方法受到各种条件约束,使得服务的评价不甚准确。提出一种基于事件的非功能属性(QoS)评价和更新方法,可以较为有效地对服务运行时间、服务可靠性和服务可用性进行评价。
  关键词:SOA QoS 评价 更新
  中图分类号:TP393.09 文献标识码:A 文章编号:1007-3973(2013)003-132-02
  当前面向服务体系结构(Service-Oriented Architecture,SOA)在各个领域得到实际运用,用户对于服务的可靠性和可用性也提出了更高的要求。在服务的执行过程中,需要获知服务的QoS属性值(对于某些QoS属性来说,它需要一个长期的监控过程),从而得到一个稳定的能够反映服务真实状况的QoS。本文研究了面向服务体系结构中服务的QoS的评价和更新算法。
  1 QoS简介
  QoS即quality of service,直译即服务质量,其概念应用于计算机的各个领域。随着发展和演变,其含义发生了一定变化,常用来描述除了功能以外的用于描述服务性能的部分,在这里将其统称为非功能属性,其主要指服务在运行过程中表现出的一系列反映服务优劣的指标,如:服务的花费、运行时间、可用性、可靠性、可移植性、信誉度、性能、安全性等等。
  QoS是评价和衡量服务的重要标准,它有助于获知服务目前的状态;另外,QoS偏好的服务具有较高的生存性,获取QoS的属性值有助于判定服务的好与坏;同时服务选择是基于QoS进行的,对于QoS进行监控有利于对服务的选择,从而获得生存性高的服务;对于某些功能性执行顺利,但是QoS不合格的服务(如执行时间过长,单次执行费用过高,但是仍然在有效执行的服务),也需要以此为依据对服务进行服务停用、重启等措施。
  2 服务评价方法
  QoS可以用来评价服务的好坏,如所用时间短的服务好,可用性和可靠性高的服务好,价格便宜的服务好,但是这些抽象的不具体的描述不足以从数学角度来说明服务的好坏程度。尽管取得了同种完成相同功能的不同服务的QoS属性值,但是距离对比服务谁好谁坏还有距离,因为还有这样的问题:如果说服务A的服务时间比服务B的服务时间短,并且可用性比B高,那么,毫无疑问,服务A确实比服务B好,也就是说,如果服务A的每一个属性都比服务B要优,那么服务B比服务A好。但是对于服务而言,有多个QoS属性,要求一个服务比其它所有服务的每一个属性都强,这通常不太现实。这样就出现了以下的情况,服务A的服务时间比服务B短,但是服务B的可用性比服务A高,两个服务之间的QoS互有优劣。这样对于服务使用者来说,他仍然要在这些服务之中进行抉择,这样就需要在获知服务QoS的基础之上有一个评价的标准,本文给出了QoS评价函数作为解决方案。
  当然,不同的用户对服务有着不同的评价标准,统一的使用标准是不合适的。为此,这里给出一个灵活的可由用户定义的评价方法。
  2.1 QoS属性值的归一化处理
  在许多QoS的研究中,都给出了先对各个QoS属性值归一化,然后加权求和来获得服务优先度数值的算法.不同的QoS属性有不同的取值范围,服务时间有可能从0到无穷大,而对于可用性和可靠性等属性却只有0到1。但是又需要把这些拥有参差不齐的范围的属性值拿来一起做比较,这样不方便比较。因此,首先统一规范把所有的范围映射到[0,1]的范围来,然后再把经过归一化的数值拿到评估函数中做判定,这样更容易理解。
  在这一节中,假定当前考察的服务有n个QoS属性。其第i个QoS属性值最大值为Qi-max,如果其最大值为无穷则取用户允许最大值为Qi-max,最小值为Qi-min,当前取值为Qi。
  有的属性数值越大,代表服务越好,我们称之为正向属性,反之,我们称之为负向属性。归一化也对这两种属性有所区分。对它们用如下的方法对其进行归一化处理,该服务第i个QoS属性值归一化后的值记为Vi。
  正向属性的归一化:
  (1)
  负向属性的归一化:
  (2)
  不同的用户对于不同的QoS属性值有不同的权重,假定当前用户对第i个QoS属性的权重为Wi,其中Wj=1,Wj∈[0,1]。通过以下函数对服务s做出评分。
  QoSScore(s)=Vj*Wj (3)
  这类算法能满足不同用户的需求,也能支持同一用户不同时期对需求的变更。因为用户可以自己定义不同QoS属性的权值W。但是这也还有一定的局限性,因为它没有考虑到一些特殊情况,例如:对于服务时间而言,用户对服务时间有一定的容忍限度,超过这个限度,用户会选择放弃该服务。但是用上述方法的话,仍然能得到一个优先值,当服务时间过长,而对于其它QoS属性值很好的情况下,这类评价函数仍然会告知用户选中该服务。对于其它属性也有一样的情况,如果可用性低到一定程度,那么评价函数就应该主动放弃该服务,而不是继续进行评分比较,因为其它的属性可能会拉高评分而导致最终被选中。
  2.2 越界函数设置
  假设用户对每一个QoS属性都有一个容忍限度,只要有某个QoS属性值超过这个容忍限度,那么就认为该服务不可用。评价函数应该对它做出抛弃处理(即评价值应为0),而不是继续给出评价值,这样可以屏蔽上面分析的极端情况的发生。
  为每一个用户有范围限制的属性值设置越界函数,若该属性值在取值区间以内,那么该函数值为1,在取值区间以外,则为0,函数表达式如下:
  (4)
  用此越界函数与每一个与上述评价后的分数相乘,便可以有效过滤掉有不合格属性值的服务,使其得分为0。这意味着用户不容忍的服务不会被选中。最后经过修改的评价函数也变为:   (5)
  这个改进有效地避免了由于某些属性越过用户容忍限制而被采用的情况,也有效避免了属性值超越正常范围而带来的评判误导。
  3 QoS的更新方法
  QoS的监测是一个长期的过程,随着服务的运行,在多次监测过程中会得到多个不同的结果。因为服务在不同的时间,不同的运行环境和条件下运行的状态和属性也有所差别。另外,现在所观测到的QoS属性值与以前所收集到的也有差别。而过去的(尤其是经过长时间观察的)QoS属性往往从长时间的角度反应了服务稳定的QoS属性,现行监测到的QoS则反映了变化趋向。监测QoS的目的有两个:一个是让用户了解服务目前的运行状况,对于这个目的,只需要给出现行的QoS属性值则可,第二个目的是进行服务选择,对于第二点来说,现行的这一次所得到的QoS属性往往不能很好地反应服务的真实情况,因为它带有偶然性,这样需要从以往观测到的QoS属性值中找到一个权衡反应服务QoS属性的最佳方法,并根据最新监测到的QoS属性值对这个反应服务QoS的属性值进行更新。
  本文把传统的统计学方法用于更新算法,在对某服务监控某个QoS属性监控N次后,计算其期望E和方差D,用E来反映这个属性值。下一次监控到的该属性值存在一定变动,如果这个变动在预期变动范围以内,则认为当前的期望值可以反映当前服务的状态,从而不对其进行更新。但是如果超出了这个范围,则认为该值出现了变动趋向,就对其进行更新。
  为了使得更新算法可以反应用户对变动范围的差异,我们使用契比雪夫不等式来描述用户对于当前属性值的变动容忍范围[E-,E+],式子中的 为用户的置信度,用户可以根据自身的情况设定不同的取值,从而能够适应不同用户的变化。一旦此次变动超出此范围,则进行更新,方法是把这一次监控所得值纳入考虑范围,重新计算期望E和方差D,用这一次计算的期望E反映服务状态。
  4 结束语
  本文主要从非功能属性评价方面来研究SOA服务的QoS评价与更,提出一种有效的评价方法。通过设置越界函数,避免了评判误导,并利用统计学的方法,有效指导更新的时机,从而使服务质量更加有效和可靠。
  参考文献:
  [1] Tsesmetzis D,Roussaki I,Sykas E.QoS-aware service evaluation and selection [J].European Journal of Operational Research,2007(7):1-12.
  [2] 赵生慧,吴国新,张三峰.SOA的QoS研究综述[J].计算机科学,2009(4):36.
  [3] 黎玉琴.Web服务模型的QoS研究[D].西北师范大学,2009.
  [4] 黄黎.面向服务体系结构中的服务监控与重启技术研究[D].2012.
其他文献