CN1668014A - 自愈合复合网络服务方法和装置 - Google Patents
自愈合复合网络服务方法和装置 Download PDFInfo
- Publication number
- CN1668014A CN1668014A CN200410039642.9A CN200410039642A CN1668014A CN 1668014 A CN1668014 A CN 1668014A CN 200410039642 A CN200410039642 A CN 200410039642A CN 1668014 A CN1668014 A CN 1668014A
- Authority
- CN
- China
- Prior art keywords
- network service
- service
- healing
- unit networks
- alternative network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
- G06F15/7882—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/313—Logic programming, e.g. PROLOG programming language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Agricultural Chemicals And Associated Chemicals (AREA)
Abstract
公开了一种自愈合的复合网络服务流程处理方法,所述复合网络服务流程调用至少一个单元网络服务。为单元网络服务提供至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能。分析所述复合网络服务流程的模型定义,以搜索其中启动对单元网络服务的调用的步骤。在从所述复合网络服务流程的模型定义中搜索到的所述启动对单元网络服务的调用的步骤之后,插入愈合逻辑。在所述复合网络服务流程执行过程中,所述愈合逻辑对之前的调用步骤中对单元网络服务的调用是否失败进行检测,并在检测到调用失败的情况下,调用所述对应于未能成功调用的单元网络服务的备选网络服务。
Description
技术领域
本发明涉及愈合复合网络服务方法和装置,特别涉及使复合网络服务具有自愈合能力的流程方法和装置、具有自愈合能力的执行复合网络服务的方法和装置、以及具有自愈合能力的复合网络服务流程方法。
背景技术
因特网技术的发展激发了革新的浪潮,对企业与其合作伙伴、用户相互作用的方式产生了巨大的影响。特别地,作为用于企业对企业(business-to-business)合作的有效自动化的大有前景的技术,网络服务合成技术得到了迅速的发展。
网络服务可以定义为能在网络上公布、定位并调用的自包容(self-contained)、自描述(self-describing)模块应用程序。网络服务可以组合形成新的服务流程,下文中将由多个网络服务组合而成的新网络服务流程称为复合网络服务流程。从单个网络服务产生复合网络服务流程的过程叫做网络服务合成,即合并现有的服务(或构件块)来形成新的服务。复合网络服务是根据预先定义的服务流模型相互作用的多个合作伙伴网络服务(单元网络服务)的组合。这里所说的合作伙伴网络服务本身可以是基本网络服务,也可以是复合网络服务。通过结合合作伙伴的网络服务,复合网络服务为用户提供复合的网络服务,并满足用户复杂的要求。复合网络服务通常以网络服务流程的模型定义。例如,复合网络服务“旅行代理”可以集合多个网络服务,如“机票预定”、“旅行保险”、“宾馆预定”、“汽车租赁”、“路线设计”等,并根据网络服务流程模型而依次或同时调用以上合作伙伴的网络服务的。图1展示了复合网络服务的示例“旅行代理”服务。用户向“旅行代理”服务发出请求,“旅行代理”服务根据用户的请求调用“航空服务”、“酒店服务”、“汽车租赁服务”,而执行这些服务又都需要调用“银行服务”。
下面,首先描述一下网络服务流程的相关标准。国际商务机器公司(IBM)公司的网络服务流语言(WSFL)和微软公司的可扩展语言(XLANG,eXtensible language)是用于定义网络服务合成标准的最早的语言。WSFL定义活动(activity)的指定顺序和特定流程中的数据交换。其既定义执行顺序,也定义流中每个步骤到指定操作的映射。WSFL支持异常处理,但是并不直接支持交易(transaction)。XLANG所关注的焦点在于创建业务流程(businessprocess)和网络服务提供商之间的相互作用。其具有鲁棒的异常处理功能,通过补偿支持运行较长交易。
近来,由WSFL和XLANG给出的网络服务工作流规范已被来自IBM、微软以及BEA的新规范所代替,即用于网络服务的业务流程执行语言(BPEL4WS)。BPEL4WS对业务流程相互作用中网络服务的行为(behavior)建模。该规范提供了一种基于可扩展标记语言(XML)的语法,用于描述协调参与业务流程的网络服务所需的控制逻辑和数据交换。然后由执行网络服务流程实例的网络服务流程引擎(process engine),例如BPWS4J(BusinessProcess Execution Language for Web Services Java Run Time),解释并执行网络服务。在执行期间,网络服务流程可以调用多个合作伙伴的网络服务。图2展示了BPEL4WS流程的示意图。其中BPEL4WS流程中包括多个步骤,一些步骤调用外部的网络服务。用户经由网络服务描述语言(WSDL)向BPEL4WS流程发出请求,并获得答复。该流程具有异常处理和交易、区分角色和合作伙伴、持久且可变等特性。
为了吸引并保留用户以及商业合作伙伴,需要以始终如一的、可靠的质量执行复合网络服务。特别地,对复合网络服务流程而言极为重要的是,即使在合作伙伴发生故障的情况下,也一定要满足向用户承诺的服务目标。以前面提到的“旅行代理”服务为例,假定已预定了中国南方航空公司的机票。根据预先定义的业务流程,应该从新概念汽车租赁公司租用汽车,可是该租赁公司的网络服务中出现了一些系统错误,例如通信故障、系统关闭等。如果“旅行代理”网络服务处理不能恢复这一故障,那么“旅行代理”服务将不得不因为不能租到汽车而向用户表示道歉。而从用户的角度看,这一旅行代理服务的质量很差,而且不可靠。相反,如果“旅行代理”服务能够修复上述故障,那么就可以最终满足用户的需求。服务可靠的质量将吸引并保留用户。
因此,人们期望复合网络服务在合作伙伴的网络服务出现故障时,能够实现自愈合。自愈合指网络服务流程具有在其合作伙伴网络服务失效时继续执行流程并达到其原始服务目标的能力。根据IBM提出的自动计算理论,自愈合意指系统可以发现、诊断并采取行动应对中断。对于要自愈合的系统而言,其必须能够通过首先检测失效组件,然后使其离线以对其进行修理或将其隔离,最后将修理好的或作为替代的组件重新引入服务中,来恢复失效的组件,而不会产生任何明显的应用程序中断。系统需要预测可能出现的问题,并采取行动来预防故障影响应用程序。
然而,当前还没有其它明显的能够使复合网络服务流程自愈合(self-healing)的方案。当前可能的解决方案有以下两种。
(1)使用特殊的服务平台来保证可靠性。显然,如果所有合作伙伴的服务都是可靠的,那么就可以以可靠的质量执行复合网络服务处理。目前,一些特殊的服务平台如IBM的服务域(Service Domain)可以提供可靠的基本网络服务,从而服务提供商可以在合作中提供可靠的网络服务。然而,这一解决方案的缺陷在于,由网络服务流程构建的复合网络服务的提供商很难要求其所有合作伙伴都购买并采用特殊的专用服务平台以确保合作伙伴的网络服务的可靠性。
(2)使用网络服务流程引擎来提供愈合机制,以便确保复合网络服务的可靠性。但是这些在引擎中实现的愈合机制都是固定的(fixed)、不直观的,可能只有几种配置功能。复合网络服务处理的投资者,如提供商以及管理员等,不能定制或控制这些愈合机制。
美国专利US 6,330,689 B1公开了一种可监测和恢复失效的进程外应用的体系结构,其中通过记录和观察日志来进行监测,而通过重新启动崩溃的应用来进行恢复,但是该专利不能实现实时恢复。
美国专利公告US 2002/0007468 A1公开了一种实现网络计算机系统高可用性的方法和系统,其中通过使各个部件具有高可用性,从而达到全局的高可用性。而在复合网络服务中,要让所有合作伙伴的网络服务都具有高可用性是不切合实际的。
美国专利公告US 2003/0144894 A1公开了一种建立和管理永久的服务提供网络的系统和方法,其侧重于单个服务的自愈合。其中使用管理代理模式来监测、重建失效的单个服务,实时查找重建的服务,并重新调用该服务。该专利要求每个服务都必须遵循其定义的管理代理模式才能实现服务的可靠性。
发明内容
本发明的目的是在使复合网络服务流程在其合作伙伴网络服务出现故障时可以自行恢复,从而不会因为合作伙伴的故障而中断或中止复合网络服务流程。
本发明的进一步的目的是提供一种灵活的,与平台无关的自愈合网络服务流程方法。其进行自我监测和自我恢复,以便确保即使在网络服务的合作伙伴失效时,也能够以较低的成本使网络服务可存活,从而向网络服务的用户提供其原来所要求的服务。
为解决上述目的,本发明提供了一种自愈合的复合网络服务流程方法,所述复合网络服务流程调用至少一个单元网络服务。该方法包括以下步骤:为单元网络服务提供至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能;分析所述复合网络服务流程的模型定义,以搜索其中启动对单元网络服务的调用的步骤;在从所述复合网络服务流程的模型定义中搜索到的所述启动对单元网络服务的调用的步骤之后,插入愈合逻辑;在所述复合网络服务流程中,所述愈合逻辑对之前的调用步骤中对单元网络服务的调用是否失败进行检测,并在检测到调用失败的情况下,调用所述对应于未能成功调用的单元网络服务的备选网络服务。
本发明还提供了一种自愈合的复合网络服务流程装置,所述复合网络服务流程调用至少一个单元网络服务。该装置包括:备选网络服务库,用于为单元网络服务提供至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能;模型分析装置,用于分析所述复合网络服务流程的模型定义,以搜索其中启动对单元网络服务的调用的步骤;愈合逻辑插入装置,用于在所述复合网络服务流程的模型定义中,搜索到的所述启动对单元网络服务的调用的步骤之后,插入愈合逻辑;在所述复合网络服务的流程中,所述愈合逻辑对之前的调用步骤中对单元网络服务的调用是否失败进行检测,并在检测到调用失败的情况下,从备选网络服务库中调用一个对应于未能成功调用的单元网络服务的备选网络服务。
本发明还提供了一种用于执行复合网络服务流程的装置,所述复合网络服务流程调用至少一个单元网络服务。该装置与备选网络服务库配合使用,在所述备选网络服务库中,为单元网络服务提供至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能,该装置包括:自愈合组件,用于在所述装置根据复合网络服务流程而执行对单元网络服务的调用之后,判断是否调用成功,并在判定调用失败的情况下,从备选网络服务库中调用一个对应于未能成功调用的单元网络服务的备选网络服务。
本发明还提供了一种执行复合网络服务的方法,所述复合网络服务流程调用至少一个单元网络服务。该方法包括:在执行对单元网络服务的调用之后,判断是否调用成功;以及在判定调用失败的情况下,从备选网络服务库中调用所述对应于未能成功调用的单元网络服务的备选网络服务,其中,在备选网络服务库中,为单元网络服务提供了至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能。
本发明具有以下优点:
(1)与采用特殊服务平台相比,本发明更具有可行性。本发明与平台无关,其在复合网络服务流程级上保证可靠性,而对提供合作伙伴的网络服务的服务平台没有任何特殊要求。即,本发明不要求各合作伙伴的网络服务达到高可用性。这在弱耦合网络服务时代中更具有可行性。
(2)可以根据需要进行改变(面向投资者)。本发明允许复合网络服务的投资者定制愈合机制,并且这些愈合逻辑可以很容易地根据需要集成到复合网络服务流程中。
(3)低成本。如果合作伙伴没有失效,则根本不影响服务流程。如果合作伙伴失效了,那么服务流程也只是执行另一个调用。尽管调用另一个服务将带来一点执行成本,但是这保证了整个处理的可靠性。假设复合网络服务流程需要调用100个合作伙伴的服务,其中前99个都调用成功了,而最后一个调用失败了。如果不使用这里公开的方法,那么整个处理实例就失败了,而前99个合作伙伴的工作也就无效了。可是如果采用本发明的方法,服务处理继续执行,即,调用失效的合作伙伴的网络服务的一个候补网络服务,并返回结果。从而,保持了前99个合作伙伴的工作,并降低了复合网络服务的成本。
附图说明
通过参考附图对本发明实施例的详细描述,本发明的上述及其它方面和优点将更加明显,其中:
图1展示了复合网络服务的示例;
图2展示了BPEL4WS处理的示意图;
图3示意性地展示了本发明用于使复合网络服务流程具有自愈合能力的相关装置;
图4展示了本发明使复合网络服务流程具有自愈合能力的方法的流程图;
图5展示了愈合器的基本处理的流程图;
图6展示了复合网络服务流程的自愈合流程图;
图7A展示了BPEL4WS流程的一个例子;
图7B展示了图7A所示例子的自愈合BPEL4WS流程;
图8展示了处理引擎如何调用作为活动实现的合作伙伴网络服务;以及
图9展示了本发明的自愈合流程引擎。
具体实施方式
下面详细描述本发明。
现在,从流程设计者交给服务提供商的网络服务流程是诸如XML文件的说明性表格,而不是传统的不可读的二进制代码。在本发明中,自动分析业务流程,然后在业务流程中适当的位置插入愈合逻辑。这些愈合逻辑确保网络服务流程在其合作伙伴的网络服务出现故障的情况下,继续满足用户原来的要求,而不影响以XML文件描述的原始业务流程。同时,愈合逻辑符合业务流程的规范,如BPEL4WS或WSFL,即符合其语法和语义定义,能够做到自包容。包括有愈合逻辑的网络服务流程可以称为自愈合网络服务流程。自愈合网络服务流程可以配置在任何服从规范(specification-compliant)流程执行平台(流程引擎)上执行。当在流程引擎上执行自愈合网络服务流程时,如果合作伙伴网络服务失效,愈合逻辑将首先检测并记录失效的合作伙伴网络服务,将调用备选网络服务的愈合器引入业务流程中,而不产生任何明显的流程中断。伙伴服务及其备选服务都预先定义在伙伴服务注册表中。伙伴服务失效后,只需查询该注册表,即可调用备选服务。业务流程继续,以便满足原来的服务要求。
首先参考图3-5详细描述本发明使复合网络服务流程具有自愈合能力的方法和相关装置。
图3示意性地展示了本发明用于使复合网络服务流程具有自愈合能力的相关装置。该装置包括有合作伙伴网络服务库、愈合产生器和愈合器产生装置。图4展示了本发明使复合网络服务流程具有自愈合能力的方法的流程图。
作为示例,在图3中的复合网络服务流程模型中,首先执行步骤1,然后并列执行步骤2A和2B,最后执行步骤3,其中步骤2A和2B分别调用网络服务“WS2A”和“WS2B”。
合作伙伴网络服务库是备选网络服务的容器,其中分别为复合网络服务流程中所要调用的网络服务WS2A和WS2B提供多个备选网络服务WS2A_alternative_1至WS2A_alternative_n和WS2B_alternative_1至WS2B_alternative_m。备选网络服务提供相同的功能,但是其由不同的服务提供商提供。例如,中国东方航空公司的“机票预定”服务可以作为中国南方航空公司的“机票预定”服务的备选网络服务。实际的提供商可以在感兴趣的合作伙伴网络服务库中注册,以提供期望的服务。当复合网络服务流程中一个合作伙伴网络服务不可用时,可以使用合作伙伴网络服务库。选择并调用对应的库中的备选网络服务,以替代不可用的合作伙伴网络服务。例如,在复合网络服务流程“旅行代理”中,如果中国南方航空公司的“机票预定”服务失效,则调用中国东方航空公司的“机票预定”服务,并委托预定机票。
在合作伙伴网络服务库中,可以根据备选网络服务选择方案来给备选网络服务指定不同的调用等级。该选择方案可以基于涉及诸如服务可用性等参数的等级评定算法来制定,使得自愈合流程可以根据等级来调用备选网络服务。
愈合产生器包括模型分析装置、愈合逻辑产生装置以及愈合逻辑插入装置,用于对已有的复合网络服务流程模型定义进行进一步处理。在图4的步骤S410中,模型分析装置分析复合网络服务流程模型定义中的一个步骤,以搜索其中启动对合作伙伴网络服务的调用的步骤,如图3中的步骤2A和步骤2B,并在步骤S420判断该模型定义中的这一步骤是否要调用合作伙伴网络服务。如果在步骤S420判定其不调用合作伙伴网络服务,则流程转入步骤S460,这将在下文中描述。如果在步骤S420中判定要调用合作伙伴网络服务,则在步骤S430,愈合逻辑产生装置产生愈合逻辑,并在步骤S440由愈合逻辑插入装置将所产生的愈合逻辑插入复合网络服务流程的模型定义中搜索到的所述启动对合作伙伴网络服务的调用的步骤(2A、2B)之后,如图3中自愈合流程模型中的步骤2A-H、2B-H,其分别用于检测在前的步骤2A和2B中对合作伙伴网络服务的调用是否成功。愈合逻辑可以根据是否得到合作伙伴的应答来判断对该合作伙伴网络服务的调用是否成功。
在步骤S450,愈合器产生装置产生对应于该愈合逻辑的愈合器,如图3中的WS2A-Healer和WS2B-Healer。下文中将对愈合器进行详细描述。
在步骤S460,判断网络服务模型是否结束。如果判定已结束,则本发明的方法也结束。如果判定没有结束,则返回步骤S410,对模型定义中的下一个步骤进行分析。
下面详细描述愈合器。愈合器本身也是网络服务,其可以在合作伙伴网络服务不可用的情况下,从合作伙伴网络服务库中调用该合作伙伴网络服务的备选网络服务,以获得所期望的服务。例如,如果合作伙伴网络服务WS2A不可用,则步骤2A的输出为系统级异常。系统级异常指由于系统故障、网络故障以及应用程序错误而导致的异常情况。在这种情况下,愈合逻辑2A-H将调用愈合器WS2A-Healer。图5展示了愈合器的基本处理的流程图。在步骤S510,愈合器WS2A-Healer根据前面提到的备选网络服务选择方案选择将要调用的备选网络服务,例如WS2A_alternative_1,并在步骤S520调用该备选网络服务。愈合器还可以记录什么时候哪个合作伙伴网络服务不可用,来作为与该合作伙伴网络服务提供商合作的日志。愈合器还可以与合作伙伴网络服务库通信,并参与对备选网络服务调用等级的评估。
经过上述处理,已有的复合网络服务流程变成了具有自愈合能力的自愈合复合网络服务流程,其在网络服务流程引擎上执行。下面参考图6描述复合网络服务流程的自愈合流程。在步骤S610,根据复合网络服务流程的模型定义来执行复合网络服务流程的各个步骤。在步骤S620,根据复合网络服务流程的要求调用合作伙伴网络服务,在步骤S630判断调用是否成功。如果判定调用成功,则处理转入步骤S650。如果判定调用失败,则在步骤S640调用愈合器网络服务。由愈合器网络服务调用备选网络服务。在步骤S650判断到这一步,复合网络服务流程是否结束,如果没有结束,则返回步骤S610,继续执行复合网络服务流程。如果已经结束,则该自愈合流程也结束。
下面参考图7A和7B描述本发明所公开的方法的基于BPEL4WS的实施例。图7A展示了BPEL4WS流程的一个例子,其中用户发送贷款请求,该请求被处理,然后用户得知贷款请求是否被批准。该流程中的行为包括获得消息、调用金融机构的网络服务、并最终答复用户。在BPEL中使用<receive(接收)>、<invoke(调用)>以及<reply(答复)>活动(activity)来定义这三种行为。通过使用结构化的活动而定义的这些活动的关系限定了如何运行这些活动。在这个例子中,可以使用<sequence(排序)>活动来实现排序,从而使这些活动一个接一个地运行。图7B展示了这个例子的自愈合BPEL4WS流程。其与图7A的区别在于,当<invoke>的输出结果为异常时,流程将调用愈合器网络服务,其调用备选网络服务,从而确保该BPEL4WS流程的可靠性。
这个例子的实现步骤如下:
(1)首先分析网络服务流程文件loanapproval.bpel,以搜索调用合作伙伴网络服务(“金融服务”)的活动(<invoke>“金融服务”),并获取该合作伙伴网络服务的信息。
(2)产生愈合器网络服务,其调用该合作伙伴网络服务的备选网络服务。可以从合作伙伴网络服务库和对应的服务WSDL中获得调用所需的信息,如备选网络服务的名称和地址等。
(3)在调用合作伙伴网络服务的步骤之后插入<switch(切换)>和<invoke(调用)>活动,以在前面调用的合作伙伴网络服务出现故障的情况下调用愈合器网络服务。
(4)配置该流程、相关合作伙伴网络服务以及愈合器网络服务。
(5)在流程引擎上执行该自愈合复合网络服务流程。
前面描述的方法和装置通过在复合网络服务流程中添加愈合逻辑,然后在流程引擎执行,以便确保复合网络服务流程的可靠性。本发明的方法也可以稍作改动而由网络服务流程执行引擎采用。即,不对复合网络服务流程本身进行如何修改,而是由网络服务流程执行引擎来执行愈合处理。下文中将“网络服务流程执行引擎”简称为“流程引擎”。
首先简要描述流程引擎。连同复合网络服务流程规范一起,提供了一些工具。例如,IBM提供了被称为BPWS4J的流程引擎,其上可以执行复合网络服务流程。复合网络服务流程引擎接纳描述要执行的业务流程的复合网络服务流程定义文件、描述合作伙伴网络服务的WSDL文件、以及描述所得业务流程到用户的接口的WSDL文件。采用这些输入,流程引擎产生可以作为具有SOAP(Service-Oriented Architecture and Programming,面向服务的架构和编程)接口的网络服务的流程。可以在运行时检索用于描述该流程的接口的WSDL文件。该引擎还可以支持来自流程内部的对网络服务的调用。图8展示了流程引擎如何调用作为活动实现(activity implementation)的合作伙伴网络服务。其中流程模型经过定义后,经由服务请求程序输入流程引擎中。流程引擎执行相应的流程,并与服务调用实用程序进行通信,服务调用实用程序向网络服务提供商的SOAP处理器发送SOAP消息,以便调用其服务容器中的服务,并向服务调用实用程序返回SOAP消息。
图9展示了本发明的自愈合流程引擎。通过在复合网络服务流程引擎中插入愈合组件,复合网络服务流程引擎可以处理合作伙伴网络服务的故障。和前面提到的愈合逻辑相似,愈合组件检测前面的调用是否失败。如果调用失败,则愈合组件将通过服务调用实用程序来调用失效的合作伙伴网络服务的备选网络服务。其工作流程与前面公开的自愈合流程相似,仅有的差别在于在流程引擎中进行自愈合,而不是由流程自身进行自愈合。在流程引擎中执行本发明的优点在于流程模型本身没有发生改变。流程引擎负责运行中的复合网络服务流程的可靠性。这样做的缺点在于,对所运行的流程的投资者而言,愈合组件是固定的、不直观的。
尽管参考本发明的优选实施例具体展示和描述了本发明,但是本领域一般技术人员应该明白,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种修改。
Claims (18)
1.一种自愈合的复合网络服务流程处理方法,所述复合网络服务流程调用至少一个单元网络服务,该方法包括以下步骤:
为单元网络服务提供至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能;
分析所述复合网络服务流程的模型定义,以搜索其中启动对单元网络服务的调用的步骤;
在从所述复合网络服务流程的模型定义中搜索到的所述启动对单元网络服务的调用的步骤之后,插入愈合逻辑;
在所述复合网络服务流程执行过程中,所述愈合逻辑对之前的调用步骤中对单元网络服务的调用是否失败进行检测,并在检测到调用失败的情况下,调用所述对应于未能成功调用的单元网络服务的备选网络服务。
2.如权利要求1所述的方法,其特征在于,在插入愈合逻辑之前,还包括产生所述愈合逻辑的步骤。
3.如权利要求1所述的方法,其特征在于,所述愈合逻辑根据是否从单元网络服务得到应答来判断对该单元网络服务的调用是否失败。
4.如权利要求1所述的方法,还包括以下步骤:
产生愈合器,所述愈合器与备选网络服务库通信,用于调用备选网络服务库中的备选网络服务,
其中,所述愈合逻辑通过调用所述愈合器来调用其所要调用的备选网络服务。
5.如权利要求4所述的方法,其特征在于,所述愈合器本身也是一种网络服务。
6.如权利要求4所述的方法,还包括所述愈合器记录调用失败的单元网络服务及调用失败时间的步骤。
7.如权利要求1所述的方法,其特征在于,所述至少一个备选网络服务分为多个调用等级,愈合逻辑根据调用等级调用备选网络服务。
8.一种自愈合的复合网络服务流程处理装置,所述复合网络服务流程调用至少一个单元网络服务,该装置包括:
备选网络服务库,用于为单元网络服务提供至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能;
模型分析装置,用于分析所述复合网络服务流程的模型定义,以搜索其中启动对单元网络服务的调用的步骤;
愈合逻辑插入装置,用于在所述复合网络服务流程的模型定义中,搜索到的所述启动对单元网络服务的调用的步骤之后,插入愈合逻辑;
在所述复合网络服务流程执行过程中,所述愈合逻辑对之前的调用步骤中对单元网络服务的调用是否失败进行检测,并在检测到调用失败的情况下,从备选网络服务库中调用一个对应于未能成功调用的单元网络服务的备选网络服务。
9.如权利要求8所述的装置,还包括愈合逻辑产生装置,用于产生所述愈合逻辑。
10.如权利要求8所述的装置,其特征在于,所述愈合逻辑根据是否从单元网络服务得到应答来判断对该单元网络服务的调用是否失败。
11.如权利要求8所述的装置,还包括:
愈合器产生装置,用于产生愈合器,所述愈合器与备选网络服务库通信并用于调用备选网络服务库中的备选网络服务,
其中,所述愈合逻辑通过调用所述愈合器来调用其所要调用的备选网络服务。
12.如权利要求11所述的装置,其特征在于,愈合器产生装置配置为使其所产生的愈合器本身也是一种网络服务。
13.如权利要求8所述的装置,其特征在于,备选网络服务库中提供的备选网络服务分为多个调用等级,愈合逻辑根据调用等级调用备选网络服务。
14.一种用于执行复合网络服务流程的装置,所述复合网络服务流程调用至少一个单元网络服务,其特征在于,
该装置与备选网络服务库配合使用,在所述备选网络服务库中,为单元网络服务提供至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能,
该装置包括:
自愈合组件,用于在所述装置根据复合网络服务流程而执行对单元网络服务的调用之后,判断是否调用成功,并在判定调用失败的情况下,从备选网络服务库中调用一个对应于未能成功调用的单元网络服务的备选网络服务。
15.一种执行复合网络服务流程的方法,所述复合网络服务流程调用至少一个单元网络服务,该方法包括:
在执行对单元网络服务的调用之后,判断是否调用成功;以及
在判定调用失败的情况下,从备选网络服务库中调用所述对应于未能成功调用的单元网络服务的备选网络服务,
其中,在备选网络服务库中,为单元网络服务提供了至少一个备选网络服务,所述备选网络服务独立于所述单元网络服务,并且实现与其所对应的单元网络服务相同的功能。
16.如权利要求15所述的方法,其特征在于,备选网络服务库中提供的备选网络服务分为多个调用等级,备选网络服务是根据调用等级调用的。
17.如权利要求15所述的方法,其特征在于,所述方法由执行所述复合网络服务流程的流程引擎自动执行。
18.如权利要求15所述的方法,其特征在于,所述方法是所述复合网络服务流程的一部分。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200410039642.9A CN1668014A (zh) | 2004-03-12 | 2004-03-12 | 自愈合复合网络服务方法和装置 |
CA002555697A CA2555697A1 (en) | 2004-03-12 | 2005-03-10 | Method and apparatus for self-healthing composite web services |
JP2007502349A JP4493692B2 (ja) | 2004-03-12 | 2005-03-10 | 複合ウェブ・サービス・プロセスを処理するための自己修復装置 |
PCT/EP2005/051089 WO2005091186A2 (en) | 2004-03-12 | 2005-03-10 | Method and apparatus for self-healthing composite web services |
EP05716992A EP1738308A1 (en) | 2004-03-12 | 2005-03-10 | Method and apparatus for self-healthing composite web services |
KR1020067017491A KR100951093B1 (ko) | 2004-03-12 | 2005-03-10 | 복합 웹 서비스를 자기-치유하기 위한 장치 및 방법 |
BRPI0508608-6A BRPI0508608A (pt) | 2004-03-12 | 2005-03-10 | método e aparelho auto correção de serviços compostos da web |
IL177794A IL177794A0 (en) | 2004-03-12 | 2006-08-31 | Method and apparatus for platform independent self-healing web services process |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200410039642.9A CN1668014A (zh) | 2004-03-12 | 2004-03-12 | 自愈合复合网络服务方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1668014A true CN1668014A (zh) | 2005-09-14 |
Family
ID=34961236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200410039642.9A Pending CN1668014A (zh) | 2004-03-12 | 2004-03-12 | 自愈合复合网络服务方法和装置 |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP1738308A1 (zh) |
JP (1) | JP4493692B2 (zh) |
KR (1) | KR100951093B1 (zh) |
CN (1) | CN1668014A (zh) |
BR (1) | BRPI0508608A (zh) |
CA (1) | CA2555697A1 (zh) |
IL (1) | IL177794A0 (zh) |
WO (1) | WO2005091186A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101600216B (zh) * | 2009-06-26 | 2013-01-02 | 北京邮电大学 | 一种无线接入网络的分布式自愈方法和系统 |
CN104601696A (zh) * | 2015-01-13 | 2015-05-06 | 北京京东尚科信息技术有限公司 | 服务处理方法、服务调用框架、装置和架构 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884864B2 (en) | 2018-11-29 | 2021-01-05 | International Business Machines Corporation | Autonomous self-healing stateless microservice nodes |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330689B1 (en) | 1998-04-23 | 2001-12-11 | Microsoft Corporation | Server architecture with detection and recovery of failed out-of-process application |
JP2001155003A (ja) * | 1999-11-30 | 2001-06-08 | Ntt Comware Corp | サービス復旧システムおよびその記録媒体 |
JP2002222176A (ja) * | 2001-01-25 | 2002-08-09 | Nippon Telegr & Teleph Corp <Ntt> | サーバ・ベースド・コンピューティングモデルにおけるアプリケーションサーバ計算機障害自動復旧装置及び方法 |
JP3781636B2 (ja) * | 2001-05-18 | 2006-05-31 | Necフィールディング株式会社 | 受付システムおよび受付方法 |
JP2003022258A (ja) * | 2001-07-05 | 2003-01-24 | Mitsubishi Research Institute Inc | サーバーのバックアップシステム |
US7194543B2 (en) | 2001-11-12 | 2007-03-20 | Mci, Llc | System and method for creating and managing survivable, service hosting networks |
JP2003281007A (ja) * | 2002-03-20 | 2003-10-03 | Fujitsu Ltd | 動的構成制御装置および動的構成制御方法 |
JP2004021873A (ja) * | 2002-06-20 | 2004-01-22 | Hitachi Ltd | インターネットシステム監視装置 |
JP2004030360A (ja) * | 2002-06-27 | 2004-01-29 | Japan Telecom Co Ltd | Webサービスの提供システムおよび提供支援システム |
-
2004
- 2004-03-12 CN CN200410039642.9A patent/CN1668014A/zh active Pending
-
2005
- 2005-03-10 BR BRPI0508608-6A patent/BRPI0508608A/pt not_active IP Right Cessation
- 2005-03-10 KR KR1020067017491A patent/KR100951093B1/ko not_active IP Right Cessation
- 2005-03-10 WO PCT/EP2005/051089 patent/WO2005091186A2/en not_active Application Discontinuation
- 2005-03-10 JP JP2007502349A patent/JP4493692B2/ja not_active Expired - Fee Related
- 2005-03-10 EP EP05716992A patent/EP1738308A1/en not_active Withdrawn
- 2005-03-10 CA CA002555697A patent/CA2555697A1/en not_active Abandoned
-
2006
- 2006-08-31 IL IL177794A patent/IL177794A0/en unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101600216B (zh) * | 2009-06-26 | 2013-01-02 | 北京邮电大学 | 一种无线接入网络的分布式自愈方法和系统 |
CN104601696A (zh) * | 2015-01-13 | 2015-05-06 | 北京京东尚科信息技术有限公司 | 服务处理方法、服务调用框架、装置和架构 |
CN104601696B (zh) * | 2015-01-13 | 2018-05-15 | 北京京东尚科信息技术有限公司 | 服务处理方法、服务调用系统、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2005091186A8 (en) | 2006-10-26 |
KR20070001981A (ko) | 2007-01-04 |
JP4493692B2 (ja) | 2010-06-30 |
IL177794A0 (en) | 2006-12-31 |
JP2007529067A (ja) | 2007-10-18 |
BRPI0508608A (pt) | 2007-12-18 |
KR100951093B1 (ko) | 2010-04-07 |
CA2555697A1 (en) | 2005-09-29 |
EP1738308A1 (en) | 2007-01-03 |
WO2005091186A2 (en) | 2005-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1578300B (zh) | 一种检查点处理器和用于管理检查点的方法 | |
Das et al. | ORBWork: A reliable distributed CORBA-based workflow enactment system for METEOR2 | |
US7974939B2 (en) | Processing model-based commands for distributed applications | |
CN101605056B (zh) | 一种j2ee服务器监控装置及采用该装置的监控方法 | |
US7779298B2 (en) | Distributed job manager recovery | |
US7451215B2 (en) | OPC server redirection manager | |
US20070168753A1 (en) | Exception handling framework | |
CN101065731A (zh) | 监督处理控制数据获取设备的冗余部署的主机的运行时间故障管理 | |
CN101044462A (zh) | 多层计算环境中用于性能管理的系统和方法 | |
JP2004246892A (ja) | マルチノード分散データ処理システムにおいてリモート・アクセス可能なリソースを管理する方法 | |
CN101076736A (zh) | 在监督处理控制系统中配置冗余 | |
CN101860564A (zh) | 基于协议的服务组合系统和方法 | |
CN108762932A (zh) | 一种集群任务调度系统及处理方法 | |
CN115115329A (zh) | 一种面向智能生产线的制造中间件及云制造架构 | |
US20090158083A1 (en) | Cluster system and method for operating the same | |
US20060230109A1 (en) | Mediator-based recovery mechanism for multi-agent system | |
US20060123387A1 (en) | Apparatus and method for producing application software for streaming service and system and method for providing software streaming service with network fault tolerance | |
CN1143207C (zh) | 执行事务处理的客户机/服务器处理装置和方法 | |
CN1668014A (zh) | 自愈合复合网络服务方法和装置 | |
JP2007529067A6 (ja) | 自己修復複合ウェブ・サービスのための方法及び装置 | |
CN1728697A (zh) | 一种公共对象请求代理结构应用中的容错性方法 | |
Ilahi et al. | Enhancing decentralized mas-based framework for composite web services orchestration and exception handling by means of mobile agents technology | |
CN1322420C (zh) | 构件化软件系统在线增加新功能的方法 | |
CN118796160A (zh) | 软件架构设计平台及软件架构设计方法 | |
CN115202960A (zh) | 一种基于Zookeeper和Guava的被监控结点设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |