周宇
一、引言
Web服务是一种分布式计算技术,具有自包含、自描述、封装性、可重用和可组合、可互操作、开放、松散耦合的特点,可应用于开放数据资源的共享与交换。由于网络的动态性和不可预知性,以及Web协议的性能及安全问题,服务质量(QoS)将变成衡量和判定Web服务可用性和效用的重要因素。
二、Web服务质量指标
1、服务可用性:服务的可用性描述,可用性是质量的一个方面,指服务是否存在或是否已就绪可供立即使用。可用性表示服务可用的可能性。较大的值表示服务一直可供使用,而较小的值表示无法预知在某个特定时刻服务是否可用。2、服务可访问性:服务的可访问性描述,可访问性是服务质量的一个方面,表示能够为服务请求提供服务的程度。它可以表示为一种可能性尺度,用来表示在某个时间点上成功地实例化服务的成功率或机会。3、服务性能指标:性能指标是服务质量的一个方面,可以根据吞吐量和响应时间对其进行测量。吞吐量表示在给定时间段内被服务的数据服务请求数,响应时间是发送请求和接收响应之间的往返时间。吞吐量的值较大且响应时间的值较小表示服务性能良好。4、服务安全性:服务支持的安全操作描述,安全性是服务质量的一个方面,通过验证涉及到的各方、对消息加密以及提供访问控制来提供机密性和不可抵赖性。根据服务请求者的不同,服务提供者可以用不同的方法来提供安全性,所提供的安全性也可以有不同的级别。5、服务可靠性:服务的可靠性特征描述,可靠性是服务质量的一个方面,表示能够维护服务和服务质量的程度。每月或每年的失效次数是衡量数据服务可靠性的尺度。在另一种意义上,可靠性是指服务请求者和服务提供者发送和接收的消息的有保证和有序的传送。
三、Web服务质量评价方法
由于QoS属性包括的因素较多,考虑到实用性,本文把Web服务的QoS属性描述为一个由四个分量构成的一个四维向量Q={T,R,A,S},每个分量都有自己的计算方法和度量单位,其中各分量评价指标为:
1)响应时间(T)
服务请求者和服务提供者之间调用和传送服务所花的时间,包括服务时间和来回通信所用的时间。可以描述为:
T=TS(X)+TC(X)…
(1)
式中:TS(X)—服务时间;TC(X)—通信时间。
2)可靠性(R)
表示请求者调用某个Web服务,并能够成功接收到响应的概率。高质量的Web服务应该是可靠的、稳定的,可靠性直接影响请求者对Web服务提供者的评价。可以描述为:
R=成功执行次数/服务被调用的次数
…(2)
3)可用性(A)
Web服务在指定的θ时间段内可访问的概率。
4)安全性(S)
安全性反映访问所提供的信息交互的安全程度,南访问提供者发布。安全性是Web服务质量的一个方面,通过验证涉及到的各方、对消息加密以及提供访问控制来提供机密性和不可抵赖性,防止恶意的服务请求。本文认为“安全性”不能用简单的等级来描述,它的取值应在闭区间[0,1]上。其中,0代表不安全,1代表理论上的绝对安全。那么,(0,1)代表“安全性”的真实区间。实际上,Web服务的“安全性”恰恰是在这个真实区间上的模糊值。假设一组服务,用S={S1,S2,…,Sn}表示,这n个服务提供同一种功能,选取了m个指标来衡量服务的QoS性能,那么可以得到下面的矩阵Q,在矩阵Q中,每一行代表一个服务对应于每个QoS指标的值。而每一列代表所有服务在该项指标上的值。
式中:qnm—第n个服务中第m个QoS指标的值。
由于衡量服务质量的指标有两种,一种是正向质量指标,即指标值越大,服务质量越好;另一种是负向质量指标,指标值越大,服务质量越差。因此,在对矩阵Q的每一项进行标准化时,对于正向指标和负向指标分别采用公式(4)和公式(5)进行处理:
通过这公式(4)和公式(5)的计算,可以得到一个新的矩阵Q':
最后,可以用公式(7)计算每个服务S的QoS的综合评价值:
式中:wij—第i个服务中第j个QoS指标的权值。
下面通过Web服务实例来具体说明每个Web服务的QoS的综合评价值的计算过程。表1中给出了5个服务的测试用例数据表,每个服务使用的权值向量为:W={O.2,0.3,0.3,0.2}。
由表1可得矩阵
然后对矩阵Q的每一项指标进行标准化处理。其中,响应时间属于负向质量指标,应采用公式(5)进行标准化处理;可靠性、安全性和成功调用次数属于正向质量指标,应采用公式(4)进行标准化处理。可以得到新的矩阵:
最后,用公式(7)计算每个服务的QoS的综合评价值如表2所示:
从表2中的QoS值可以看出,服务2最优,服务3最差。
四、Web服务质量分析
为了对Web服务质量进行定量分析,作者在实验环境中构建某示例数据的Web服务,并采用JMeter工具对其Web服务质量进行测试。其中,示例数据源采用MySQL数据库,数据库与Web服务适配功能由ws02dataservices-2.6,0提供,采用JMeter2.4分别模拟多用户产生并发请求,统计计算不同测试条件下的响应时间、可靠性和可用性。在实验室环境下,Weh服务可靠性与可用性较高,极少出现服务访问失败的情况,因此后文仅对某Web服务的响应时间进行分析。图1为数据查询服务的响应时间图,由图可见,Web服务的响应时间随Web服务响应的数据量增大而增大。在相同数据量情况下,并发数越大,响应时间越长。响应时间并未随数据量增大和并发数增大产生明显劣化,具有一定的并发处理能力。在非并发条件下,Web服务方式的查询与Console的响应时间相差较小。
由此可见,通过使用JMeter工具可以对Web服务并发条件下的响应时间、可靠性和可用性进行定量的分析测试,为进行Web服务质量评价提供数据支撑。
注:console为MySQL Console直接操作数据库表的性能值,数据量1 000以下的响应时间小于lOms。
图1 示例Web服务数据查询响应时间图
五、结论
随着Web服务的广泛应用,对大量Web服务质量进行综合衡量和判定也显得越发重要。本文首先介绍了Web服务质量的典型指标因素,然后探讨了采用响应时间、可靠性、可用性及安全性因素对Web服务质量进行综合评价的过程和方法,最后使用JMeter工具对现有Web服务进行并发条件下的测试与分析,为定量分析Web服务提供依据。