一种基于esb的全局调度方法

文档序号:7819184阅读:297来源:国知局
一种基于esb的全局调度方法
【专利摘要】本发明公开了一种基于ESB的全局调度方法,包括服务调度的模块,服务调度的模块包括调度算法配置模块、静态资源库以及动态资源库;所述算法配置模块,用于配置调度算法中监控项权重和计算方法;所述静态资源库,用于存储服务注册的信息以及与服务提供者相关的服务监控项;所述动态资源库,用于存储由静态资源库存储的服务以及监控项,从而获取的监控信息,监控项包括历史响应时间、历史成功率、服务所在服务器CPU使用率、服务所在服务器内存使用率和服务所在服务器磁盘使用率。
【专利说明】一种基于ESB的全局调度方法

【技术领域】
[0001]本发明涉及一种计算机互联网中的数据调度方法,特别是一种基于ESB (Enterprise Service Bus,企业服务总线)的全局调度方法。

【背景技术】
[0002]随着分布式集成技术的发展,复杂网络化信息系统的一体化程度逐步提高,由多节点组成的复杂巨系统(system of systems, SoS)综合集成模式逐步推广应用。复杂巨系统中服务共享、服务选择已被广泛应用,系统所使用的服务可能会有地理上分布的多个地方提供,需要提供一种优化后的服务以便用户能快捷准确的访问和使用。因此,需要提供一种全网范围、地理分布的全局服务调度方法。
[0003]复杂巨系统是通过网络来提供动态易扩展且经常是虚拟化的资源,通过提供软件服务(SOA)的模式,将应用软件统一部署提供服务的同时,也提供软件的离线操作和本地数据存储,让终端用户随时随地都可以使用其定购的软件和服务。
[0004]基于复杂网络化信息系统中会存在多种相同服务的提供者,基于分布资源监视可以监视提供服务的提供者状态,并且能获取得到可靠的监视信息作为服务资源优劣的判断。由于网络环境动态变化等特点给当前的服务调度带来了较大的挑战,如何选择调度最优的服务,传统的技术已经不能满足复杂网络化信息系统的需要。
[0005]基于监控相关的服务调度方法已有所研究,在基于ESB全网资源状态监视的全局服务调度算法目前还在进一步探索中。


【发明内容】

[0006]发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于ESB的全局调度方法。
[0007]为了解决上述技术问题,本发明公开了一种基于ESB的全局调度方法,包括服务调度的模块,服务调度的模块包括调度算法配置模块、静态资源库以及动态资源库;
[0008]所述算法配置模块,用于配置调度算法中监控项权重和计算方法;
[0009]所述静态资源库,用于存储服务注册的信息以及与服务提供者相关的服务监控项;
[0010]所述动态资源库,用于存储由静态资源库存储的服务以及监控项,从而获取的监控信息,监控项包括历史响应时间、历史成功率、服务所在服务器CPU使用率、服务所在服务器内存使用率和服务所在服务器磁盘使用率;
[0011]通过全局资源监视和调度算法实现服务调度算法,包括以下步骤:
[0012]步骤I),建立服务静态资源库;
[0013]服务提供者通过使用统一接入规范将自身提供的服务接入到ESB总线中,将服务的描述信息存入静态资源库中;服务静态资源库存储服务的静态描述信息包括服务名称、服务描述、服务WSDL地址信息、监控接口信息,以及为服务调度提供服务提供者的信息;同时静态资源库还存储了每一个服务的监控项数据,为服务的监控提供监控依据;
[0014]步骤2),建立服务动态资源库;
[0015]服务动态资源库是在运行过程中服务的状态库,根据静态资源库中服务的信息和监控项信息从服务提供者获取并存储监测数据,建立服务动态资源库;
[0016]步骤3),管理基于资源监视结果的调度算法;
[0017]调度算法的执行在于每个服务请求产生时,在ESB总线上执行的选择服务提供者的算法,使用监控项取值和配置的权重计算得到的结果,在计算出的结果中选择一项最优的服务提供者进行访问;
[0018]步骤4),使用缓存方式存放最新监测数据;
[0019]调度过程选取的监控信息和算法信息预先保存在缓存中的,并且时刻更新缓存中的监测数据。
[0020]本发明步骤2)中,建立服务动态资源库包含以下步骤:
[0021 ] 根据静态资源库中的服务以及服务配置的监控项通过监控接口获取服务的运行状态;
[0022]将根据监控接口获取的服务状态信息存入动态资源库中;
[0023]更新缓存中每个服务提供者的监控状态信息。
[0024]本发明步骤3)中,调度算法包括以下步骤:
[0025]根据网络状态去除掉网络不通畅的服务提供者,保留可用的服务提供者;
[0026]在可用的服务提供者中上一次的请求响应时间对比其中最小响应时间的结果记为Rl ;
[0027]根据历史记录的服务调用的成功率求其倒数记为R2 ;
[0028]根据服务提供者所在服务器,监控cpu使用率记为R3 ;
[0029]服务提供者所在服务器的内存使用率记为R4 ;
[0030]服务提供者所在服务器的磁盘使用率记为R5 ;
[0031]使用权重的方法计算每个服务提供者的服务质量R,公式如下:
[0032]R = f1*Rl+f2*R2+f3*R3+f4*R4+f5*R5 ;
[0033]为Rl的权重,f2为R2的权重,f3为R3的权重,f4为R4的权重,f5为R5的权重,且 f1+f2+f3+f4+f5 = I。
[0034]本发明应用于复杂网络化信息系统的服务集成【技术领域】,重点应用于各类以网络为中心的应用服务调度,提高复杂网络化信息系统的服务可靠性与可用性。本技术是以实时处理的全网资源状态监视数据为基础,通过优化的服务调度算法与策略,为信息系统提供全网范围可靠、优化的服务访问能力。全局服务调用的透明性使应用系统可以直接通过ESB使用服务,而不关心服务的位置、使用协议。由上述方案可见,由于本发明在ESB的基础上增加了服务调度的模块,在服务调用者调用服务时可选择最优服务提供者进行服务。同时可以动态修改调度方法,增加了灵活性。

【专利附图】

【附图说明】
[0035]下面结合附图和【具体实施方式】对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0036]图1是本发明提供的基于ESB的全局调度方法的组件图。
[0037]图2是本发明提供的基于ESB的全局调度方法的服务调用流程。
[0038]图3是本发明提供的基于ESB的全局调度方法的服务监控流程。

【具体实施方式】
[0039]本发明公开了一种基于ESB的全局调度方法,包括服务调度的模块,服务调度的模块包括调度算法配置模块、静态资源库以及动态资源库;
[0040]所述算法配置模块,用于配置调度算法中监控项权重和计算方法;
[0041]所述静态资源库,用于存储服务注册的信息以及与服务提供者相关的服务监控项;
[0042]所述动态资源库,用于存储由静态资源库存储的服务以及监控项,从而获取的监控信息,监控项包括历史响应时间、历史成功率、服务所在服务器CPU使用率、服务所在服务器内存使用率和服务所在服务器磁盘使用率;
[0043]通过全局资源监视和调度算法实现服务调度算法,包括以下步骤:
[0044]步骤I),建立服务静态资源库;
[0045]服务提供者通过使用统一接入规范将自身提供的服务接入到ESB总线中,将服务的描述信息存入静态资源库中;服务静态资源库存储服务的静态描述信息包括服务名称、服务描述、服务WSDL地址信息、监控接口信息,以及为服务调度提供服务提供者的信息;同时静态资源库还存储了每一个服务的监控项数据,为服务的监控提供监控依据;
[0046]步骤2),建立服务动态资源库;
[0047]服务动态资源库是在运行过程中服务的状态库,根据静态资源库中服务的信息和监控项信息从服务提供者获取并存储监测数据,建立服务动态资源库;
[0048]步骤3),管理基于资源监视结果的调度算法;
[0049]调度算法的执行在于每个服务请求产生时,在ESB总线上执行的选择服务提供者的算法,使用监控项取值和配置的权重计算得到的结果,在计算出的结果中选择一项最优的服务提供者进行访问;
[0050]步骤4),使用缓存方式存放最新监测数据;
[0051]调度过程选取的监控信息和算法信息预先保存在缓存中的,并且时刻更新缓存中的监测数据。
[0052]本发明步骤2)中,建立服务动态资源库包含以下步骤:
[0053]根据静态资源库中的服务以及服务配置的监控项通过监控接口获取服务的运行状态;
[0054]将根据监控接口获取的服务状态信息存入动态资源库中;
[0055]更新缓存中每个服务提供者的监控状态信息。
[0056]本发明步骤3)中,调度算法包括以下步骤:
[0057]根据网络状态去除掉网络不通畅的服务提供者,保留可用的服务提供者;
[0058]在可用的服务提供者中上一次的请求响应时间对比其中最小响应时间的结果记为Rl ;
[0059]根据历史记录的服务调用的成功率求其倒数记为R2 ;
[0060]根据服务提供者所在服务器,监控cpu使用率记为R3 ;
[0061]服务提供者所在服务器的内存使用率记为R4 ;
[0062]服务提供者所在服务器的磁盘使用率记为R5 ;
[0063]使用权重的方法计算每个服务提供者的服务质量R,公式如下:
[0064]R = f1*Rl+f2*R2+f3*R3+f4*R4+f5*R5 ;
[0065]为Rl的权重,f2为R2的权重,f3为R3的权重,f4为R4的权重,f5为R5的权重,且 f1+f2+f3+f4+f5 = I。
[0066]实施例1
[0067]图1为本发明的组件结构图,图2为本发明的方法流程图,包括以下步骤:
[0068]本实施实例在服务提供者、服务消费者之间加入了 ESB,ESB是连接服务调用者和提供者之间的桥梁,也是本发明中调度算法所依托的工具。
[0069]本实例中,服务接入ESB使用统一接入规范接入,要求服务接入时提供服务的WSDL(Web Services Descript1n Language,网络服务描述语言)地址信息,服务名称、月艮务描述以及监控接口等信息。建立服务静态资源库,通过使用统一接入规范接入,将服务的服务名称、服务描述、服务WSDL地址等信息存入静态资源库。这些数据都是能够被ESB访问到的数据,根据这些数据,在服务调用者提交调用申请的时候ESB可以快速的定位到该服务,并且根据提供的调度算法进行服务调度。
[0070]将准备好的服务数据注册到静态资源库中,提供服务调用的查询并且为动态监测提供服务的基础数据。
[0071]建立服务动态资源库,动态资源库是指在服务运行中根据业务服务提供者状态变化而变化的数据存储库。动态资源库添加了所有在服务中心注册服务的运行状态数据,这些数据作为算法数据的提供者,此外还需添加算法配置工具模块配置监控项。
[0072]服务动态资源库主要包括服务提供者的以下内容:
[0073]前一次服务响应时间;
[0074]服务成功率;
[0075]cpu 使用率;
[0076]磁盘使用率;
[0077]内存使用率;
[0078]网络延迟时间。
[0079]在每个服务实例添加资源监视的工具,可以实时将该提供者的服务运行状态上报给动态资源库中。
[0080]根据资源项实时更新动态资源库中的数据,以支持服务调用中调度算法的数据支撑。
[0081]ESB服务总线与资源库的数据交互使用远程访问,以便能快速查询某个服务的最佳提供者。
[0082]动态资源库中使用本地缓存方式存放当前所有服务提供者的状态数据,算法执行也在动态资源库本地,以达到最快方式计算结果和最小的网络数据传输。
[0083]动态资源库还预处理某一个服务,通过算法计算出每个服务当前提供的最佳提供者,此预处理每隔一段时间执行一次,在ESB服务来请求的时候能够立即提供最佳服务提供者的信息。
[0084]可动态调整资源项,通过添加资源监视项和相关接口,配置资源项权重因子,给服务调度做分析依据。
[0085]说明:
[0086]通过ESB服务总线对服务进行封装,隐藏服务的具体提供者,对调用者来说能够提供优化的高效的服务即可。
[0087]服务调用者在调用的时候通过ESB服务总线到资源动态库中获取服务资源状态,请求服务通过ESB服务总线对服务进行路由和调度,首先会根据所请求的服务名称等特征路由到提供此类服务的提供者列表,然后会提取资源监视动态库中的与服务相关的动态数据根据资源监视的调度算法计算各个服务的计算结果,根据结果选择最优服务进行调用。在调用结束后将调用后的各个结果作为历史资源项存入资源动态库。
[0088]在算法配置上可以根据不同的服务配置不同的服务计算因子,用来调节服务访问的结果。
[0089]实施例2
[0090]本实施例以全网资源状态监视为基础,以服务调度算法为手段,以提供可靠、优化服务访问为目的。基于全网资源状态监视的服务调度方法是本发明的核心。
[0091]本实施例服务环境中各类资源状态监视信息的处理是庞大而且复杂的,还包括环境的不可预测性在提供服务调度的支持上需要时效性,采用基于资源变化更新和缓存方法,可以较好的提供优质的服务。
[0092]实施步骤:
[0093]1、预备工作:
[0094]?米用Web Service技术为服务基础支持。
[0095]?服务注册
[0096]■使用服务名称标识服务
[0097]■服务描述
[0098]?服务资源的监视数据采集,资源包括:
[0099]■服务质量
[0100]?响应时间
[0101]?服务成功率
[0102]■服务器状态
[0103]^cpu 使用率
[0104]?磁盘使用率
[0105]?内存使用率
[0106]■网络状态
[0107]?网络延迟时间
[0108]?网络通畅
[0109]2、服务资源数据分析算法准备
[0110]记录单个服务请求的响应时间。
[0111]记录单个服务请求成功率。
[0112]实时更新监控数据主要包括服务器cpu使用率、磁盘使用率和内存使用率。
[0113]实时更新ESB到服务的网络状态,包括网络延迟等。
[0114]基于已有的资源监视统计数据预测和计算出最优服务的提供者。
[0115]根据监控的资源项按照如下算法进行服务调度:
[0116]根据网络状态去除掉网络不通畅的服务提供者,保留可用的服务提供者。
[0117]在可用的服务提供者中上一次的请求响应时间对比其中最小响应时间(或者设定的基准值)的结果Rl。
[0118]根据历史记录的服务调用的成功率求其倒数R2。
[0119]根据服务所在服务器,监控cpu使用率R3。
[0120]服务所在服务器的内存使用率R4。
[0121]服务所在服务器的磁盘使用率R5。
[0122]使用权重的方法计算每个服务提供者的服务质量,以计算结果值越小的质量越高,计算方法如下:
[0123]F1:权重因子,i为I?6。
[0124]结果R = f1*Rl+f2*R2+f3*R3+f4*R4+f5*R5
[0125]根据最优结果调用服务,监控项可以根据实际情况进行添加和裁剪。
[0126]本发明提供了一种基于ESB的全局调度方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
【权利要求】
1.一种基于ESB的全局调度方法,其特征在于,包括服务调度的模块,服务调度的模块包括调度算法配置模块、静态资源库以及动态资源库; 所述算法配置模块,用于配置调度算法中监控项权重和计算方法; 所述静态资源库,用于存储服务注册的信息以及与服务提供者相关的服务监控项; 所述动态资源库,用于存储由静态资源库存储的服务以及监控项,从而获取的监控信息,监控项包括历史响应时间、历史成功率、服务所在服务器CPU使用率、服务所在服务器内存使用率和服务所在服务器磁盘使用率; 通过全局资源监视和调度算法实现服务调度算法,包括以下步骤: 步骤I),建立服务静态资源库; 服务提供者通过使用统一接入规范将自身提供的服务接入到ESB总线中,将服务的描述信息存入静态资源库中;服务静态资源库存储服务的静态描述信息包括服务名称、服务描述、服务WSDL地址信息、监控接口信息,以及为服务调度提供服务提供者的信息;同时静态资源库还存储了每一个服务的监控项数据,为服务的监控提供监控依据; 步骤2),建立服务动态资源库; 服务动态资源库是在运行过程中服务的状态库,根据静态资源库中服务的信息和监控项信息从服务提供者获取并存储监测数据,建立服务动态资源库; 步骤3),管理基于资源监视结果的调度算法; 调度算法的执行在于每个服务请求产生时,在ESB总线上执行的选择服务提供者的算法,使用监控项取值和配置的权重计算得到的结果,在计算出的结果中选择一项最优的服务提供者进行访问; 步骤4),使用缓存方式存放最新监测数据; 调度过程选取的监控信息和算法信息预先保存在缓存中的,并且时刻更新缓存中的监测数据。
2.根据权利要求1中所述基于ESB的全局调度方法,其特征在于,步骤2)中,建立服务动态资源库包含以下步骤: 根据静态资源库中的服务以及服务配置的监控项通过监控接口获取服务的运行状态; 将根据监控接口获取的服务状态信息存入动态资源库中; 更新缓存中每个服务提供者的监控状态信息。
3.根据权利要求2中所述基于ESB的全局调度方法,其特征在于,步骤3)中,调度算法包括以下步骤: 根据网络状态去除掉网络不通畅的服务提供者,保留可用的服务提供者; 在可用的服务提供者中上一次的请求响应时间对比其中最小响应时间的结果记为Rl ; 根据历史记录的服务调用的成功率求其倒数记为R2 ; 根据服务提供者所在服务器,监控cpu使用率记为R3 ; 服务提供者所在服务器的内存使用率记为R4 ; 服务提供者所在服务器的磁盘使用率记为R5 ; 使用权重的方法计算每个服务提供者的服务质量R,公式如下: R = f^Rl+f^I^+f^I^+f^IM+f^RS ; f!为Rl的权重,f2为R2的权重,f3为R3的权重,f4为R4的权重,f5为R5的权重,且f1+f2+f,+fi+f5 = I。
【文档编号】H04L29/08GK104394198SQ201410629033
【公开日】2015年3月4日 申请日期:2014年11月10日 优先权日:2014年11月10日
【发明者】陈荣, 朱勇, 李哲, 张炳恋, 张萍 申请人:中国电子科技集团公司第二十八研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1