在线Web服务质量监测系统及方法

文档序号:7928963阅读:259来源:国知局
专利名称:在线Web服务质量监测系统及方法
技术领域
本发明涉及在线Web服务质量监测系统及方法,尤其是一种在互联网环境下对复杂SOA (Service-Oriented Architecture,面向服务的体系结构)系统中的Web服 务进行在线服务质量评估的系统及方法。
背景技术
以Web服务为代表的软件系统构建技术正在快速发展,特别是基于SOA松散耦合、 平台无关性适合于广域网、局域网环境和数据中心内复杂信息系统的构建。随着功能相同或相似的Web服务日益增多,用户在使用Web服务或者创建组合服务时通常有多个候选Web服务可供选择。在满足用户功能需求的基础上,Web服务质量 (Qualityof Web Services)则成为评价候选Web服务的标准。同时根据服务质量评估的结果,提醒服务提供方及时发现系统执行的异常情况,优化系统地配置,以满足用户对Web服务的质量约束。通常,Web服务质量评估是针对系统中各种Web服务的响应时间,平均无故障工作时间,服务吞吐率等监测指标的基础上按照某种评价标准进行评估。因此Web服务质量评估的基础是对Web服务的请求和响应过程进行持续的监测。而现有的Web服务的监测和质量评估方法主要是通过以下三种方式
(1)服务器端监测模式,在Web服务的代码中插入日志代码以记录服务的各个阶段的活动,通过在这些日志数据的基础上进行分析和质量评估。但是这种方法的不足在于Web 服务开发阶段就需要添加监测代码,对于已经部署运行的Web服务则不能进行监测,此外该方法可能会影响到系统执行的性能。(2)客户端监测模式,在Web服务的客户端,利用程序或压力测试工具对Web服务进行持续调用,然后对测试过程中收集的各种数据对Web服务质量进行评估。尽管该方法对于服务器的影响较小,但是该方法不能反映Web服务系统实时运行的情况,因此不能满足服务质量的实时评估的需要。(3)基于APIHook的方法,在Web服务的提供者端或者使用端采用API Hook应用程序,利用钩子技术获取服务会话过程的信息,并利用这些信息对服务质量进行评估。该方法的优点是可根据用户配置对任意指定的Web服务进行监测,不足之处则是对于生产系统的侵入性较强,需要根据不同的操作系统开发不同监测程序。最大的问题在于该方法可能会影响系统的处理性能和稳定性,导致Web服务的质量评估结果的准确性受影响。此外,Web服务的请求与响应过程中依赖于所处的网络环境、服务器端与客户端系统的运行状态,因此现有的方法与系统都难以满足用户在实际生产环境下,对Web服务的质量进行灵活的、可配置的在线评估与分析。

发明内容
本发明的目的是提供一种在线Web服务质量监测系统,采用非侵入式的方式,只需通过配置即可实现在线Web服务质量监测,无需编程或者变更现有系统的运行和配置状态,也不会影响现有系统的处理性能和稳定性。本发明的另一目的是提供一种在线Web服务质量监测方法,其采用Sniffer技术, 不对服务提供方和使用方的程序造成任何干扰,能够更准确地反映系统实际运行的状态。为了实现上述目的,本发明提供了一种在线Web服务质量监测系统,其包括Web服务监测配置管理模块、Web服务事件生成模块和Web服务质量评估模块;
所述Web服务监测配置管理模块 用于维护需要监测的在线Web服务,即维护各在线 Web服务的基本属性、服务请求和响应消息特征、服务故障或者异常消息特征; 用于管理各在线Web服务的约定服务质量属性;
用于管理各在线Web服务对应的质量评估模型,以及各质量评估模型中评估指标的参数以及参数的取值情况;
所述Web服务事件生成模块采用Sniffer技术从在线Web服务端与在线Web客户端之间的信息交换装置上获取网络数据报文,过滤出需要的数据报文,且根据所述数据报文生成服务请求事件和服务响应事件,并记录在Web服务事件库中;
所述Web服务质量评估模块用于在监测所述Web服务事件库的基础上,按照对应的质量评估模型对在线Web服务质量进行分析、评估,并输出评估结果。所述Web服务事件库中的事件根据服务请求和响应流程分为收到服务请求,月艮务请求结束,输出服务响应,服务响应结束,服务请求失败,服务响应失败,网络异常事件, 用户定义的事件,其中所述用户定义的事件是指用户可以根据Web服务请求和响应数据报文中的某种特征来判断是否发生了该事件,以满足Web服务质量评估的灵活性的要求。所述信息交换装置为网络交换机或者路由器。所述在线Web服务质量的评估指标包括平均响应速度、最大响应时间、平均无故障工作时间、异常事件发生概率、在不同的并发用户条件下的性能曲线、Web服务响应时间是否符合正态分布中的一种或者多种。所述Web服务响应时间的长度等于服务响应结束事件发生的时间减去服务请求结束事件发生的时间,且所述异常事件发生概率中异常事件包括超时异常、服务内部异常和网络异常。本发明还提供了一种在线Web服务质量监测方法,其由以下步骤组成
51、对需要监测的在线Web服务分别进行配置,确定各在线Web服务的基本属性、月艮务请求和响应消息特征、服务故障或者异常消息特征、约定服务质量属性以及质量评估模型;
52、采用Sniffer技术从Web客户端与Web服务端之间的网络交换机或者路由器上获取所有的网络数据报文,根据所述在线Web服务的传输协议和端口号过滤所述网络数据报文,提取与服务请求和响应消息相关的数据报文,且根据过滤后的数据报文生成服务请求事件和服务响应事件,并记录在Web服务事件库中;
53、在Web服务事件库的基础上,结合评估指标对所述在线Web服务质量进行分析、评估,并输出评估结果。所述步骤S2中根据过滤后的数据报文生成服务请求事件和服务响应事件由以下步骤组成520、根据网络会话标识,将过滤后的数据报文关联到每一个网络会话中,且记录每一个数据报文的时间戳信息;
521、根据服务请求和响应消息的传输协议和封装协议,从网络会话的数据报文中重组所述在线Web服务的消息,生成服务请求事件和服务响应事件,并记录在Web服务事件库中,其中由重组消息中数据报文的时间戳信息来表示事件发生的时间;
522、根据一个完整的服务请求和响应流程,将流程中的各事件聚合至同一服务调用会话中,生成每个服务调用会话中的服务请求事件和服务响应事件,并记录在Web服务事件库中。
综上所述,由于采用了上述技术方案,本发明的有益效果是
1)不依赖于Web服务的提供方和使用方的运行环境;2)不需要改变现有Web服务的执行程序和处理逻辑;3)对服务提供方和使用方的程序不造成任何干扰,因此评估结果能够更准确地反映实际运行状态。


本发明将通过例子并参照附图的方式说明,其中
图1是本发明中在线Web服务质量监测系统的工作原理图; 图2是本发明中在线Web服务监测方法的流程图; 图3是本发明中生成Web服务事件库的流程图。
具体实施例方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。如图1所示,该在线Web服务质量监测系统包括Web服务监测配置管理模块、Web 服务时间生成模块和Web服务质量评估模块,其中在线Web客户端与在线Web服务端之间设置有信息交换装置,Web服务事件生成模块从信息交换装置中获取网络数据报文,该信息交换装置包括但不限于网络交换机或路由器。该Web服务监测配置管理模块的主要功能为维护需要监测、评估的在线Web服务集合,即维护每一个在线Web服务的基本属性(诸如URI、传输协议类型等)、服务请求和响应消息特征、服务故障或者异常消息特征;管理各在线Web服务的约定服务质量属性,其中服务质量属性按照服务等级协议(Service Level Agreement, SLA)来定义和说明;管理各在线Web服务对应的质量评估模型,以及各质量评估模型中评估指标的参数以及参数的取值情况。该Web服务事件生成模块的主要功能为采用Sniffer技术从在线Web服务端与在线Web客户端之间的信息交换装置上获取网络数据报文,过滤出需要的数据报文,且根据该数据报文生成服务请求事件和服务响应事件,并记录在Web服务事件库中,其中 Sniffer是一种基于被动侦听原理的网络分析方式,使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息,其属于成熟技术,在此不对其予以累述。这些事件根据服务请求和响应流程分为收到服务请求、服务请求结束、输出服务响应、服务响应结束、服务请求失败、服务响应失败、网络异常事件,用户定义的事件,其中用户定义的事件是指用户可以根据Web服务请求和响应数据报文中的某种特征来判断是否发生了该事件, 以满足Web服务质量评估的灵活性的要求。该Web服务质量评估模块的主要功能为在监测该Web服务事件库的基础上,按照对应的质量评估模型对在线Web服务质量进行分析、评估,并输出评估结果。对于该质量评估模型中在线Web服务质量的评估指标,即用户关注的各类评估指标,通过Web服务监测配置管理模块进行配置和管理。该评估指标可以是平均响应速度、最大响应时间、平均无故障工作时间、异常事件发生概率、在不同的并发用户条件下的性能曲线、响应时间是否符合正态分布等。如图2所示,该在线Web服务质量监测方法由以下步骤组成
51、对需要监测的在线Web服务分别进行配置,确定各在线Web服务的基本属性、月艮务请求和响应消息特征、服务故障或者异常消息特征、约定服务质量属性以及质量评估模型;
52、采用Sniffer技术从Web客户端与Web服务端之间的网络交换机或者路由器上获取所有的网络数据报文,根据所述在线Web服务的传输协议和端口号过滤所述网络数据报文,提取与服务请求和响应消息相关的数据报文,且根据过滤后的数据报文生成服务请求事件和服务响应事件,并记录在Web服务事件库中;
53、在Web服务事件库的基础上,结合评估指标对所述在线Web服务质量进行分析、评估,并输出评估结果。如图3所示,根据过滤后的数据报文生成服务请求事件和服务响应事件由以下步骤组成
520、根据网络会话标识,将过滤后的数据报文关联到每一个网络会话中,且记录每一个数据报文的时间戳信息;
521、根据服务请求和响应消息的传输协议和封装协议,从网络会话的数据报文中重组所述在线Web服务的消息,生成服务请求事件和服务响应事件,并记录在Web服务事件库中,其中由重组消息中数据报文的时间戳信息来表示事件发生的时间;
522、根据一个完整的服务请求和响应流程,将流程中的各事件聚合至同一服务调用会话中,生成每个服务调用会话中的服务请求事件和服务响应事件,并记录在Web服务事件库中。在本发明的一个实施例中,设定待评估的在线Web服务为一个股价查询服务 StockQuoteService,其对应的 URI 为 www. stock. com/StockQuote。该在线 Web 服务提供一个比较简单操作getLastPrice,即获得某个公司的最新股价。假定该在线Web服务中服务请求和响应消息采用HTTP传输协议以及SOAP封装协议,且用户关注的服务质量,即质量评估模型中的评估指标为Web服务响应时间和Web服务失效率(每天),质量评估模型中的评估指标标准为Web服务响应时间与Web服务失效率是否满足正态分布。具体地,在线Web服务质量监测方法由以下步骤组成。步骤一将Web服务质量监测系统连接到Web客户端与Web服务端之间网络上的路由器或者交换机,此外,为了方便获取Web服务器的流量,要求Web服务器与该Web服务质量监测系统连接在同一个路由器或者交换机上。对该股价查询服务StockQuoteService进行配置,本实施例中需要配置的主要信息如下
服务的名称:StockQuoteService ;
月艮务对应的 URI :www. stock. com/StockQuote ;
服务传输协议=HTTP ;
消息封装的方式=SOAP ;
服务的会话标识<t:TransactionID/> ;
服务中的操作集合{getLastPrice};
服务操作请求标签<m:GetLastTradePrice/> ;
服务响应消息标签<m: GetLastTradePriceDetailed/> ;
服务异常消息标签〈SOAP-ENV:Fault/〉;
服务响应超时 4000 ms ;
关组的服务质量{ Web服务响应时间,Web服务失效率}。步骤二、采用Sniffer技术从Web客户端与Web服务端之间的网络交换机或者路由器上获取所有的网络数据报文,根据该股价查询服务StockQuoteService的HTTP传输协议和端口号过滤网络数据报文,提取与Web服务请求和响应消息相关的数据报文,且根据过滤后的数据报文生成服务请求事件和服务响应事件,并记录在Web服务事件库中。具体地,根据过滤后的数据报文生成服务请求事件和服务响应事件由以下步骤组成
(1)根据在线Web服务的网络会话标识<t TransactionID/〉,将过滤后的数据报文(即与Web服务请求和响应消息相关的数据报文)关联到每一个网络会话中,同时记录每一个数据报文的时间戳;
(2)根据服务请求和响应消息的HTTP传输协议以及SOAP封装协议,从网络会话的数据报文中重组出该股价查询服务的操作消息,其中由重组消息中数据报文的时间戳来表示事件发生的时间。 针对该股价查询服务StockQuoteService,在网络会话的数据报文中获得了一个完整的SOAP消息对象的前提下,如果该SOAP消息中包含了服务操作请求标签 〈HKGetLastTradePrice/〉,则表示第一个网络报文对应的时间即为该在线Web服务请求开始的时间,而最后一个网络报文对应的时间即为Web服务请求结束的时间;如果该SOAP消息中包含了服务响应消息标签<m: GetLastTradePriceDetailed/),则与该消息对应的数据报文的时间即为该Web服务响应开始的时间,而最后一个网络报文的时间即为该Web服务响应结束的时间;如果该SOAP消息中包含了服务异常消息标签<S0AP-ENV:Fault/>,则表示该在线Web服务内部存在服务异常情况。此外,其它的事件可以根据一些规则来识别, 例如根据Web服务请求的完整性约束,即一次请求必然对应着一个响应。那么根据上述规贝U,如果一个会话中收到Web服务请求消息,而在4000 ms内没有发现Web服务效应消息, 则表示该Web服务出现超时异常。再如,如果在会话数据中不能获得一个不完整的SOAP对象,则表明该Web服务中出现网络异常。(3)根据一个完整的服务请求和响应流程,将流程中的各事件聚合至同一服务调用会话中,以便对每次服务调用的情况进行分析,并且生成每个服务调用会话中的服务请求事件和服务响应事件,并记录在Web服务事件库中。步骤三、在Web服务事件库的基础上,结合评估指标对该在线Web服务质量的评估指标进行分析、评估,且输出评估结果。本实施例中评估指标为Web服务响应 事件和Web服务失效率,每次Web服务响应事件等于服务响应结束事件发生时间减去服务请求结束发生事件发生时间,且Web服务失效率可以通过计算统计时间段内服务调用过程中异常事件的次数除以总服务调用次数来获得,其中异常事件包括超时异常、服务内部异常和网络异常。实施例中Web服务响应时间的质量评估方法为正态分布的判别方法,即将质量划分为3个等级1)质量符合性好近似正态分布,且数据分布中心(平均值)与指标公差中心基本重合、数据分布没有超过指标上限和下限,服务质量处于受控状态;2)质量符合性较好近似正态分布,且数据分布中心(平均值)与指标公差中心稍有偏移、数据分布极少超过指标上限或下限,服务质量处于次受控状态;3)质量符合性差非近似正态分布,因数据分布中心(平均值)与指标公差中心偏移较大,有较多数据超过指标上限或不限,服务质量处于失控状态。此外用户还可以根据服务调用中的各类异常对于Web服务运行的网络环境进行分析和评估,例如根据每个数据报文之间的时间间隔近似评估网络的速度和带宽,也可以根据网络异常的概率估算网络的稳定性。本发明并不局限于前述的具体实施方式
。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
权利要求
1.一种在线Web服务质量监测系统,其特征在于包括Web服务监测配置管理模块、 Web服务事件生成模块和Web服务质量评估模块;所述Web服务监测配置管理模块用于维护需要监测的在线Web服务,即维护各在线 Web服务的基本属性、服务请求和响应消息特征、服务故障或者异常消息特征;用于管理各在线Web服务的约定服务质量属性;用于管理各在线Web服务对应的质量评估模型,以及各质量评估模型中评估指标的参数以及参数的取值情况;所述Web服务事件生成模块采用Sniffer技术从在线Web服务端与在线Web客户端之间的信息交换装置上获取网络数据报文,过滤出需要的数据报文,且根据所述数据报文生成服务请求事件和服务响应事件,并记录在Web服务事件库中;所述Web服务质量评估模块用于在监测所述Web服务事件库的基础上,按照对应的质量评估模型对在线Web服务质量进行分析、评估,并输出评估结果。
2.根据权利要求1所述的在线Web服务质量监测系统,其特征在于所述Web服务事件库中的事件根据服务请求和响应流程分为收到服务请求,服务请求结束,输出服务响应, 服务响应结束,服务请求失败,服务响应失败,网络异常事件,用户定义的事件,其中所述用户定义的时间是指所述用户定义的事件是指用户可以根据Web服务请求和响应数据报文中的某种特征来判断是否发生了该事件,以满足Web服务质量评估的灵活性的要求。
3.根据权利要求1所述的在线Web服务质量监测系统,其特征在于所述信息交换装置为网络交换机或者路由器。
4.根据权利要求1所述的在线Web服务质量监测系统,其特征在于所述在线Web服务质量的评估指标包括平均响应速度、最大响应时间、平均无故障工作时间、异常事件发生概率、在不同的并发用户条件下的性能曲线、Web服务响应时间是否符合正态分布中的一种或者多种。
5.根据权利要求4所述的在线Web服务质量监测系统,其特征在于所述Web服务响应时间的长度等于服务响应结束事件发生的时间减去服务请求结束事件发生的时间,且所述异常事件发生概率中异常事件包括超时异常、服务内部异常和网络异常。
6.一种在线Web服务质量监测方法,其特征在于,由以下步骤组成51、对需要监测的在线Web服务分别进行配置,确定各在线Web服务的基本属性、月艮务请求和响应消息特征、服务故障或者异常消息特征、约定服务质量属性以及质量评估模型;52、采用Sniffer技术从Web客户端与Web服务端之间的网络交换机或者路由器上获取所有的网络数据报文,根据所述在线Web服务的传输协议和端口号过滤所述网络数据报文,提取与服务请求和响应消息相关的数据报文,且根据过滤后的数据报文生成服务请求事件和服务响应事件,并记录在Web服务事件库中;53、在Web服务事件库的基础上,结合评估指标对所述在线Web服务质量进行分析、评估,并输出评估结果。
7.根据权利要求6所述的在线Web服务质量监测方法,其特征在于所述步骤S2中根据过滤后的数据报文生成服务请求事件和服务响应事件由以下步骤组成S20、根据网络会话标识,将过滤后的数据报文关联到每一个网络会话中,且记录每一个数据报文的时 间戳信息;S21、根据服务请求和响应消息的传输协议和封装协议,从网络会话的数据报文中重组所述在线Web服务的消息,其中由重组消息中数据报文的时间戳信息来表示事件发生的时间;S22、根据一个完整的服务请求和响应流程,将流程中的各事件聚合至同一服务调用会话中,生成每个服务调用会话中的服务请求事件和服务响应事件,并记录在Web服务事件库中。
全文摘要
本发明公开了一种在线Web服务质量监测系统及方法,属于Web服务质量监测领域。该系统包括Web服务监测配置管理模块、Web服务事件生成模块和Web服务质量评估模块,Web服务监测配置管理模块对需要监测的在线Web服务分别进行配置,Web服务事件生成模块采用Sniffer技术获取网络数据报文,过滤该网络数据报文获得与服务请求和响应消息相关的数据报文,且根据过滤后的数据报文生成服务请求事件和服务响应事件,并记录在Web服务事件库中,Web服务质量评估模块结合评估指标对所述在线Web服务质量进行分析、评估,并输出评估结果。通过本发明,不对服务提供方和使用方的程序造成任何干扰,即可准确地反映实际执行结果。
文档编号H04L12/26GK102333007SQ20111029870
公开日2012年1月25日 申请日期2011年9月28日 优先权日2011年9月28日
发明者冯永, 李季, 李昂, 温罗生, 钟将 申请人:重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1