一种检查点处理器和用于管理检查点的方法

文档序号:7595118阅读:215来源:国知局

专利名称::一种检查点处理器和用于管理检查点的方法
技术领域
:本发明涉及分布式计算和Web服务领域,并具体涉及分布式系统中的检查点领域。
背景技术
:Web服务代表分布式计算的前沿,并且被看作是开发用于支持环球网上基于组件(component-based)的应用程序的快速发展的一种真正通用模式的基础。在本领域众所周知,Web服务包括大量新出现的用以说明面向服务的、基于组件的应用程序的结构体系的标准。特别地,Web服务是在语义上封装了离散的功能的松散连接的、可重复使用的软件组件,并且是分布式的、可通过标准的网际协议有计划地访问。从概念上,Web服务代表一种过程中的离散任务通过有价网而广泛分布的模式。特别地,许多业界专家认为面向服务的Web服务的开始将是因特网的下一个革命性的阶段。典型地,Web服务可以由诸如Web服务定义语言(WSDL)之类的接口来定义,并且可根据该接口而执行,只要该执行符合该Web服务接口,执行细节差别不大。一旦根据一个对应的接口执行了一个Web服务,则该执行可以在Web服务注册中心注册,例如本领域中众所周知的统一描述、发现和集成(UniversalDescription,DiscoveryandIntegration,UDDI)。注册完后,服务请求者可以通过使用任何支持通信协议,例如,简单对象访问协议(SOAP)访问该Web服务。在支持Web服务的面向服务的应用环境中,已经证明实时动态地定位可靠的服务并且集成那些服务来满足一个应用的目的是有问题的。虽然注册、目录和发现协议提供了用于执行服务检测和服务到服务的互联逻辑的基本结构,但是单独的注册、目录和发现协议并不适合于分布式的互用性。相反,一种高度结构化的、定形的机制对促进Web服务在形成统一应用的过程中的分布是必需的。特别地,通过开放网格服务结构体系(OGSA)的网格机制的生理学可以在分布式系统中以对注册器、目录和发现协议排它性使用所不可能的方式在Web服务的发现和捆绑中提供协议,下面称之为“网格服务”。如IanFoster,CarlKesselman和StevenTuecke在国际期刊超级计算应用(2001)中的网格的解剖,以及IanFoster,CarlKesselman,JeffreyM.Nick和StevenTuecke在网格的生理(Globus.org,2002年7月22日)中所述,通过请求客户可以创建、命名和发现网格服务实例,网格机制可以提供分布式计算基础结构。网格服务通过提供增强的资源共享和时序安排支持,对通常由复杂的分布式应用程序要求的长期状态的支持,以及对企业内部合作的支持来扩展纯粹的Web服务。而且,单独的Web服务处理持续性服务的发现和调用,而网格服务则支持动态产生和结束的瞬时服务实例。使用网格服务的显著的好处包括减少了信息技术所有者的费用,因为它更有效地利用了计算资源,以及在解除集成各种计算组件负担方面进行了改善。因此,网格机制,特别是符合OGSA的网格机制,通过提供用于分布式系统集成的基础,甚至是通过有组织的域,可以实现面向服务的体系结构。重要的是,网格服务在许多情况下不一定是短期的、瞬间的Web服务,而是长期的Web服务。例如,长期运行的Web服务可以从长间隔的计算中产生,或者从确保对延期运行的服务的访问中产生。然而,通常情况下,根据可置于应用服务器中的已知的小型服务程序技术来执行Web服务。然而,传统上小型服务程序大部分用于执行只历时一分钟或两分钟的短期运算。在这点上,当应用服务器企图毁坏一个小型服务程序时,例如,当重新启动一个Web应用时,应用服务器通常将假定在该应用程序可以毁坏一个小型服务程序之前,对应于一个请求的该小型服务程序只需要大约一分钟左右来完成一个等待请求。然而,对于一个执行瞬时Web服务的典型的小型服务程序来说,上述假设可能是适当的,但对于一个长期运行的Web服务而言就不正确了。特别地,我们知道,在通常的分布式计算过程中,特别在企业对企业(B2B)的交易背景下,Web服务可以以特定方式挂起和恢复。而且,在提供长期运行的Web服务的应用服务器崩溃的情况下,证明恢复是有问题的。
发明内容本发明针对现有技术的应用服务器方案的上述缺点,提出了一种新的并非显而易见的用于确保在应用服务器崩溃和重新启动过程中Web服务保持完好的方法、系统和计算机程序产品。更特别地,通过一种新的并非显而易见的检查点技术的应用,长期运行的Web服务和它们各自的执行状态可以响应重新启动事件而被恢复。这样,尽管应用服务器的配置面向短期的小型服务程序,但长期运行的Web服务也可适应于应用服务器。根据本发明,检查点处理器可以配置成通过一个Web服务引擎而联接到单独的Web服务。检查点处理器可以包括被编程以存储用于单独的Web服务实例调用的检查点数据的检查点逻辑。检查点处理器还可以包括被编程以把所存储的检查点数据恢复给单独的Web服务实例调用中失败的实例调用的替代的重新启动逻辑。最后,检查点处理器可以包括被编程以清除所存储的、用于单独的Web服务实例调用中结束了的、没有发生故障的Web服务实例调用的检查点数据的清除逻辑。特别地,在本发明的优选方面,还可以包括用于识别用于每个单独的Web服务实例调用的异步相关器和用于存储与所存储的相应检查点数据相关的异步相关器的逻辑。一种用于在Web应用中管理检查点的方法可以包括存储用于调用一个请求Web服务实例的状态对象;以及,响应该Web服务实例中的故障,重新启动一个替代Web服务实例并向替代该请求Web服务实例的Web服务实例提供状态对象。特别地,存储步骤还可以包括与所存储的状态对象一起存储一个用于该请求Web服务实例的唯一的标识符。存储步骤还可以包括识别用于该调用的异步相关器;以及与所存储的状态对象一起存储标识的异步相关器。最后,存储步骤可以包括检测Web服务实例中的重要(notable)事件,并且响应该检测,存储一个用于调用一个请求Web服务实例的状态对象。或者,存储步骤可以包括周期性地存储用于调用一个请求Web服务实例的状态对象。附图中示出了目前优选的实施例,但是,我们应该明白,本发明并不限于图中所示的精确的布置和手段,其中图1是本发明的配置成检查点和重新启动Web服务的Web服务结构体系的示意图;图2是说明在应用服务器中管理检查点处理以及使用在检查点处理中被处理的持续性数据来恢复Web服务实例的过程的方框图;图3A是说明图1的系统中用于管理检查点处理的过程的流程图;图3B是说明在一个Web服务已经完成其操作之后对该Web服务实例调用执行清除的过程的流程图;以及图3C是说明使用在图3A的检查点处理中被处理的持续性数据来恢复一个Web服务实例的过程的流程图;以及图4是用于管理用于单独的Web服务实例的驻留数据的过程的方框图。具体实施例方式本发明是用于进行检查点作业和重新启动长期运行的Web服务的方法和系统。根据本发明,单独的Web服务实例可以周期性地或者响应触发事件来对其各自与特定的调用相关的状态进行检查点处理。更特别地,单独的Web服务实例可以调用包含在支持每个Web服务实例中的基本Web服务引擎中或与该引擎相关的检查点作业功能。对于每个Web服务实例调用,在检查点作业处理的过程中,一个用于唯一标识实例的标识符就如Web服务实例提出的任何状态信息一样,可以在存储器中一直存在。另外,能标识特定的调用与一个调用客户之间的异步通信期间(session)的相关器也在存储器中持续存在。随后,当例如,由于应用服务器崩溃而需要重新启动一个Web服务实例调用时,通过上载实例标识符、持续存在的状态信息和异步相关器中的每一个,可以将被重新启动的Web服务实例调用恢复到它先前的状态。图1是本发明的已配置成检查点作业和重新启动Web服务实例调用的Web服务结构体系的示意图。该Web服务结构体系可以包括置于应用服务器140中或与之相关联的Web服务引擎150。Web服务引擎150可以创建Web服务实例130A、130B、130n,并且,Web服务引擎可以调节与Web服务实例130A、130B、130n的外部交互作用。客户计算元件110(为简便起见图中只示出了一个客户计算元件)通过在计算机通信网络120上调用服务请求可以访问Web服务实例130A、130B、130n,并且也是通过计算机通信网络120接收调用的结果。在这点上,客户计算元件110与Web服务实例130A、130B、130n之间的相互作用被技术人员公认为是传统的Web服务体系结构的特征。然而,重要的是,与传统的Web服务结构体系不同,检查点处理器160可以联接到Web服务引擎150上。检查点处理器160可以提供用于为了Web服务130A、130B和130n的实例调用而管理检查点的基本功能(方法论),以及与该功能的外部接口,以便该功能可以由Web服务实例130A、130B、130n任意访问。所以,检查点处理器160可以接收Web服务实例130A、130B和130n提供的状态对象180并将其保存在持续性存储器170中。另外,检查点处理器160可以与持续的状态对象180中的单独的对象相关联地存储对应的相关标识符190,每一个相关标识符190可以标识每次调用的特定异步通信期间。特别地,当必须重新启动Web服务实例130A、130B、130n调用中的个别一个时,可以通过检查点处理器160的操作来恢复该单独一个实例调用的状态。明确地说,可以从持续性存储器中检索与重新启动的调用相关的持续性状态对象180,并将其上载到重新启动的调用中。此外,用于异步通信期间的相关标识符190可被返回到重新启动的实例调用中,以便先前已经建立的、客户计算元件110与实例调用之间的异步期间可以不留痕迹地重新开始,而不会向客户计算元件110泄漏曾发生服务中断。图2是说明用于管理应用服务器中的检查点作业处理以及用于使用在图1中的检查点作业过程中被处理的持续性数据来恢复Web服务实例调用的系统的方框图。该系统可以包括联结到Web服务引擎250的检查点处理器260。检查点处理器260可以包括检查点逻辑210、重新启动逻辑220和清除逻辑230中的每一个。检查点逻辑210可以配置成在通过通信方式联接到Web服务引擎250的单个Web服务实例240A、240B、240n的请求下调用检查点作业过程。比较起来,重新启动逻辑220可以配置成恢复Web服务实例240A、240B和240n中失败的调用的状态,其中该状态已通过检查点逻辑210而预先持续性保存。最后,清除逻辑230可以将持续性存在的检查点数据从数据存储器中去除,因为没有必要再保留这种经过检查点作业的数据了。操作中,Web服务240A、240B、240n中的单独一个可以通过一个公布的接口(未示出)访问检查点处理器260。更具体地说,通过操作过程,Web服务240A、240B、240n中的单独一个可以通过检查点逻辑210请求以状态对象280的形式创建并持续保存检查点数据和相关标识符。对检查点作业的请求可以自发地、周期性地或者在发生重要事件时发生,例如,当检测到以Web服务240A、240B、240n中的单独一个为主机的节点即将发生故障时。例如,当检测到在该节点上的一个或多个异常时,为了预防的目的可以请求检查点作业。图3A是说明用于在图2中的检查点逻辑210中管理检查点作业过程的处理的流程图。从方框310开始,检索用于请求该检查点操作的Web服务实例的唯一标识符。在方框315中,Web服务的状态可以置于数据对象中并使之序列化地存储。在方框320中,序列化的对象可以放置在持续性存储器中,以便可以使用唯一的标识符检索序列化的对象。最后,除了任何其它的优先上下文数据外,用于标识特定调用及其调用客户的异步相关器,例如,HTTPR传输相关器可以在存储器中持续存在。这样,当一个Web服务调用失败时,可以在交互客户不察觉的情况下不留痕迹地将一个替代的Web服务调用恢复到先前存储的状态。现在回到图2,当已经确定Web服务240A、240B、240n中的一个调用需要重新启动时,重新启动逻辑220可以引导创建替代的Web服务调用、与创建替代的调用相关联或者标识一个已有的、能够重新开始先前由失败的Web服务调用承担的处理的Web服务。为实现该目的,可以检索状态对象280,并将其发送到Web服务的替代实例调用。作为恢复和发送处理的一部分,针对状态对象280所代表的状态的相关标识符也可提供给替代的Web服务实例。这样,Web服务实例及其与相关标识符290相关的客户之间的交易可以在该失败的相关客户不知道的情况下不留痕迹地继续进行。作为另一个特别的说明,图3C是说明使用经由图3A的检查点作业过程处理的持续性数据来恢复Web服务实例的过程的流程图。开始,图2的重新启动逻辑220可以在持续性存储器中扫描不完整的Web服务实例调用的参考。在这点上,从方框335开始,标识请求重新启动的第一Web服务实例调用。在方框340中,除了其它先前存储的上下文数据外,可以检索先前存储的相关器,例如HTTPR相关器,并且可以检索序列化的检查点数据本身。在方框345中,如果将要创建一个新的Web服务实例,则在方框350中,例示一个新的Web服务实例。否则,如果一个现有的Web服务实例可以用于恢复不完整的Web服务实例,则不必创建新的实例。在这两种情况下,在方框355中,经过检查点作业的状态、上下文数据和相关器可以转到替代Web服务实例。而且,在判断方框360和方框365中,对于每个标识出的受应用程序、服务器或节点故障影响的不完整的Web服务实例都可以重复上述的过程。只有经过图2的检查点逻辑210而进行了检查点处理的信息必须保持持续存在,直到相关的Web服务实例调用完成其操作并且结果已经成功地传送到客户为止。随后,清除逻辑230可以丢弃用于该Web服务实例调用的经过检查点作业的信息。更具体地说,清除逻辑230可以去除持续存在的状态对象280和与Web服务240A、240B、240n中的个别一个相关的相关标识符。特别地,当成功地完成了一个Web服务实例的调用后,清除逻辑230可以清除持续性存储器中为了成功完成Web服务实例调用而持续性存在的状态对象280。在更具体的示例中,图3B是说明用于在一个Web服务已经完成其操作之后对该Web服务实例执行清除的过程的流程图。从方框330开始,可以对持续性存储器执行清除操作。响应清除操作的调用,可以丢掉与成功完成的调用相关的状态信息。而且,在方框335中,该主Web服务中的清除操作还可以丢弃在Web服务实例中本地存储的任何状态信息。在本发明的优选方面,处理程序链还可以配置成与联接到中枢处理程序的一个相关Web服务的检查点操作相配合地对它们各自的状态进行检查点作业。在本领域中众所周知,处理程序链可以在Web服务实例被调用前和调用后执行,并且典型地执行预备的或内务处理功能,例如,记录、加密、解密以及访问控制。在某些情况下,在Web服务调用后执行的处理程序可能需要来自在准备Web服务调用时执行的处理程序的数据。结果,在本发明中,不论Web服务何时执行检查点处理,处理程序都可以对它们各自的状态进行检查点作业。为了提供处理程序状态以及Web服务实例调用状态的检查点作业,可持续保存使相关器和目标标识符与每个处理程序及Web服务实例调用相关联起来的数据结构。Web服务调用需要的用来保持Web服务调用状态的信息可以超出检查点事件和必要的重新启动事件。特别地,计划的交易可以暂停,并且在经过一定延迟之后恢复,就如在B2B伙伴之间交互作用的典型情况,或者是由故障节点引起的节点失效切换(failover)的情况。参考图4,在这种情况下,在Web服务实例410调用的检查点处理420过程中,检查点对象450以及可以一个指示Web服务调用状态的特定驻留指示符440可以存储在持续性存储器430中。该状态可以包括“瞬时的”、“暂停的”、“持续的”等。一旦驻留指示符440已与Web服务调用相关地进行存储,检查点处理420可以建立重新启动过程470所使用的通知事件460。更具体地说,观测到的个别事件490可以在重新启动过程470中触发各种类型的重新启动处理。例如,具有“暂停”驻留指示符的Web服务可以向Web服务引擎指示一个响应处理程序不应该被调用,尽管该Web服务可能已正常退出。这样,协调典型的B2BWeb服务交互所需要的逻辑的绝对数量可以减少到只参考给定的Web服务实例调用的驻留指示符。本发明的很显著的一个优点是长期运行的Web服务实例可以对从实例调用中产生的部分结果进行检查点作业,以致于调用本身可以幸免于父Web应用程序、应用服务器或重要节点的故障。另外,异步通信相关器,例如HTTPR相关器可以具有杠杆作用,以致于即使在计算机通信网络上欠响应的情况下,Web服务实例调用的还原也可以幸存。通过对处理程序状态以及Web服务实例调用状态的检查点作业,本发明还可以提供处理程序链的使用。本发明可以以硬件、软件或者硬件和软件组合来实现。本发明的系统和方法的执行可以在一个计算机系统中以集中的方式实现,或者在不同的元件分布在几个互联的计算系统的情况下以分布式的方式实现。适宜于执行上述方法的任何一种计算机系统或者其它的装置都适合执行上述的功能。典型的硬件和软件的组合可以是带有计算机程序的通用的计算机系统,当计算机程序被加载和执行时,计算机程序控制计算机系统以便执行上述的方法。本发明还可以嵌在计算机程序产品中,计算程序产品包含能够执行上述方法的所有的特点并且,当在计算机系统中加载时能够执行这些方法。在本上下文中的计算机程序或者应用程序指以任何语言、代码或符号表示的、目的在于使具有信息处理能力的计算机系统直接或者在下面的任何一项或两项之后执行特定功能的一组指令的任何表达式a)转换成另外一种语言、代码或符号;b)在不同的材料形式中复制。值得注意的是,在不脱离其精神或本质属性的情况下,本发明可以嵌在其它特定形式中,因此,指示本发明的范围必须参考下面的权利要求书而不是前面的技术说明。权利要求1.一种配置成通过Web服务引擎连接到各Web服务的检查点处理器,所述的检查点处理器包括检查点逻辑,用于存储用于各Web服务实例调用的检查点数据;重新启动逻辑,用于把所述的所存储的检查点数据恢复给各Web服务实例调用中失败的Web服务实例调用的替代;以及清除逻辑,用于清除用于各Web服务实例调用中结束了的、没有发生故障的Web服务实例调用的所存储的检查点数据。2.如权利要求1所述的检查点处理器,还包括用于标识针对每个Web服务实例调用的异步相关器以及用于存储与相应的各所述存储的检查点数据相关的所述异步相关器的逻辑。3.一种用于在Web应用中管理检查点的方法,该方法包括以下步骤存储用于调用一个请求Web服务实例的状态对象;以及响应所述的Web服务实例中的故障,重新启动一个替代Web服务实例,并将状态对象提供给所述请求Web服务实例的替代Web服务实例。4.如权利要求3所述的方法,其中,所述的存储步骤还包括与所述存储的状态对象一起存储一个用于所述请求Web服务实例的唯一标识符的步骤。5.如权利要求4所述的方法,其中所述存储步骤还包括以下步骤标识用于所述调用的异步相关器;以及与所述存储的状态对象一起存储所述标识的异步相关器。6.如权利要求3所述的方法,其中,所述的存储步骤还包括检测所述Web服务实例中的一个重要事件;以及响应所述检测结果,存储用于调用一个请求Web服务实例的状态对象。7.如权利要求3所述的方法,其中所述存储步骤还包括周期性地存储用于调用一个请求Web服务实例的状态对象的步骤。8.如权利要求4所述的方法,其中所述提供步骤还包括向所述替代Web服务实例提供所述唯一标识符的步骤。9.如权利要求5所述的方法,其中所述提供步骤还包括向所述替代Web服务实例提供所述的异步相关器的步骤。10.如权利要求3所述的方法,还包括当所述Web服务调用已经正常完成所述调用时丢弃所述存储的状态对象的步骤。11.如权利要求3所述的方法,还包括存储用于管理所述Web服务实例的一个处理程序链的状态数据的步骤。12.如权利要求3所述的方法,还包括以下步骤存储用于所述的Web服务实例调用的驻留指示符;以及注册至少一个选择的事件,当所述事件被接收时,使所述重新启动和提供步骤开始。13.如权利要求3所述的方法,其中所述重新启动步骤包括如下步骤确定现有的Web服务实例是否可以作为所述替代Web服务实例;以及如果不能定位一个可以作为所述替代Web服务实例的现有Web服务实例,则实例化一个替代Web服务实例。14.一种其上存储有用于管理Web应用中的检查点的计算机程序的机器可读存储器,该计算机程序包括使机器执行以下步骤的一系列指令存储用于调用一个请求Web服务实例的状态对象;以及响应所述的Web服务实例中的故障,重新启动一个替代Web服务实例,并将状态对象提供给所述请求Web服务实例的替代Web服务实例。15.如权利要求14所述的机器可读存储器,其中,所述的存储步骤还包括与所述存储的状态对象一起存储一个用于所述请求Web服务实例的唯一标识符的步骤。16.如权利要求15所述的机器可读存储器,其中所述存储步骤还包括以下步骤标识用于所述调用的异步相关器;以及与所述存储的状态对象一起存储所述标识的异步相关器。17.如权利要求14所述的机器可读存储器,其中,所述的存储步骤还包括检测所述Web服务实例中的一个重要事件;以及响应所述检测结果,存储用于调用一个请求Web服务实例的状态对象。18.如权利要求14所述的机器可读存储器,其中所述存储步骤还包括周期性地存储用于调用一个请求Web服务实例的状态对象的步骤。19.如权利要求15所述的机器可读存储器,其中所述提供步骤还包括向所述替代Web服务实例提供所述唯一标识符的步骤。20.如权利要求16所述的机器可读存储器,其中所述提供步骤还包括向所述替代Web服务实例提供所述的异步相关器的步骤。21.如权利要求14所述的机器可读存储器,还包括当所述Web服务调用已经正常完成所述调用时丢弃所述存储的状态对象的步骤。22.如权利要求14所述的机器可读存储器,还包括存储用于管理所述Web服务实例的一个处理程序链的状态数据的步骤。23.如权利要求14所述的机器可读存储器,还包括以下步骤存储用于所述的Web服务实例调用的驻留指示符;以及注册至少一个选择的事件,当所述事件被接收时,使所述重新启动和提供步骤开始。24.如权利要求14所述的机器可读存储器,其中所述重新启动步骤包括如下步骤确定现有的Web服务实例是否可以作为所述替代Web服务实例;以及如果不能定位一个可以作为所述替代Web服务实例的现有Web服务实例,则实例化一个替代Web服务实例。全文摘要本发明提供一种检查点处理器和用于管理检查点的方法。检查点处理器可以包括编程为存储用于单独的Web服务实例调用的检查点数据的检查点逻辑。检查点处理器还可以包括编程为把存储的检查点数据恢复给单独的Web服务实例调用中失败的Web服务实例调用的替代的重新启动逻辑。最后,检查点处理器可以包括编程为清除单独的Web服务实例调用中结束了的、没有发生故障的调用的存储的检查点数据的清除逻辑。在本发明的优选方面,可以包括用于标识用于单独的Web服务实例调用中的每一个的异步相关器的逻辑,以及用于存储与对应的存储的检查点数据相关的异步相关器的逻辑。文档编号H04L29/06GK1578300SQ20041006005公开日2005年2月9日申请日期2004年6月25日优先权日2003年7月1日发明者道格拉斯·B·戴维斯,谭逸心,布拉德·B·托普尔,维沃卡耐德·威兰克申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1