发现最佳Web服务:一种基于神经网络的解决方案
摘要 - 区分具有相似功能的Web服务正在成为Web服务发现的主要挑战。在本文中,我们提出了一个框架,使用以其泛化能力而闻名的人工神经网络(ANN)来实现Web服务的有效发现。该框架的核心是将新颖的神经网络模型应用于Web服务,以基于Web服务质量(QWS)的概念确定合适的Web服务。 QWS的主要概念是评估Web服务的行为和提供所请求功能的能力。通过用于Web服务的QWS的聚合,神经网络能够识别属于各种类对象的那些服务。所提出方法的整体性能表明,发现感兴趣的Web服务的成功率为95%。为了测试神经网络算法的鲁棒性和有效性,我们在训练集中删除了一些QWS特征,结果对系统整体性能产生了的显著影响。因此,通过选择用于提供Web服务总体评估的QWS功能,可以极大地影响通过各种质量属性发现Web服务。
关键词 - UDDI,服务注册,Web服务,服务质量,神经网络。
I.简介
使用面向服务的体系结构(SOA)开发和部署Web服务是企业调整业务流程以满足新需求的最佳方法之一。 Web服务正在成为SOA的理想平台,特别是由于它们能够无视语言、平台、操作系统和硬件类型,通过动态使用数据来实现实现相互操作。但是,实现此动态环境的主要挑战之一是评估Web服务的行为是否满足用户要求。虽然客户对Web服务行为的看法可能有所不同,但提供涵盖各种Web服务质量(QWS)功能的总体评估等级是实现具有相似功能的Web服务差异化的基本步骤。
为了评估Web服务的行为,必须持续监视和收集各种QWS功能。因此,QWS应涵盖大量定性和定量属性(非功能属性),这些属性在提供所需功能并符合现有标准时提供Web服务性能的总体度量。使用QWS进行Web服务,可以在查找相关Web服务时实现查询优化。但是,关键的挑战是如何定义适当的属性来表征QWS,从而提供基于服务的查询。
为解决上述问题,本文介绍了QWS的综合模型,并定义了各个Web服务的QWS属性。本文的其余部分安排如下:第二部分讨论了一些相关的工作。第三部分讨论了Web服务的分类。第四部分描述了人工神经网络(ANN)在当前系统中的应用。第五部分描述了如何收集QWS数据;第六部分讨论了当前系统的结果和性能。最后,第七部分讨论了结论和未来的工作。
II.相关工作
一些Web服务可能具有相似的功能,但具有不同的非功能属性。在发现Web服务时,必须考虑用于查找感兴趣的相关Web服务的功能和非功能属性,从而提供有效的选择过程。
尽管学者们为Web服务提供QoS支持已经做了很多努力,但很少有研究来解释服务质量的收集可以以透明和公平的方式实现。此外,服务提供商很可能对Web服务执行更改或更新,因此QoS值也可能受到影响。关于如何保证在运行时收集的QoS信息包含最新的QoS信息的研究很少。文献[10]所提出的解决方案是提供一种主动监控工具,该工具不断收集最新的QoS值,并确保以公开和动态的方式执行QoS计算。
在文献[14]中,提出了一种通过Web服务QoS验证者来验证QoS信息的方法。在这种方法中,Web服务提供商必须在注册时提供QoS信息。在Web服务验证者颁发证书ID之前,注册将被暂停。一旦验证者验证了服务提供商提供的QoS信息的声明,UDDI就会注册Web服务。但是,这种方法不能提供可靠的机制和适当的解决方案来解决Web服务的QoS属性支持问题。该解决方案提出了当前UDDI设计的扩展,其,集中于在注册时验证QoS属性,不提供具有最新QoS信息的任何保证(即,在Web服务更新或更改的情况下) ,并要求服务提供商在发布过程中执行其他步骤,以强制服务提供商考虑如何衡量其Web服务的QoS,这种方案可能并不可行。此外,当前的解决方案不区分服务提供商直接提供的QoS属性[8](即分类和成本)或QoS证明者在颁发认证时如何处理这些参数。
其他方法侧重于使用QoS计算和监管来改进Web服务的选择,文献[11,20]开发了一个中间件,其使用基于分布式的代理声誉度量模型[16],并使用基于Web服务声誉的概念模型[13]。用于增强Web服务组合和监控Web服务的QoS指标[15]。这些方法中的一大部分并不能保证QoS值随着时间变化的准确性或具有最新的QoS信息。另外,不存在使用信誉度量模型防止错误评级,因此,收集错误信息可能显着影响服务提供商的整体评级。
还有其他方法侧重于使用文本文档匹配[9,18,19,12],其主要依赖于分析术语的频率。其他方法研究了使用监督分类和无监督聚类的Web服务[7],人工神经网络[1],或在操作层面使用无监督匹配[5]。然而,许多方法没有在发现相关Web服务时应用神经网络来对Web服务进行分类。使用神经网络,我们可以对被确定为第一类对象的Web服务,并根据其行为和测量的QWS参数找到与其类似的感兴趣的Web服务(即服务链接)的任何模式或关系。
III.web服务的分类
业务实体可以以多种形式和变体提供相同的Web服务是很常见的。服务提供商可以提供相同的服务,但具有不同的功能和价格。 例如,Amazon.com提供Amazon Web Service(AWS),使开发人员能够部分访问其技术平台。 但是,服务提供商(在本例中为Amazon.com)可能会在不同的QWS相关功能上提供不同质量的AWS服务,例如AWS Enterprise提供的服务,其最大吞吐量为1,000次调用/秒(即类型白金级) 而AWS Basic提供的服务,其最大吞吐量仅为200次调用/秒(即类型为Bronze),如表I所示。
代表各种服务提供的类别在服务质量或属性方面不同,使得白金提供更高水平的质量(即更少的响应时间,更便宜的价格等),而青铜级下的那些提供相同的服务属性但是其质量(即略高的响应时间,严格的许可信息等)更低,如表II所示。
神经网络使用测量的QWS值来对那些在QWS方面具有更高评级的服务进行分类。 使用相等的权重处理所有QWS参数,我们使用基于称为WsRF [4]的相关性函数的标准差的置信区间来确定正态分布并将每个Web服务分类到相应的服务组。 WsRF用于衡量特定Web服务的相关性排名。 QWS参数有助于确定如何处理或分类Web服务。 人工神经网络(ANN)使用分类方案作为训练网络的分类器或标签。
IV.人工神经网络
在与分类和/或选择相关联时,在本研究中为物理过程找到正确的特征集是一个常见问题。没有独特的特征提取技术能够满足所有类型数据的要求。因此,使用人工神经网络(ANN)的解决方案被用于提高寻找比普通解决方案更好的可用服务的成功率。使用人工神经网络作为分类器的原因有很多:(1)人工神经网络为物理实现提供了简单的表示; (2)通过迭代训练生成代表解的权重; (3)ANN为训练集中不存在的输入产生正确的结果。事实上,Web服务可以表示为一个图形,其中节点表示QWS参数,而弧表示关系或模式。本文提出了一种反向传播神经网络(BPNN)算法用于Web服务的分类。
使用表I中列出的人工神经网络将Web服务分类为类类型不是一个简单的分类问题。为了解决服务分类问题,在前馈神经网络中使用了一个隐藏层。在所提出的系统中,所有神经元都使用sigmod激活函数。从输入层到隐藏层(用vhi表示)以及从隐藏层到输出层(用wij表示)的所有连接生成用作权重的随机值。另外,在隐藏节点(θi)和输出节点(τi)处为偏差分配随机值。隐藏层的激活函数(用bi表示)使用以下等式计算:
其中,f(x)是 logistic sigmoid阈值函数f(x) =1/(1+e-x).在输出层上的激活值(用CJ表示)计算公式如下:
我们使用适当的学习速率(α)和动量(μ)来训练反向传播(BP)神经网络。每次网络加载训练向量时,重新计算权重。 网络的停止策略或终止条件误差的平方和达到预先确定的阈值。 网络能够将给定的Web服务分类为表I中提到的任何类型。神经网络可以用于Web服务的分类,其中它可以确定模式,趋势或与其他Web服务的关系,最后基于QWS给出Web服务的总体评估。 以这种方式,神经网络能够识别第一类对象,并且还能够基于其分类和评估以排序的方式推荐感兴趣的服务。
V.监控网络服务的QWS
评估Web服务的关键是持续监控其在提供所需功能或在给定时间段内的行为。 在监控服务之前,能够从可访问的资源(包括服务注册表,搜索引擎的数据库,服务门户,共享平台等)收集可通过Web获得的尽可能多的Web服务至关重要。为了完成这项任务,我们使用了Web服务爬虫引擎(WSCE)[3,21],它不断收集任何可访问资源的Web服务信息。 爬取Web服务是获得有意义的QWS值的关键一步。
理想情况下,要评估特定Web服务的质量,必须至少包含一个可访问的操作,这意味着服务端点必须有效。但是,某些Web服务可能包含一个或多个操作,但服务端点不可访问,因此无法监视或被视为可维护。诸如WSCE之类的自动引擎可以确定Web服务的可维护性,然后可以将其用于监视。一旦Web服务通过WSCE可服务性测试,它就会存储到Web服务存储(WSS)中,从而激活Quality Web Service Manager(QWSMan)以开始监视新添加的服务。 WSCE,WSS和QWSMan是我们更大的Web Service Broker(WSB)框架的一部分[2]。
虽然在调用Web服务时收到成功的响应表明其可维护性,但是没有机制来确定响应是否仅依赖于生成它的服务提供者。例如,特定Web服务的响应可以取决于两个或更多个其他子组件或外部资源,因此确定响应时间是很有用的。响应时间是Web服务提供者处理传入请求和发送响应所花费的时间。但是,对本文来说,我们假设Web服务专门驻留在服务提供者主机服务器上,并且不依赖于任何外部子组件。
VI.数据,结果和讨论
为了适应反向传播人工神经网络的目的,我们使用了公开的Web服务质量(QWS)数据集[17]。 QWS数据集由一组QWS测量组成,用于当今Web上存在的2,507个真实Web服务。我们使用Web服务爬虫引擎(WSCE)[3]收集Web服务,并使用Quality of Web Service Manager(QWSMan)[4]进行质量测量。此QWS数据集中收集的大多数Web服务都是从公共源获取的,包括通用描述,发现和集成(UDDI)注册表,服务门户和Web搜索引擎。每个Web服务测量包括使用商业Web服务基准测试工具测量的九个QWS参数。对于带有关键字“sms”的查询到WSB框架的示例结果(在[17] - 演示部分中可用),得到的结果如图1所示。表III列出了这种方法所使用的QWS参数,描述和测量单位。
1 响应时间 发送请求和接收响应的时间
2 可用性 成功调用/总调用
3 吞吐量 总调用次数/时间段
4 成功率 百分比:返回消息次数 / 请求消息次数
5 可靠性 百分比:错误消息数/总消息数
6合规性 遵循WSDL规范的范围
7最佳业务实践 遵循WS-I Basic Profile的范围
8等待时间 处理给定请求的时间
9文档 WSDL中的文档数量
10 WsRF Web服务质量排名
11分类 代表服务提供质量的级别
12服务名称 Web服务的名称
13 WSDL地址 Web上(WSDL)文件的位置
图1显示了对WSB框架执行的查询的示例输出,其中在输出结果中考虑了与给定查询匹配的服务。为所有匹配的Web服务计算WsRF。然后,ANN用于将每个Web服务分类为特定类(即白金,金,银,铜)。分类为Platinum的服务在图1中以4星显示,而归类为Bronze的服务以1星表示。例如,“emSOAPService”被归类为Bronze类型(来自表I),因为它具有较长的响应时间和较低的可靠性。
对于六个收集的Web服务,表IV中显示了QWS数据集的示例横截面。表IV标题中的ID表示表III中的QWS标识符。表IV中所示的QWS参数用作反向传播神经网络的输入。为了选择最佳Web服务或被认为是第一类对象的Web服务,存在神经网络必须能够选择或提议的Web服务列表。
QWS数据集中的样本被分类为表II中给出的给定类别之一(即,当执行查询时)。例如,客户端对WSB框架进行查询,我们的ANN方法将根据其整体WsRF排名对Web服务进行分类,如图1所示.WsRF评级(即表III中的第10个参数)是基于由QWSMan进行的QWS测量。有关使用QWS参数进行排名的更多信息,请参见[4]。
编写了一个程序,允许客户定义表示任何QWS属性的重要性级别的权重。每个客户端首选项由百分比表示,然后转换为0到1的比例,以便稍后用作权重。例如,如果客户端搜索特定Web服务并为具有100%优先级的QWS参数3(吞吐量)分配更多权重,则程序将从QWS数据集中的服务中选择具有最高吞吐量的Web服务。
为了确定神经网络的性能,使用可接受的误差值来确定网络是否能够收敛到可能的解决方案中。由于神经网络使用逻辑函数来检测每次迭代的错误,因此输入必须在0和1的范围内(因为sigmoid将确保输出节点处的节点永远不会1或0但是1-e或e)。对于QWS数据集中的所有样本,必须对输入进行标准化。为了完成这个任务,需要两个步骤:第一步是(中)减去它的平均值,第二步是(比例)除以它的标准偏差。以这种方式,输入仍然可以被馈送到标准逻辑函数中并且与实现的反向传播算法一起工作。为了测量定义为性能速率的神经网络选择方案的性能,使用以下公式:
由于必须在训练过程之前定义使用反向传播算法的隐藏节点的数量,因此训练算法不能确定结构。 因此,对于每个分类组或Web服务类型,仅使用具有相同数量的样本的QWS数据的一部分来查找具有最高性能的网络配置。 表V总结了用于不同网络配置的常量。
使用不同的网络配置,最高性能速率显示为使用具有八个输入节点,14个隐藏节点和1个输出节点的网络配置,产生99.07%的性能速率。 基于最高性能率99.07%,10x14x1的网络配置应用于训练QWS数据集中的所有样本。 只有77%的训练数据集被考虑用于测试模式,其成功率为95%。 神经网络训练阶段的结果为99.07%。
基于时期数和迭代减少误差的收敛速率如图2(来自试验1)所示,并改变了网络的学习速率。
为了测试系统的准确性,进行了一组额外的试验,将误差收敛率设置为0.05并改变神经网络的学习速率。图3和4显示了获得的结果。
为了有效地测试系统的准确性,将误差率显着降低到0.0005的测试得到图5中的图。
图5显示了反向传播神经网络在0.0005的可接受误差值内的解的收敛性。如图3-5所示,增加误差值导致更平滑的曲线,并且网络以更快的速率收敛到解中(即,时期数减少)。由于在反向传播算法中使用动量考虑了先前互连的先前增量,因此系统以比没有动量运行神经网络稍快的速率收敛到解决方案中,如图4所示。没有动量的神经网络如图4所示。
注意到,改变学习速率和节点数量对系统的性能具有相当大的影响。学习率越高,系统收敛越快;然而,在选择最佳Web服务时网络性能下降方面存在折衷。这是因为较高的学习率允许反向传播神经网络快速学习,因此确实有足够的时间适应或学习足以做出准确的区分。如图4和5所示,可接受的误差越低,网络收敛的时间越长。图5的结果表明,学习速率可以对神经网络的速度和处理时间产生重大影响,并且网络需要更多的迭代才能收敛到解决方案中。
图5的结果还表明,使用较小的可接受错误(例如0.0005)最终会花费更长的时间来使网络收敛并找到最合适的Web服务。这些结果表明,可接受的误差越小,网络收敛所需的时间越长。因此,在选择神经网络作为选择最佳Web服务匹配的可接受解决方案时,必须谨慎选择使用学习速率和可接受错误值的组合,尤其是在实时环境中运行系统时。
为选择Web服务找到QWS属性的最佳组合可能变得非常具有挑战性。在QWS数据集中,九个收集/测量的QoS属性似乎具有稳定的结果且具有合理的性能。但是,如果QWS参数的数量减少,则需要确定网络的行为方式。此测试的结果可以确定那些可以被视为提供有价值信息的QWS功能,或者在确定Web服务的整体质量时是必不可少的。此外,该测试将允许创建默认QWS模板,其改变QWS参数的选择,使得它们可用于适应各种客户的感知(即,成本驱动,合规驱动,网络驱动等)。
为了确定该分析的准确性,通过从神经网络中移除若干QWS参数并测试网络以评估其性能来执行另外的测试。我们通过删除两个QWS参数来执行测试:响应时间和吞吐量,并确定网络性能速率显着降低至70.4%的成功率。应用相同的测试但略微移除了QWS参数(即,消除了成功性和可靠性),网络性能为87.3%。这些事件的结果表明,我们拥有的QWS参数越多,神经网络的性能就越高。
七.结论
为了基于服务分类发现感兴趣的Web服务,本文提出了一种基于反向传播的神经网络。使用Web服务的非功能属性可以显着提高获得相关输出结果的可能性。为了完成这项任务,我们使用公开的QWS数据集作为神经网络的输入。功能集主要取决于几个因素,如响应时间,吞吐量,可用性,合规性等。结果表明,尽管具有非均匀度量,但可能的非功能属性之间存在关系。神经网络的使用提供了一种优化最佳可用Web服务选择的方法。神经网络的平均性能率为95%。在用于测试该系统的所有三个试验中,神经网络总是汇聚成一个解决方案,这表明可以使用神经网络积极地发现最合适的Web服务。
所提出的解决方案提供了一种有效的发现机制,用于基于非功能属性查找高质量的Web服务;但是,还有改进的余地。观察到反向传播神经网络在训练模式期间由于大数据大小而花费很长时间,这在以实时方式实现这样的系统时可能成为问题。此外,由于所提出的方法在训练模式之前定义了隐藏节点的数量,因此系统配置快速适应被馈送到其中的当前数据的能力可能变得不可行。尽管如此,所提出的方法已经表明神经网络可以应用于Web服务的发现和选择中的应用,并且可以作为其他类型的神经网络的基础的起点。使用其他类型的神经网络(如ARTMAP,模糊ART或自组织地图)的能力是一种可以在未来探索并与反向传播算法进行比较的解决方案。