一种基于xesb的服务中介层容错方法

文档序号:7693261阅读:311来源:国知局
专利名称:一种基于xesb的服务中介层容错方法
技术领域
本发明涉及一种基于XESB的服务中介层容错方法,主要用于XESB的服务容错中。
技术背景随着互联网优势的增强,越来越多的企业提供基于互联网的服务,新的业务模式得到了发 展,企业业务系统之间的交互逐渐增强,系统之间的通信和集成问题凸现出来,即使在企业内 部也存在异构系统之间的整合问题。原有的开发工具和平台不能满足构建分布式系统的需求, 为了重用己有系统,减少IT系统投资,发展了各种分布式组件技术,如OMG组织的CORBA 技术,Java阵营的RM技术,微软的DCOM技术。这些技术能在一定程度上解决分布式系统 的通信和集成问题,但是存在着一些问题,如交互双方以紧耦合的通信方式绑定,基于二进制 通信协议,并采用跨逻辑层的紧密集成,容易导致可伸縮性问题。另外RMI和DCOM技术限 于特定平台,不能实现异构系统之间的集成,CORBA技术实现复杂,投入高。为了解决分布式 系统之间集成的紧耦合问题,产生了面向消息的中间件技术(MOM)。但是大多数MOM实现 方案提供的都是与自己核心设备通信的本地API,影响了应用程序在此类实现方案之间的移植 性,从而导致将实现锁定于特定服务器供应商的问题,另外通信的消息是通信双方约定的格式, 制定通信协议本身就是一个复杂的过程。面向服务的体系架构(SOA)提出了一种新的基于服务的构建业务系统的设计模式。SOA 定义为一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务 带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程,在服务实现 发生改变时,服务流程可以不变或是只需作很少改动。基于XML的Web服务技术被认为是实 现SOA最好的实现方式,它采用开放的标准,如XML,SOAP、 WSDL和UDDI,解决了异构系 统之间的通信,服务描述和定义以及服务发布和发现问题,Web服务具有强自治,松耦合,开 放性和可集成等特性,使得Web服务适用于应用程序集成、B2B集成、代码和数据重用,以及 通过Web进行客户端和服务器的通信的场合,如电子商务、电子政务、企业应用集成、跨企业 边界的业务整合等。支撑SOA的关键基础架构是企业服务总线(ESB) 。 ESB是传统中间件技术与XML、 Web 服务等技术相互结合的产物,用于实现企业应用不同消息的准确、高效和安全传递。ESB的出 现改变了传统的软件架构,可以提供比传统中间件产品更为简便的解决方案,同时它还可以消除异构应用系统之间的技术差异,让不同的应用服务能够互操作,实现不同服务之间的通信与 整合。充当服务中介的ESB能够在服务之间转换业务逻辑和数据格式,使服务集成与服务业务 逻辑相分离,从而使得不同的应用程序可以同时使用同一服务,在应用程序或者数据发生变化 时,无需改动服务实现。目前各种ESB产品主要关注多种传输协议的集成与转换及消息路由和 中介处理,对于服务容错的支持方式单一,不能满足复杂的、灵活多变的应用需求。XESB是 ESB的一种实现方式,它采用分层的架构,分为传输层、消息层、服务层和中介层。XESB基 于开放的标准协议,提供服务消费者和服务提供者之间基于标准协议的交互,并能在不同的协 议之间转换,使采用不同传输协议的系统能够相互通信,并且可以进行日志记录、接口转换等 中介操作。在基于Web服务的工作流技术中, 一个中介流程由多个Web服务组成,其中每个服 务调用失败都可能导致整个流程的失败,因此,作为服务消息传递基础设施的XESB有必要为 服务调用提供可靠的通信基础架构和多种容错处理方式,能够在服务调用失败时以对客户透明 的方式进行恢复。现有产品多在消息层支持可靠传输协议来支持服务的可靠调用,但是在服务层对服务错误 的处理支持不够,在请求处理过程中出现错误只是将错误报文返回给用户或是能够进行简单的 重试操作,不能对错误的检测方式和错误恢复方式进行灵活配置,使之能够在复杂、不可靠的 网络环境下保障服务的可靠调用。 发明内容为了解决现有技术中ESB服务容错处理问题,本发明的主要目的是提供一种基于XESB系 统的服务容错机制,保障服务的可靠调用。为实现上述目的,本发明采用以下技术方案 一种基于XESB系统的服务中介层容错方法, 所述的中介层在服务调用失败时采用基于策略的服务容错方式对错误进行恢复,所述的中介层 分为错误检测、错误恢复、容错策略和错误处理器;错误检测检测整个中介处理流程的生命周 期中发生的错误,在错误发生时保存错误的上下文信息,包括错误的类型和相关数据,交给错 误恢复模块处理;错误恢复由错误检测模块提交的错误信息,查询容错策略存储库对应的容错 策略,根据容错策略调用相应的错误处理器进行错误恢复;容错策略定义了错误的检测方式和 错误处理器之间的对应关系,对服务的检测和恢复方式进行配置,错误检测和错误处理分开配 置,增强容错系统的灵活性;错误处理定义在发生错误时如何处理。 本发明与其它服务容错方法相比,具有以下优点-(1)本发明基于XESB企业服务总线,提供消息层和中介层的服务容错。在消息层通过集 成可靠消息保障消息的可靠传递,在中介层通过多种机制保证服务的正确调用,保障了服务的 可靠性。(2) 本发明的中介层服务容错基于策略,可以分别配置错误检测和错误处理方式,提高了 组件的重用和容错处理的灵活性。(3) 另外,本发明提供通过重试、等价服务调用和多服务调用等基于策略的服务容错机制 保障服务的正确调用,提高了服务的可靠性。


图1为本发明中介层服务容错功能模块示意图; 图2为本发明的中介层服务容错流程图; 图3为本发明的中介层中重试机制示意图; 图4为本发明的中介层中等价服务调用机制示意图; 图5为本发明的中介层中多服务调用机制示意图。
具体实施方式
如图1所示,本发明的中介层在服务调用失败时采取重试、调用等价服务等方式对错误进 行恢复,并可以配置服务容错策略。服务容错分为容错策略,错误检测、错误恢复和错误处理 器。所述容错策略定义了服务错误检测和错误处理的方式。容错策略定义了错误分类,配置了 错误检测和错误处理之间的对应关系,每个错误检测器在触发错误时都会指定一个错误编号, 每个错误处理器也配置了处理的错误编号。错误检测器触发错误后,容错策略根据错误号找到 匹配的错误处理器进行处理。用户可根据需求对容错策略进行灵活配置,系统执行流程时自动 根据策略配置启动容错组件。所述错误检测定义了如何发现和捕获错误。错误检测器分为三类, 一类是对消息处理过程 的异常的捕获,第二类是超时错误,超时错误检测器在初始化时指定了最大等待时间,它实现 了运行时事件侦听器接口,在侦听到服务请求发送事件时开始计时,如果在指定的时间内返回 则停止计时,否则触发错误处理程序。第三类类错误检测是通过设置错误触发条件,对消息的 内容进行求值判断,如果达到错误条件则触发错误处理。所述的错误恢复首先根据错误检测模块提交的错误信息,查询容错策略存储库对应的容错 策略,找到对应的错误处理器,调用错误处理器的处理方法进行错误恢复。所述错误处理器定义在发生错误时如何处理,包括重试错误处理器、等价服务调用错误处 理器和多服务调用错误处理器。重试错误处理器在初始化时指定了重试次数和重试时间间隔, 开始错误处理时会每隔指定时间调用服务直到服务调用成功返回或达到最大重试次数,此时错 误恢复失败。等价服务调用错误处理器实现了等价服务调用的错误处理机制,依次调用已配置 的等价服务,直到服务成功返回或是所有的服务调用失败,这时会返回错误信息。多服务调用错误处理器实现了多服务调用机制,同时调用多个服务,从多个服务响应中选取需要的服务结 果。在系统中保存多个错误处理器的实例,需要时直接使用,不用每次都重新初始化。图1中 的错误处理器l, 2等对应重试错误处理器、等价服务调用错误处理器和多服务调用错误处理器 的实例。如图2所,本发明的中介层服务容错的处理过程是-(1 )首先XESB根据流程配置启动中介流程开始执行业务逻辑。(2) 根据容错策略的配置,启动错误检测器的检测方法对消息处理流程进行检测。(3) 在执行过程中如果达到错误检测器的触发条件,错误检测器则调用错误恢复的触发错 误方法,执行步骤(4),否则流程结束。(4) 错误恢复模块保存错误上下文信息,根据错误类型查询容错策略选择匹配的错误处理器。(5) 调用错误处理器处理错误,对错误进行恢复,流程结束。 本发明对服务调用错误的处理分为重试机制、等价服务调用机制和多服务调用机制3种 在检测到服务调用失败错误时,通过重试机制再次调用服务,如图3所示。这种方式的服务容错可以解决网络或服务器暂时性的错误,重试时间间隔和重试次数是这种方式最重要的两 个参数。重试时间间隔太长会增加服务消费者等待时间,太短可能故障还未恢复,如果是服务 器过载的情况还会加重服务器负担。首先从上下文信息中提取服务请求调用原服务,如果调用 成功则错误恢复完成。如果失败则判断是否达到最大重试次数,达到最大次数则恢复失败,否 则等待重试间隔时间后继续调用服务直到调用成功或达到最大重试次数。等价服务调用的容错机制是预先定义多个功能和调用接口一致的可替换服务,如图4所示, 在调用某个服务失败时能够调用其它的服务达到容错目的。等价服务容错机制要求有冗余的服 务提供者,并且服务的接口一样。可以根据服务的QoS参数选择调用的等价服务,提高容错的 准确性,减少故障恢复时间。首先从上下文信息中提取服务请求,查询已部署的与该服务等价 的服务,选择与QoS参数匹配的服务进行调用,如果调用成功则错误恢复完成。否则査询是否 还有满足条件的等价服务,如果没有则恢复失败,否则选择合适的等价服务进行调用直到调用 成功或所有等价服务都调用失败,此时错误恢复失败。在对服务可靠性要求很高的环境下,要避免有的服务可能返回不正确的结果的情况,这就 要求能对服务结果进行检验。通过同时调用多个等价服务,对各个服务的结果进行比较选择正 确的结果,如图5所示。这种方式要求存在多个等价服务,并且同时调用的开销比较大。首先 从上下文信息中提取服务请求,查询该服务的所有等价服务,同时调用所有的等价服务,再根 据配置对服务的结果进行比较判断,选择满足条件的服务结果返回给用户。如果有满足条件的服务结果则错误恢复成功,如果所有服务调用失败或是没有满足条件的服务响应则错误恢复失' 败。本发明还可以在一个容错策略里采用多种错误处理方式,如在调用等价服务时可以采用重 试的机制,也可以同时调用多个等价服务取最先返回的服务结果。
权利要求
1、一种基于XESB系统的中介层服务容错方法,其特征在于所述的中介层在服务调用失败时采用基于策略的服务容错方式对错误进行恢复,所述的中介层容错方法分为错误检测、错误恢复、容错策略和错误处理器;错误检测检测整个中介处理流程的生命周期中发生的错误,在错误发生时保存错误的上下文信息,包括错误的类型和相关数据,交给错误恢复模块处理;错误恢复由错误检测模块提交的错误信息,查询容错策略存储库对应的容错策略,根据容错策略调用相应的错误处理器进行错误恢复;容错策略定义了错误的检测方式和错误处理器之间的对应关系,对服务的检测和恢复方式进行配置,错误检测和错误处理分开配置,增强容错系统的灵活性;错误处理定义在发生错误时如何处理。
2、 根据权利要求1所述的一种基于XESB系统的中介层服务容错方法,其特征在于所述 的错误根据错误发生的阶段分为两种情况,需要分别处理内部错误在中介流程处理过程中 发生错误,不涉及调用外部服务;调用服务错误在调用外部服务的时候发生错误。
3、 根据权利要求1所述的一种基于XESB系统的中介层服务容错方法,其特征在于所述 的错误检测由三类错误检测构成, 一类是对消息处理过程的异常的捕获,第二类是超时错误, 超时错误检测在初始化时指定了最大等待时间,它实现了运行时事件侦听器接口,在侦听到服 务请求发送事件时开始计时,如果在指定的时间内返回则停止计时,否则触发错误处理程序; 第三类类错误检测是通过设置错误触发条件,对消息的内容进行求值判断,如果达到错误条件 则触发错误处理。
4、 根据权利要求1所述的一种基于XESB系统的中介层服务容错方法,其特征在于所述 的错误根据错误发生的阶段分为两种情况,需要分别处理内部错误在中介流程处理过程中 发生错误,不涉及调用外部服务;调用服务错误在调用外部服务的时候发生错误。
5、 根据权利要求1所述的一种基于XESB系统的中介层服务容错方法,其特征在于所述 的容错策略定义了错误分类,配置了错误检测和错误处理之间的对应关系,每个错误检测在触 发错误时都会指定一个错误编号,每个错误处理器也配置了处理的错误编号,错误检测模块触 发错误后,容错策略根据错误号找到匹配的错误处理器进行处理。用户可根据需求对容错策略 进行灵活配置,系统执行流程时自动根据策略配置启动容错组件。
6、 根据权利要求1所述的一种基于XESB系统的中介层服务容错方法,其特征在于所述的错误处理器包括重试错误处理器、等价服务调用错误处理器和多服务调用错误处理器三种 类型,所述的重试错误处理器在初始化时指定了重试次数和重试时间间隔,开始错误处理时会每隔指定时间调用服务直到服务成功返回或达到最大重试次数错误恢复失败;等价服务调用错误处理器实现了等价服务调用的错误处理机制,依次调用已配置的等价服务,直到服务成功返回或是所有的服务调用失败,这时会返回错误信息;多服务调用错误处理器实现了多服务调用 机制,同时调用多个服务,从多个服务响应中选取需要的服务结果。
全文摘要
一种基于XESB的服务中介层容错方法,所述的中介层在服务调用失败时采用基于策略的服务容错方式对错误进行恢复。在XESB中介层采用基于策略的服务容错机制,分为错误检测、错误恢复和容错策略3部分。错误检测器检测系统错误,错误恢复模块在错误发生时进行恢复,容错策略定义了错误的检测方式和错误处理器之间的对应关系。在服务调用发生错误时,提供重试机制、等价服务调用机制和多服务调用机制对错误进行恢复处理。本发明保障了服务的可靠性,提高了错误检测、容错组件的重用和错误处理方式的灵活性。
文档编号H04L12/24GK101247419SQ200810102768
公开日2008年8月20日 申请日期2008年3月26日 优先权日2008年3月26日
发明者斗 孙, 顺 张, 李先贤, 李竹青, 颖 王, 马殿富 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1