一种面向大规模请求的esb任务调度方法及调度系统的制作方法

文档序号:7770320阅读:352来源:国知局
专利名称:一种面向大规模请求的esb任务调度方法及调度系统的制作方法
技术领域
本发明属于计算机信息分析与数据处理领域,具体涉及一种ESB任务调度方法及调度系统。
背景技术
企业服务总线(Enterprise Service Bus, ESB)是传统中间件技术与XML、Web服务等技术结合的产物,其提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案, 同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信和整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。传统的ESB伸缩性方案是在ESB上重复发布相同的服务,形成服务镜像。当请求到来时,压力稍小的服务会首先处理消息,从而起到平衡系统负载的作用。但是,由于ESB 系统本身较之传统技术存在更大的性能开销,所以两者之间在性能上还存在一定差距。传统的负载平衡系统是一个完整应用系统的镜像行为,而ESB则可以针对每个服务环节的具体负载,制定不同的平衡策略,这大大提高了系统实现伸缩的灵活度。ESB技术从EAI衍生而来,并伴随SOA的发展走过了相当长的路程,但它仍然面临一系列挑战,比如性能。SOA由服务集成发展到软件服务化,又进一步发展到基于服务的高级开发,使软件系统增加了很多环节,软件内部形成了很多消耗。而随着SOA应用规模的扩大,这些消耗将带来潜在的市场风险,如何将这些消耗降低到最小,是一个很重要的问题。

发明内容
本发明的目的是为了解决现有的ESB总线在面对大规模请求时负载过重,响应缓慢的问题,提出了一种面向大规模请求的ESB任务调度方法。本发明的技术方案是一种面向大规模请求的ESB任务调度方法,包括如下步骤Si.初始化一个资源缓冲区用于存储ESB总线中部分服务所提供的资源镜像;S2.接受web服务器发送过来的HTTP请求,解析HTTP请求中URL信息并为报文分配优先级;S3.把解析后的HTTP请求存入内存队列;S4.从内存队列中异步读取HTTP请求并响应;S5.根据响应分析得到的资源ID,从资源缓冲区中搜寻对应相关的资源组件;S6.提取当前HTTP请求的语义信息若资源缓冲区中存有相关的资源组件,则直接调用资源缓冲区的服务组件给web前端;若资源缓冲区中没有相关的资源组件,则直接从ESB总线上获取服务资源,同时把ESB总线上的相关的资源组件复制拷贝一个镜像,然后置换到资源缓冲区,优化资源缓冲区中的资源组合。
4
本发明还提出了一种面向大规模请求的ESB任务调度系统,具体包括报文解析器用于解析HTTP请求中URL信息并为报文分配优先级,并在内存中创建该报文的镜像,之后让报文镜像入内存队列;语义标签库用于存储全部HTTP请求所对应的语义信息;内存队列用于缓存报文镜像并按照一定的顺序排列报文镜像并按照队列中的报文的优先级顺序进行动态排序同时调整报文位置;报文响应器用于从内存队列中读取高优先级的报文所请求的资源;资源缓冲区用于存储ESB总线中部分服务所提供的资源镜像,并向报文响应器提供相应报文请求的资源;缓存资源置换器用于实现资源缓冲区和ESB总线之间的交互,并优化资源缓冲区中的资源类别。进一步的,上述HTTP请求是基于Rest架构的。本发明的有益效果本发明的方法和系统通过预评估从当前一端时间到以后一端时间内的HTTP请求所要求的资源,并对资源缓冲区中的资源进行优化配置,避免总是从 ESB总线上读取资源,提高了 web服务访问效率,缩短系统负载及响应时间。


图1为本发明的ESB任务调度系统结构构图。图2为本发明实施例的SQ排队算法过程示意图。图3为本发明实施例的总线机制实现综合排队算法的技术框图。图4为本发明实施例的解析器与报文响应器的异步工作示意图。
具体实施例方式下面结合附图和具体的实施方式对本发明作进一步的阐述。本发明的面向大规模请求的ESB任务调度方法,具体包括如下步骤Si.初始化一个资源缓冲区用于存储ESB总线中部分服务所提供的资源镜像;S2.接受web服务器发送过来的HTTP请求,解析HTTP请求中URL信息并为报文分配优先级。可以采用如下的具体过程S21.按照先来先服务的原则对HTTP请求进行预排序,服务请求到达的顺序位置值为假设缓存时,已有ρ个请求在等待,则这ρ个请求的到达顺序位置值按照先后顺序分别为'!-^TT,……,1_力,其中,第(P+I)个SQ的到达顺序位置为;这里用SQ表示HTTP请求。S22.获取HTTP请求中的URL地址信息并创建该报文的镜像。S23.与S21同时,搜寻当前URL地址所对应的语义信息(该语义信息包括请求主机,请求的类别,请求的服务优先级标签)。S24.在报文镜像中添加当前报文的优先级顺序(优先级顺序由数字标示,其中优先级越高的请求所得到的数字越低)。
权利要求
1.一种面向大规模请求的ESB任务调度方法,包括如下步骤51.初始化一个资源缓冲区用于存储ESB总线中部分服务所提供的资源镜像;52.接受web服务器发送过来的HTTP请求,解析HTTP请求中URL信息并为报文分配优先级;53.把解析后的HTTP请求存入内存队列;54.从内存队列中异步读取HTTP请求并响应;55.根据响应分析得到的资源ID,从资源缓冲区中搜寻对应相关的资源组件;56.提取当前HTTP请求的语义信息若资源缓冲区中存有相关的资源组件,则直接调用资源缓冲区的服务组件给web前端。若资源缓冲区中没有相关的资源组件,则直接从ESB 总线上获取服务资源,同时把ESB总线上的相关的资源组件复制拷贝一个镜像,然后置换到资源缓冲区,优化资源缓冲区中的资源组合。
2.根据权利要求1所述的ESB任务调度方法,其特征在于,所述述HTTP请求具体为基于Rest架构的。
3.根据权利要求1所述的ESB任务调度方法,其特征在于,步骤S5的具体通过如下过程实现551.从请求队列中取得一条请求,分析得到所要请求的服务组件ID;552.搜寻符合当前ID的资源组件;553.如存在资源组件映射,则直接调用该资源;如缓冲区中不存在资源镜像,则进入步骤S55进行ESB总线和资源缓冲区的资源置换。554.首先为资源缓冲区中的资源组件初始化一个资源调用频率表;资源调用频率表中每项记录资源缓冲区中资源组件及其调用次数,如果该组件被报文响应器调用则将其调用次数加一;报文响应器每调用一次资源缓冲区中的资源,置换器就遍历一次资源缓冲区, 同时将ESB总线上的资源复制一个资源镜像,放到资源缓冲区中调用次数最少的那个资源组件的位置上。
4.根据权利要求3所述的ESB任务调度方法,其特征在于,步骤SM进行资源组件初始化时具体将资源组件初始化如下四类第0类没有被访问,没有被修改;第1类没有被访问,已被修改;第2类已被访问,没有被修改;第3类被访问,被修改。
5.根据权利要求1所述的ESB任务调度方法,其特征在于,优化资源缓冲区中的资源组合的过程具体采用K-means算法。
6.一种面向大规模请求的ESB任务调度系统,具体包括报文解析器用于解析HTTP请求中URL信息并为报文分配优先级,并在内存中创建该报文的镜像,之后让报文镜像入内存队列;语义标签库用于存储全部HTTP请求所对应的语义信息;内存队列用于缓存报文镜像并按照一定的顺序排列报文镜像并按照队列中的报文的优先级顺序进行动态排序同时调整报文位置;报文响应器用于从内存队列中读取高优先级的报文所请求的资源;资源缓冲区用于存储ESB总线中部分服务所提供的资源镜像,并向报文响应器提供相应报文请求的资源;缓存资源置换器用于实现资源缓冲区和ESB总线之间的交互,并优化资源缓冲区中的资源类别。
7.根据权利要求1所述的ESB任务调度系统,其特征在于,所述HTTP请求具体为基于 Rest架构的。
全文摘要
本发明公开了一种面向大规模请求的ESB任务调度方法及调度系统。所述的方法具体为若资源缓冲区中存有相关的资源组件,则直接调用资源缓冲区的服务组件给web前端;若资源缓冲区中没有相关的资源组件,则直接从ESB总线上获取服务资源,同时把ESB总线上的相关的资源组件复制拷贝一个镜像,置换到资源缓冲区,优化资源缓冲区中的资源组合。所述的系统包括报文解析器、语义标签库、内存队列、报文响应器、资源缓冲区和缓存资源置换器。本发明的方法和系统通过预评估从当前一端时间到以后一端时间内的HTTP请求所要求的资源,并对资源缓冲区中的资源进行优化配置,避免总是从ESB总线上读取资源,提高了web服务访问效率,缩短系统负载及响应时间。
文档编号H04L29/08GK102497419SQ201110408109
公开日2012年6月13日 申请日期2011年12月9日 优先权日2011年12月9日
发明者唐雪飞, 王威 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1