不确定网络环境中网络服务评价和优选方法
技术领域
本发明属于网络服务及其应用领域,旨在为人们提供一种在不确定网络环境中对大量具有相同或相似功能和服务质量的网络服务进行评价和优选的方法。
背景技术
在网络环境中,网络服务具有很大的不确定性。用户在调用之前无法准确判断该网络服务是否能够完全满足其功能和非功能(即服务质量)方面的需求。与可靠性的含义不同,网络服务的可信度反映了用户对该网络服务满足其功能和非功能需求的信任程度。可信度不高的网络服务可能给企业应用系统带来不可预知的,甚至是严重的后果。因此网络服务可信度是用户在选择网络服务过程中需要考虑的一个重要因素。
由于网络服务固有的不确定性,现有的服务查找、发现和匹配技术并不能保证获得的候选网络服务一定能够满足用户的功能和非功能需求。因此服务使用者在实际绑定和调用之前,有必要对这些候选网络服务进行评价和挑选。
目前国内外在网络服务的评价和选择方面的研究及应用还很不完善。美国亚利桑那州立大学的蔡维德教授等在大量相关工作的基础上提出了ASTRAR测试框架。ASTRAR方法基于群测试技术(Group Testing),能够实现测试用例的自动生成和执行,通过这些测试用例对网络服务进行测试,并根据测试结果来评价服务的优劣,再在此基础上进行选择(Tsai W T,CHENYinong,Paul R,HUANG Hai,ZHOU Xinyu,WEI Xiao.Adaptive Testing,Oracle Generation,and Test Case Ranking for Web Services.Proceedings of Annual InternationalConference on Computer Software and Applications.2005:101-106)。然而,他们的研究工作忽视了网络服务的不确定性。一方面由于网络的不稳定性(如网络阻塞、数据包丢失、病毒攻击等)给网络服务的输出结果和服务质量带来了不确定性,同时基于远端调用方式的黑盒测试方法加剧了这种不确定性;另一方面,在某些特定情况下,网络服务的输出结果可能本质上具有不可预知性(如提供股票价格预测或天气预报的网络服务)或者允许一定误差范围(如提供科学数值计算的网络服务)。我国华南理工大学的杨劲涛教授等提到了将模糊数学方法引入到软件系统测试中,指出测试用例对软件系统的测试输出存在某种模糊控制关系(杨劲涛,郭荷清.模糊关系在软件系统测试中的应用[J].华南理工大学学报(自然科学版).2004,32(10)51-55)。但是他们并没有给出模糊控制关系的算法描述和计算方法。
因此,理想的网络服务评价和选择方法应该充分考虑到网络服务输出结果的不确定性,需要刻画人们对具有不确定性的输出结果的判断,也就是需要对网络服务可信度进行定量度量,并根据可信度这一指标来评价大量候选的网络服务的优劣,进而从中优选出最理想的网络服务。
发明内容
本发明的目的是,在充分考虑网络服务不确定性的基础上,提出一种基于模糊分类技术的网络服务评价和优选方法及其相应的系统实现。本方法及其实现能够有效弥补现有服务选择方法对网络服务不确定性考虑不足的缺点,可以对网络服务的可信度进行定量测量,并且根据可信度这一指标来评价大量候选网络服务的优劣,进而从中优选出最理想的网络服务。
本发明的特征在于对于输出结果为数值型或者能通过某种映射对应到数值集的网络服务,所述方法在所述不确定网络环境中依次按以下步骤实现:
步骤(1).初始化
在服务器端设定:
网络服务描述文档,其中至少包括:功能、操作、参数以及数据结构,由网络管理员输入;
网络服务测试用例生成器,是一种在Microsoft.Net平台上用C#语言开发的测试数据生成工具,所生成的测试用例集为TC={TCi},i=1,2,...M;
候选服务发现器,根据设定的服务匹配算法从各种服务代理目录中查找发现并得到若干符合网络服务描述文档需求的候选服务,所述候选服务发现器采用双层P2P结构的语义服务发现模型,得到的候选服务集为IWS={IWSj},j=1,2,...N;
网络服务可信度测量模块,依次按以下步骤,把第i个测试用例输入给所述候选服务集中的第j个候选服务IWSj,j=1,2,...N,依次类推,得到一个候选服务集IWS的输出结果集O={Oi,j}:
第1步:初始化参数:
指定类别数C=2,类别1为“满意”类别,类别2为“不满意”类别,
设定:i=1,变量,n=N,其中N为候选服务集中候选服务的个数;
第2步:从测试用例集TC中,选取测试用例TCi,设定可信度阀值λi,j=1;
第3步:把测试用例TCi输入给候选服务IWSj,得到输出结果Oi,j;
第4步:判断j<n是否成立:若成立,则令j=j+1,执行第3步,否则,获取测试输出结果样本集Oi={Oi,j},转入第5步;
第5步:设定迭代停止阀值εi,设定“满意”类别和“不满意”类别的初始聚类原型矢量为Oi,1 0、Oi,2 0;
第6步:用模糊c均值算法(FCM)对所述输出样本集Oi={Oi,j)进行模糊类别分类,一直迭代至 FCM算法终止,其中,b是迭代次数,Oi,1 (b)表示对于满意类别1的输出结果,记录此时的模糊划分矩阵为Ui;
第7步:从第6步得到的模糊划分矩阵第一行Ui,1={μi,1,...μi,n}中,若存在k∈{1,2,...n),使得μi,k<λi,将IWSk从候选服务集IWS中剔除,将Oi,k从输出样本集Oi中剔除,且令n=n-1,程序跳转到步骤6;若对于任意k∈{1,2,...n),有μi,k≥λi,则执行下一步骤;
第8步:判断i<M是否成立:若成立,则令i=i+1,转到第2步;若不成立,则转入下一步:
第9步:得到每一个测试用例TCi下的Ui,1。对于那些在步骤7中已从候选服务集IWS中被剔除的候选服务IWSk,则令μi,k=0,i=1,2,...M。由此可以得到最终的测试可信度矩阵U*=[μi,k]M×N,以及期望标准输出集
步骤(2).按一下步骤对不确定网络环境中网络服务进行评价和优选:
步骤(2.1).向所述服务器输入网络服务描述文档;
步骤(2.2).所述网络服务测试用例生成器用测试用例生成算法产生测试用例集TC={TCi};
步骤(2.3).所述候选服务发现器根据服务匹配算法从各种服务代理目录中查找发现得到若干符合网络服务描述文档需求的候选服务集IWS={IWSj};
步骤(2.4).网络服务可信度测量模块根据输入的测试用例集和候选服务集利用网络服务可信度测量算法得到测试可信度矩阵U*=[μi,k]M×N以及期望标准输出集
步骤(2.5).按以下公式计算不确定环境中网络服务的可信度:
,j=1,2,...N; (1)
步骤(2.6).根据步骤(2.5)计算得到的网络服务可信度挑选可信度最高的服务。
当前网络上已存在一些可供用户或应用程序调用的网络服务,如股票价格预测服务、天气预报服务等。为了验证本发明方法的可行性和有效性,在此以网络上的股票价格预测服务作为实验对象。股票价格预测服务是一类典型的输出结果具有不确定性和不可预知性的网络服务。给定日期和股票代码,不同服务给出的预测股价并不完全相同,甚至存在较大差异。用户无法判断这些网络服务的优劣程度。而本发明的方法可以用于测量这些网络服务可信度,根据可信度测量值来评估网络服务的优劣,并进行服务优选。我们挑选了网络上提供股票价格预测的25个网络服务(编号为1~25),连续30天对这些服务预测的两只股票A和B次日的价格进行了记录,每个服务都给出了次日的最高和最低可能价格。
为了增强实验的对比性,我们设计了5个虚拟服务来提供类似的股价预测功能(编号为26~30),其功能实现见表1。从实现机制上直观判断,这5个虚拟服务的可信度从A到E应该依次递减,其中虚拟服务C仍然较为可信,而虚拟服务D和E则不可信。后面的实验结果将验证这一直观判断。实验中设定可信度阀值λ=0.9,迭代停止阀值ε=0.01,“满意”类别的初始中心矢量为30个预测股价的平均值,“不满意”类别的初始中心矢量为[200,200]。数据实验的流程图如图3所示。
图4给出的是30个服务对2006年11月8日股票A预测的最高/最低价格分布图。从图中可以发现两个明显的异常样本点,分别为虚拟服务D和E的输出结果。由于这两个输出结果的可信度均小于0.9,测试算法即将虚拟服务D和E从候选服务集中剔除。图4中标识为“。”、“+”和“*”的点分别为硬划分C均值算法(HCM)、经典FCM算法以及本文提出的带可信度阀值λ的FCM算法(FCM-λ)得到的期望参考标准输出,也即次日股价预测的参考标准最高/最低股价。由图4可见,FCM和FCM-λ得到的参考标准输出比较接近,而HCM得到的结果与FCM和FCM-λ存在较明显的差别,其具体值参见表2。
表2中的划分系数和划分平均模糊熵两个指标是用来衡量分类有效性的度量指标,具体定义如下:
划分系数
定量的描述模糊划分的不确定性程度,其计算公式为:
这里
。划分系数
越接近1,表明分类的模糊性就越小,分类效果越好。
划分平均模糊熵也能够定量的衡量模糊分类结果的模糊程度,其计算公式为:
这里约定μi,j=0时,μi,jln(μi,j)=0。平均模糊熵越小,最终分类的不确定程度就越小,分类效果越好。
表2给出了HCM、FCM和FCM-λ三种不同算法对某日股票A最高/最低预测报价处理的结果。由表2可以看出,HCM迭代步数最少,这是因为HCM分类判断最为简单。如果发现异常样本,FCM-λ将在原有FCM的基础上增加额外迭代步数;FCM和FCM-λ得到的参考标准输出非常接近,而与HCM则存在较大不同;检错概率反映了测试用例对不良样本的检错能力,而当测试用例给定时,则反映了不同算法的有效性。本实验实际的异常样本比例约为6.67%(=2/30),由此可见与FCM、HCM相比,FCM-λ得到的检错概率与实际情况非常接近,这也充分证明了FCM-λ算法的有效性;划分系数和平均模糊熵反映了算法对分类处理的模糊程度,HCM没有任何模糊性,而FCM-λ和FCM都具有一定的分类模糊性。由于对异常样本采取剔除策略,FCM-λ的模糊性比FCM要低一些。
图5和图6给出的是本发明的方法计算得到的30个网络服务的可信度对比图,其中图5是2006年11月8日对股票A价格预测结果的可信度,图6是用所有测试用例测试后的平均可信度。由于虚拟服务D和E(编号分别为29、30)作为异常样本已在最初的测试循环中被剔除,所以这两个服务的可信度远远低于其他服务。图5和6中,虚拟服务A和B(编号为26、27)都表现出了非常高的可信度。这是由它们的功能实现决定的(参见表1)。这说明对真实网络服务输出结果取平均值具有较高的准确性和可信度。从图5中看出,虚拟服务C(编号为28)的可信度高于编号为4和23的真实网络服务。这是由于虚拟服务C的功能实现使得在某些情况下,其输出结果可能表现出更好的准确性。而在大量测试用例共同作用的情况下,虚拟服务C功能实现机制的固有缺陷将暴露出来。从图6中可以看出虚拟服务C的可信度与真实网络服务相比存在明显差距。本发明的方法能够很好的将虚拟服务C的可信度与其他服务可信度的差距表现出来,有效的弥补了传统硬划分算法在这方面的不足。
由此可见,本发明的方法能够精确刻画网络服务输出结果的不确定性。实验分析结果表明本发明的方法具有较强的抗噪性,能够在最初的测试循环中发现可信度明显较差的网络服务,并将这些网络服务从候选服务集中剔除,由此加快了算法计算过程;划分系数和平均划分熵的计算结果表明该方法具有较好的模糊分类效果;同时在测试用例集的作用下,本方法能够对候选服务的可信度进行量化,可信度的度量结果较好的反映了真实情况。
附图说明
图1:网络服务可信度测量环境示意图。
图2:可信度测量算法流程。
图3:数据实验流程图。
图4:某日股票A最高和最低预测价格分布图。
图5:某测试用例下30个网络服务可信度对比图。
图6:整个测试用例集下30个网络服务可信度对比图。
具体实施方式
本发明提出了网络服务可信度指标,在传统模糊C均值分类算法的基础上针对网络服务评价和优选这一特定目的提出了一个测量网络服务可信度的算法,算法中设置有可信度阀值,根据可信度高低来评价网络服务的优劣并进行选择。对于输出结果为数值型或者可以通过某种映射对应到数值集的候选网络服务,本发明提出的方法对这些候选网络服务的输出结果进行模糊分类,用每个输出结果属于“满意”或“不满意”类别的隶属度来反映给定测试用例输入下的可信度。为了增强传统模糊C均值算法对异常样本的抗干扰性,本发明提出的算法中通过设定可信度阀值λ,舍弃每次测试过程中可信度小于λ的候选网络服务。该方法具有较强的抗干扰性(抗噪性),能够有效的测量出每个候选网络服务的可信度。这些测量结果将成为服务使用者评判和选择网络服务的重要依据。
本方法根据以下步骤实现:
1.初始化设定
建立网络服务可信度测量环境,如图1所示。网络服务可信度测量环境主要构件及建立过程如下:
1)在服务器端和客户端分别安装操作系统。操作系统可选用微软公司的视窗(Windows)系列操作系统中的Windows 2000及以上版本。
2)在服务器端准备好目标网络服务的描述文档。网络服务描述文档由服务选择人员取得,比如WSDL文档。服务描述文档中对目标服务的功能及接口(包括操作、参数、数据结构等)进行详细的描述和记录。
3)在服务器端安装网络服务测试用例生成器。测试用例生成器可以是在Microsoft.NET平台上用C#语言开发的测试数据生成工具,参见[姜瑛等.一种Web服务的测试数据自动生成方法[J].计算机学报.2005,28(4)568-577]。依据取得的网络服务描述文档,测试用例生成器能够根据现有的测试用例生成算法产生若干测试用例。
4)在服务器端记录得到的测试用例集。测试用例生成器根据测试用例生成算法产生得到,
记为TC={TCi},其中:i=1,2,...M。
5)在服务器端安装候选服务发现器。依据取得的网络服务描述文档,候选服务发现器能够根据现有的服务匹配算法从各种服务代理目录中查找发现得到若干符合网络服务描述文档需求的候选服务。这些候选服务能够满足网络服务描述文档的需求,以一定的服务质量提供相同的功能。服务发现器的定义及其设计可参见[刘志忠等.一种双层P2P结构的语义服务发现模型[J].软件学报.2007,18(8).1922-1932]。
6)在服务器端记录候选服务集。候选服务发现器根据服务发现算法得到,记为IWS={IWSj},其中:j=1,2,...N。
7)在服务器端运行本发明所提出的网络服务可信度测量算法。在前面步骤已经取得测试用例集和候选服务集的基础上,运行本发明所提出的网络服务可信度测量算法(下面将具体介绍该算法),可以得到一组测试输出数据。具体做法是:从测试用例集中取一个测试用例(记为TCi)输入给候选服务集中的某个候选服务IWSj,此时可以得到一个输出结果,记为Oi,j。将测试用例集中的每个测试用例输入到候选服务集中的每个候选服务,可以得到大量的输出结果。
8)在服务器端记录测试输出结果集。在服务器端记录步骤7中得到的这些测试输出结果集为O={Oi,j}。
9)在客户端安装客户端界面。客户端界面通过HTTP协议访问服务器端的各个模块,服务选择人员通过该界面实现对服务器端的控制和调用。
2.可信度测量算法描述
算法输入:在测试用例集TC={TCi}作用下,候选服务集IWS={IWSj}的输出结果O={Oi,j),其中i=1,2,...M,j=1,2,...N。
算法输出:在测试用例集TC={TCi)作用下,候选服务集IWS={IWSj)的测试可信度矩阵U*=[μi,k]M×N以及期望标准输出集 其中i=1,2,...M,k=1,2,...N;μi,k表示在测试用例TCi,输入下,候选服务IWSk输出结果归属“满意”类别的隶属度;Oi *表示目标网络服务WS对测试用例TCi的期望标准输出结果。
算法流程如图2所示,具体步骤描述如下:
步骤1初始化参数:指定类别数C=2,设i=1,变量,n=N,其中N为候选服务集中候选服务的个数;
步骤2从测试用例集TC中选取测试用例TCi,设定可信度阀值λi,j=1;
步骤3将测试用例TCi输入给候选服务IWSj,得到IWSj输出结果记为Oi,j;
步骤4判断j<n是否成立:如果成立,则j=j+1,程序跳转到步骤3;如果不成立,则执行下一步骤;
步骤5获取测试输出结果样本集Oi={Oi,j)。设定迭代停止阀值占εi,设定类别1(“满意”类别)和类别2(“不满意”类别)的初始聚类原型矢量Oi,1 0、Oi,2 0;
步骤6运用传统模糊C均值算法(FCM)对输出样本集Oi={Oi,j}进行模糊分类。经过若干步迭代,如果 FCM算法停止。记录此时的模糊划分矩阵为Ui *,类别1(即“满意”类别)的聚类原型矢量为
步骤7记模糊划分矩阵Ui的第一行为Ui,1={μi,1,...μi,n)。若存在k∈{1,2,...n),使得μi,k<λi,则说明在测试用例TCi输入下,候选服务IWSk的输出结果出现异常,因此将IWSk从候选服务集IWS中剔除,将Oi,k从输出样本集Oi中剔除,且令n=n-1,程序跳转到步骤6;若对于任意的k∈{1,2,...n),有μi,k≥λi,则执行下一步骤;
步骤8判断i<M是否成立:如果成立,则i=i+1,程序跳转到步骤2;如果不成立,则执行下一步骤;
步骤9获取每一个测试用例TCi下的Ui,1对于那些在步骤7中已从候选服务集IWS中被剔除的候选服务IWSk,则令μi,k=0,i=1,2,...M。由此可以得到最终的测试可信度矩阵U*=[μi,k]M×N,以及聚类原型矢量集(即期望标准输出集) 。算法终止。
3.网络服务可信度计算
假设i=1,2,...M,j=1,2,...N,且由FCM算法可知μi,j∈[0,1]。在测试用例TCi作用下,候选服务IWSj的可信度Tri,j等于在TCi输入下IWSj的输出结果归属“满意”类别的隶属度μi,j,即:Tri,j=μi,j。由可能性理论及可能性分布的定义可知,隶属度μi,j反映了在TCi输入下IWSj归属于“满意”类别的可能性,因此可以作为服务选择人员对IWSj信任程度的一种度量。进而可以得到,在测试用例集TC={TCi}作用下,候选服务IWSj的可信度Trj由下式决定:
按照发明内容中的初始化设定中的步骤依次完成系统的部署和设定,根据发明内容中的可信度测量算法来得到每个候选网络服务的可信度数值,可信度数值的计算要用到发明内容中的可信度计算部分中的内容。其中未具体说明实现方法的步骤集中在测试用例集的生成和候选服务集的发现两个方面。有关这两个方面的内容可以分别参照已有的测试用例生成方法(姜瑛等.一种Web服务的测试数据自动生成方法[J].计算机学报.2005,28(4)568-577)和服务发现方法(刘志忠等.一种双层P2P结构的语义服务发现模型[J].软件学报.2007,18(8).1922-1932)。
表1虚拟股票价格预测服务
虚拟服务名称 |
功能实现 |
虚拟服务A |
所有25个网络服务预测的股价的平均值 |
虚拟服务B |
前16个网络服务预测的股价的平均值 |
虚拟服务C |
在25个网络服务预测的最高/最低股价的最大值和最小值区间内随机产生 |
虚拟服务D |
在[0,40]的股价区间内随机产生 |
虚拟服务E |
在[0,100]的股价区间内随机产生 |
表2不同分类处理算法的对比
算法 |
HCM |
FCM |
FCM-λ |
迭代步数 |
2 |
3 |
4 |
参考标准输出 |
(25.00,21.00) |
(26.29,19.05) |
(25.21,18.92) |
检错概率 |
93.3% |
3.74% |
6.67% |
划分系数 |
1 |
0.9911 |
0.9990 |
平均模糊熵 |
0 |
0.0206 |
0.0040 |