CN101416156B - 异步处理故障事件的方法及系统 - Google Patents

异步处理故障事件的方法及系统 Download PDF

Info

Publication number
CN101416156B
CN101416156B CN2007800123531A CN200780012353A CN101416156B CN 101416156 B CN101416156 B CN 101416156B CN 2007800123531 A CN2007800123531 A CN 2007800123531A CN 200780012353 A CN200780012353 A CN 200780012353A CN 101416156 B CN101416156 B CN 101416156B
Authority
CN
China
Prior art keywords
state
job
jobs
activity
failure
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.)
Expired - Fee Related
Application number
CN2007800123531A
Other languages
English (en)
Other versions
CN101416156A (zh
Inventor
D·舒克拉
B·施米特
M·梅达
N·塔尔伯特
A·J·沙加
K·拉曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101416156A publication Critical patent/CN101416156A/zh
Application granted granted Critical
Publication of CN101416156B publication Critical patent/CN101416156B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Abstract

工作流的异步故障处理。定义了工作流中活动的状态自动机。状态自动机至少包括正在执行状态、正发生故障状态和已关闭状态,并对活动的执行生存周期分类。将活动定义为包括工作项目,且包括工作项目的执行分层结构。每一工作项目包括用于执行活动的一部分的操作。每一工作项目被转移到正在执行状态。转移的工作项目所包括的操作在正在执行状态中执行。根据执行分层结构和所包括的操作,响应于故障事件标识所转移工作项目中的一个或多个。通过将一个或多个所标识的工作项目转移到正发生故障状态同时执行其余转移工作项目所包括的动作来异步处理故障事件。

Description

异步处理故障事件的方法及系统
背景 
面向过程或过程中心的程序已发展成能够处理对现实事件建模的复杂指令。过程中心的程序反映了现实过程并反映了现实实体之间的交互。现有的系统通过对商业问题建模来试图将商业问题映射为高级工作流。然而,现实工作流在各个方面有所不同,诸如(a)执行和建模的复杂性、(b)在设计时对流程的结构的了解、(c)静态定义或自组织/动态的、(d)在其生命周期的各个时间创作和编辑流程的容易程度以及(e)商业逻辑与核心工作流过程之间弱或强的关联。现有的模型不能适应所有这些因素。 
此外,大多数现有工作流模型是基于以下中任一的:基于语言的方法(例如,BPEL4WS、XLANG/S以及WSFL)或基于应用程序的方法。基于语言的方法是具有帮助向用户/编程员对工作流过程建模的预定义构造的闭集的高级工作流语言。工作流语言携带允许用户构建工作流模型的构造的闭集的所有语义信息。然而,语言不是可由开发员扩展的,且表示构成工作流模型的原语的闭集。语言被绑定至由工作流系统厂商装运的语言编译器。仅工作流系统产品厂商可通过用产品将来版本中的一组新构造扩展语言来扩展模型。这通常要求升级与该语言相关联的编译器。此外,语言通常不会声明性地展示或定义可由其它程序容易且高效使用的功能或操作。 
基于应用程序的方法是在应用程序内具有解决域专用问题的工作流能力的应用程序。这些应用程序不是真正可扩展的,它们也不具有可编程模型。 
此外,采用现有的方法,复杂性、预知、动态工作流、创作容易程度以及与业务逻辑和核心工作流的关联的强度的问题未被充分解决。不存在构建可视工作流设计器以对不同类的工作流建模的可用的可扩展、可定制且可重新主宿的工作流设计器框架。现有的系统缺乏快速应用程序开发(RAD)样式的工作流设计体验,该体验允许用户用图形设计工作流过程并用开发员选择的编程语言关联业务逻辑。
而且,工作流过程横跨工作流过程模型多步处理交叉切割互不相关且纠缠的问题。例如,尽管工作流过程的一部分被设计为参与长期运行的事务,而同一过程的其它部分被设计用于并发执行或访问共享资源。由于设计缺陷,现有的系统不能提供执行线程的交错,而线程的交错允许用户设计活动的同步或交错执行。同一工作流过程的另外其它部分要求跟踪,而其它部分处理商业或应用级异常。需要对工作流过程的一个或多个部分应用某些行为。 
某些工作流建模方法是不实际的,因为它们要求对整个商业过程包括异常和人类干预在内的完整的基于流的描述。这些方法中的某些在异常发生时提供附加的功能,而其它方法排他地采用基于约束的方法而非基于流的方法来对商业过程建模。现有的系统或者实现基于流的方法或者实现基于约束的方法。这样的系统对于对众多常见的商业情形建模而言太不灵活。这些系统也缺乏异步处理异常或取消的能力。 
概述。 
本发明的实施例通过在定义工作流中的活动的执行生存周期的状态自动机中具有正发生故障状态来允许异步故障或异常处理。通过具有正发生故障状态,本发明的各方面允许开发员或程序声明性地设计用于异常或故障处理的程序,使得程序或活动的部分可在正发生故障状态中进行故障处理,而程序或活动的其它部分可不受异常或故障事件的影响。 
本发明的替换实施例允许传播或传输故障处理的通知。在其它替换实施例中,可抑制或禁止这样的通知传播或传输。此外,另外的实施例响应于来自用户的用于对处理故障后或异常后操作的输入。 
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。 
其它特征的一部分将是显而易见的,一部分将在下文中指出。 
附图简述 
图1是示出现有编程范例的框图。
图2是示出根据本发明的实施例的工作流设计框架的虚拟化的示例性框图。 
图3是示出根据本发明的实施例的示例性工作流的示例性示意图。 
图4是示出根据本发明的实施例的用于处理工作流活动的系统的示例性计算环境的示意图。 
图5是示出根据本发明的实施例的工作流活动的分层结构的示意图。 
图6是示出根据本发明的实施例描述活动的执行生存周期的示例性状态自动机的示意图。 
图7A到7E是示出根据本发明的实施例对工作流的故障事件异步处理的框图。 
图8是示出根据本发明的实施例用于对工作流的活动的故障事件进行异步处理的方法的流程图。 
图9是示出可在其上存储本发明的各方面的示例性计算机可读介质的框图。 
附图A示出根据本发明的实施例声明性提出异常的示例性实现。 
相应的参考字符在各附图中指示相应的部分。 
详细描述 
首先参考图1,框图示出了用于对诸如工作流的过程中心活动设计程序的现有的编程范例。例如,示意图示出现有的程序范例的三级虚拟化模型,托管执行环境级是最高级,处理单元是最低级。在该编程设计系统中,即使在托管执行环境级处,程序尤其是处理工作流过程的过程中心程序,缺乏适应工作流中各过程之间的复杂交互的能力和效率。 
本领域的技术人员已知,某些约束与设计软件或应用程序相关联。在这些示例中,当编写操作系统软件程序104时,程序代码或例程是根据处理单元102的类型或配置的、对一类计算体系结构(例如,可兼容、
Figure G2007800123531D00032
计算机或其它系统)专用或其它约束。此外,编程语言通常需要准确标识和利用数据结构,诸如堆栈、堆、线程库或其它硬件专用结构以便操作系统104能正确运作。
当处理复杂工作流过程时,现有应用程序使用托管执行环境106(例如,其中程序可共享功能或通用的面向对象类的运行时环境)的概念,其中由一种编程语言编写的程序可调用用不同的编程语言编写的其它程序中的功能。在这样的执行环境中,采用不同编程语言的这些程序被编译成中间语言,使得托管执行环境106可展示不同程序的参数、自变量或模式或功能,使得程序可彼此交互。 
尽管该执行环境106在程序之间创建通用的通信环境,但执行环境106包括可能不适于处理过程中心程序的复杂程度和容量的各种严格要求。例如,执行环境106要求程序被确认为特定文件格式。执行环境106也要求程序中的功能或操作使用由执行环境106定义的固定的一组功能或一类功能。 
本发明的实施例在图2中的可扩展基础或框架202上构建,以克服现有编程模型的缺点。通过允许以任何编程语言编写并以任何文件格式编排程序,本发明的各方面允许程序开发员设计具有特定功能的程序,而不损害其功能和细节。通过将诸如工作流任务或过程的活动定义为要在工作流框架中执行的基类,开发员可容易且高效地构建域专用(例如,诸如卫生保健行业、金融行业等中的程序的特定执行环境)的操作代码(后文中称为“操作代码”),而无需依附现有执行环境中的刚性、硬编码、不灵活且固定的一组功能或活动类。此外,体现本发明各方面的工作流基础是层叠在任何现有框架(例如,托管执行环境、操作系统环境或硬件处理单元级)上方的基于延续的运行时环境。 
本发明的各方面通过允许按照任何方式或表示(例如,流程图、示意图、编号描述等)进行工作流设计免除按照特定文件格式定义活动的约束,只要工作流中的活动可根据工作流设计的表示构造。 
此外,工作流框架或基础能够处理从较低级(例如,OS)提出的故障或异常,或提出以其它格式(例如,中间语言)编写的功能的异常。 
图3示出根据本发明的实施例的工作流300的简单视图。例如,工作流300可以是用于处理购买定单的工作流,且该购买定单工作流300可包括诸如接收购买定单、向顾客发送确认、由管理员批准购买定单等的过程或活动。 
工作流300可从起始点302开始。例如,购买定单工作流的起始点302可以是从顾客接收定单。工作流300也可包括条件语句304(诸如“IF语句”或 “WHILE语句”),它可被细分成附加条件语句306和308。工作流300也可包括并行结构310,后者进一步包括一个或多个序列或活动312。例如,并行结构310包括诸如检查存货并更新可用发货者的并行处理的活动。在所示示例中,诸如“发送电子邮件”和“获得批准”的活动可并行处理。在“此处丢弃活动”316,用户可进一步将更多活动添加或补充到工作流300中。为了完成工作流300,过程或活动将在完成步骤或点314结束。 
在一个实施例中,活动可被分层安排成树结构(见图5)500或其它执行序列。例如,活动可以是合成活动,其中活动包括与之相关联的一个以上的工作项目。在另一实施例中,活动的集合可以是合成活动。活动方法或操作可位于具有两个子或叶节点504和506的根节点502中。子节点504和506中的活动方法或操作(例如,分别为工作项目_1和工作项目_2)可根据分层结构执行。此外,子节点504和506也可包括具有要执行的相应工作项目的其它子节点。 
在另一实施例中,活动包括以下类型中的一个或多个:简单活动、容器活动和根活动。在此实施例中,在模型中有一个根活动,根活动内有零个或任何数量的简单活动或容器活动。容器活动可包括简单或容器活动。整个工作流过程可用作构建较高级工作流过程的活动。此外,活动可以是可中断或不可中断的。不可中断的合成活动不包括可中断活动。不可中断活动没有可使活动阻塞的服务。 
而且,当执行活动以及包括在活动中的工作项目时,工作流框架或执行上下文或环境为每一工作项目定义范围或边界。该范围或边界包括并展示了诸如要由工作项目访问的共享数据或资源、相关联的属性、处理程序、约束以及自治代理之间的交互等的信息(例如,以数据、元数据等的形式)。而且,每一活动可由采用任何编程语言的用户代码配置。例如,用户代码可表示在特定域或执行环境中编写的业务或应用程序逻辑或规则。每一活动可支持对用户代码中的执行的截取前挂钩和截取后挂钩。每一活动具有相关联的运行时环境执行语义和行为(例如,状态管理、事务、事件处理和异常处理)。活动可与其它活动共享状态或资源。此外,活动可以是原语活动,或归组成合成活动。原语或基本活动不具有子结构(例如,子活动)且因此是树结构中的叶节点。合成活动包含子结构(例如,它是一个或多个子活动的父活动)。
图4是示出根据本发明的实施例的用于处理工作流活动的系统400的示意图。系统400包括处理器402,它可以是处理单元或处理单元的集合。系统400也包括用于存储可由处理器402访问的数据的存储或存储器区404。在一个实施例中,系统400可以是具有一个或多个处理器或处理单元(例如,处理器402)以及系统存储器(例如,存储器区404)并具有将包括系统存储器的各种系统组件耦合到处理器402的其它组件的计算机。 
在一个示例中,存储器区404可包括计算机可读介质(易失性、非易失性、可移动或不可移动介质),它们以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任何方法或技术来实现。例如,计算机存储介质包括RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可以用于存储所需信息并可由系统400访问的任何其它介质。存储器404也包括具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据的通信介质,且包含任何信息传递介质。本领域技术人员熟悉已调制数据信号,其一个或多个特征以将信息编码在该信号中的方式来设置与改变。诸如有线网络或直接线连接等有线介质,以及如声学、RF、红外线及其它无线介质等无线介质都是通信介质的示例。以上的任一的组合也包括在计算机可读介质的范畴内。 
例如,存储器区404存储用于在工作流(例如,工作流300)中处理的多个活动406。多个活动406中的每一个包括一个或多个工作项目,且工作项目可在诸如树结构(见图5)的分层结构中组织。当处理多个活动406时,处理器402访问或执行调度器408,它被配置成设置有组织的活动集。 
例如,处理器408经由组件或一组计算机可执行指令诸如调度器408访问多个活动406中的工作项目以使工作项目422入队或存储到队列410。可由处理器402访问的分派器412分派工作项目422以便执行。例如,工作项目422-1可包括活动方法或活动操作424、例程或用于执行“向用户请求输入”的功能的代码的集合。一个或多个其它活动方法、活动操作、例程或代码可被包括在每一工作项目422中,而不背离本发明的范围。 
一旦由分派器412分派了工作项目422,处理器402在414执行工作项目 422中的每一方法424。在工作项目422-1的示例中,处理器402可允许用户经由用户界面(UI)输入所请求的信息或数据。在另一实施例中,处理器402可连接或访问外部数据源以便向用户请求输入。在完成活动方法或活动操作424之后,处理器402在416结束工作项目422的执行。在一个实施例中,处理器402在418将工作项目的正在执行状态钝化(passivate)到数据存储420。 
在另一实施例中,处理器402根据诸如图6中所示的自动机的状态自动机执行工作项目422,图6是示出根据本发明的实施例描述与活动相关联的工作项目的处理状态的示例性状态自动机600的示意图。在一个实施例中,状态自动机600定义活动的执行生存周期。在一个示例中,状态自动机600可包括已初始化状态、正在执行状态以及已关闭状态(如图4中所示)。在另一实施例中,状态自动机600包括已初始化状态602、正在执行状态604、正在取消状态606、正发生故障状态608、正在补偿状态610和已关闭状态612。 
例如,状态自动机600描述工作流活动中工作项目(例如,工作项目422)的执行的过程流。如图4中所示的工作项目422-1当它在队列410中入队时首先被初始化。接着,工作项目422-1在正在执行状态(例如,图6中的正在执行状态604)中执行之前从队列410中出队或移除到分派器412。根据工作项目422-1的执行期间的参数或条件,工作项目422-1可前进到正在取消状态606(例如,图4的正在取消状态426)或正发生故障状态608。在一个实施例中,工作项目422-1可从正在取消状态606前进到正发生故障状态608。在替换实施例中,正在补偿状态610描述当发生故障或异常时要执行的一组操作或功能。 
例如,假定在工作项目(例如,工作项目422-1)的执行期间发生异常,诸如函数的参数遗失。系统400将工作项目422-1转移到正发生故障状态608。这样做,系统400也在将工作项目422-1转移到已关闭状态612之前在正在补偿状态610中执行垃圾收集(例如,将操作中之前执行的部分从高速缓存或存储器中移除、使参数值复位等)。例如,正在补偿状态610中的工作项目可触发诸如恢复之前用于执行其它工作项目的数据的操作。已关闭状态612指示活动(例如,图5中的活动500)的执行已完成。 
在一个实施例中,状态自动机600在合成活动的工作项目之间建立关系。例如,关系规则之一可包括,在将活动树的根节点中的方法或工作项目转移到 已关闭状态612之前,子节点中的所有工作项目应处于已初始化状态602或已关闭状态612。另一规则可要求,为了将活动树的子节点中的工作项目转移到正在执行状态604,根节点中的工作项目必须已经处于正在执行状态604。 
在另一实施例中,可在状态自动机600中定义一个或多个附加状态,而不背离本发明的实施例的范围。 
接着参考图7A到7E,框图示出了根据本发明的实施例对工作流中的故障事件的异步处理。为简单起见且并非限制,图7A示出包括按照树结构组织的三个子工作项目的合成活动702:事务_1704、事务_2706以及事务_3708。如图所示,根活动702包括“在显示上写文本”的方法。以上工作项目的活动方法或操作也包括以下: 
事务_1704: 
{  插入文本(“1和2”); 
   HANDLEFAULT()(处理故障); 
事务_2706: 
{  插入文本(“3和4”); 
   HANDLEFAULT(); 
事务_3708: 
{  插入文本(“5和6”); 
   暂停180秒; 
    插入文本(“结束”); 
在图7B中,事务_1704、事务_2706以及事务_3708转移到正在执行状态710。如图所示,事务_1704通过在对用户430的显示(例如,用户界面428)上插入文本(“1和2”)来执行所包括的操作。 
尽管处于正在执行状态710中,但发生了故障事件722或异常。故障事件722可包括对遗失数据、执行故障、对数据存储的不准确访问等的警告通知。在此示例中,事务_1704包括用于处理故障事件722的handleFault()(故障处 理)函数716。在一个实施例中,handleFault函数716类似于诸如操作系统或托管执行环境的其它执行环境中用于故障处理的“捕捉”函数。因此,对handleFault函数716或其它“捕捉”处理器的故障传播或分派是异步的。 
当出现故障事件722时,事务_1704转移到正发生故障状态712,且事务_1704转移到已关闭状态714。在一个实施例中,响应于故障事件722,handleFault()函数716被调用,并被置于队列(未示出)用于处理。 
采用用于异常传播和处理的该良好定义的协议,替换实施例可处理多个异常,且可在异常的传播与正常程序执行交错时调度多个异常。 
在图7中,事务2706和事务708处于正在执行状态710中。类似于执行事务_1704,事务_2706执行所包括的操作。在此示例中,将文本(“3和4”)插入到显示上。此外,事务_2706也包括与事务_1704用于处理故障事件722的handleFault()函数716相似的handleFault()函数。 
在替换实施例中,handleFault()函数716可根据活动的执行层次或执行分层结构将通知720传播或转送到处于正在执行状态710中的其余工作项目。例如,当事务_1704处于正发生故障状态712中时,handleFault()函数712可传播通知720(例如,“抛出”函数),使得父活动_1702的handleFault()函数可如同通知720是故障事件或异常一样来处理它。在一个实施例中,子活动可将抛出函数的目标限于其活动树中的父活动。在另一实施例中,异常处理可与活动的树形结构高度关联或连系。 
通过建立用于处理故障事件的正发生故障状态712,本发明的实施例允许异步的故障处理或异常处理,且处于正在执行状态710中的其余工作项目或活动可继续执行。此外,另一替换实施例允许调度处理故障事件。例如,在响应于通知720时,事务2706可在转移到正发生故障状态712之前被置于调度器队列718中。在另一实施例中,通知720可被抑制,使得处于正在执行状态710中的其它工作项目或活动继续执行。在一个实施例中,事务_1704在传播或传送通知720之后转移到已关闭状态714。在又一实施例中,故障传播和处理存活,并横跨钝化周期。 
在图7D中,事务3708在正在执行状态710中执行。例如,事务_3708所包括的操作在将文本(“结束”)插入到显示上之前插入文本(“5和6”)并暂 停180秒。然而,所包括的操作不包括用于故障处理的函数。因此,在完成所包括的操作之后,在图7E中事务_3708被转移到已关闭状态714。此外,事务2706在从调度器队列718出队到正发生故障状态712之后也转移到已关闭状态714。 
不作为限制,附图A示出根据本发明的实施例声明性提出异常的示例性实现。在一个实施例中,程序员或开发者可设计用于处理特定类型的故障事件或异常的故障处理器。在又一实施例中,工作流中的工作项目或活动可能不包括函数或不能够处理故障事件。在此实施例中,工作流执行环境处理故障事件。在又一实施例中,可经由图4中对用户430的UI429向用户提供一个或多个故障处理后操作。 
尽管图7A到7E顺序示出了(即,事务是顺序执行的)状态自动机的正在执行状态或部分的屏幕截图,但处于正在执行状态中的工作项目可同时处理或基本上同时处理,而不背离本发明的范围。 
图8是示出根据本发明的实施例用于对工作流的活动的故障事件进行异步处理的方法的流程图。例如,图8中所示的方法可被表示为存储在计算机可读介质中的计算机可执行指令,如图9所示。例如,状态机902在802为活动定义状态自动机(例如,状态自动机600),且状态自动机至少包括正在执行状态、正发生故障状态和已关闭状态。活动组件904在804将活动定义为包括多个工作项目。所定义的活动具有用于多个工作项目的执行分层结构或执行序列(例如,树结构)。每一工作项目包括用于执行活动的一部分的操作。 
调度器组件906在806将每一工作项目转移到正在执行状态。执行组件在808执行处于正在执行状态中的所转移工作项目的所包括操作。在810,标识组件910基于执行分层结构和所包括的操作响应于故障事件标识所转移的工作项目中的一个或多个。在812,故障处理器912通过调用一个或多个所标识工作项目中的故障处理操作(例如,handleFault()函数716)以将这一个或多个所标识的工作项目转移到正发生故障状态,同时执行未由标识组件响应于故障事件标识的其余转移工作项目所包括的操作,来异步处理故障事件。在一个实施例中,故障处理器912通过将一个或多个所标识工作项目转移到正发生故障状态来异步处理故障事件。在又一实施例中,故障处理器912通过使一个或多个 所标识的工作项目入队到调度器队列(例如,调度器队列718)中来异步处理故障事件。 
在替换实施例中,计算机可读介质900还包括故障传播组件914,它用于根据活动的执行分层结构将通知从一个或多个所标识的工作项目传送到其余所转移的工作项目。通知720指示所标识的一个或多个工作项目处于正发生故障状态中。在又一实施例中,计算机可读介质900还包括转移组件916,用于响应于所传送的通知将其余的所转移的工作项目从正在执行状态转移到正发生故障状态。 
在另一替换实施例中,计算机可读介质也可包括补偿组件918,用于根据异步处理故障事件恢复或补偿与活动相关联的数据。禁止组件也可以是计算机可读介质900的一部分,用于抑制通知对其余所转移的工作项目的传送。 
尽管结合诸如图4的系统400的示例性计算系统环境进行了描述,但本发明的实施例可用于众多其它通用或专用计算系统环境或配置。计算系统环境不旨在对本发明的任何方面的使用范围或功能提出任何限制。而且,计算系统环境不应被解释为对在示例性操作环境中所示组件的任何一个或组合有任何依赖性或要求。适用于本发明各方面的公知的计算系统、环境和/或配置的示例包括,但不限于:个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、移动电话、网络PC、小型机、大型机、包括上述系统或设备中的任一个的分布式计算机环境等。 
本发明的各实施例可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括但不限于:执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件和数据结构。本发明的各方面也可以在分布式计算环境中实现,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。 
在操作中,系统400执行如在诸如图8的各附图中所示出的计算机可执行指令来实现本发明的各方面。 
除非另有指定,否则此处所示和所述的本发明各实施例的操作的执行或进 行的次序不是必需的。也就是说除非另有指明,否则各操作可按照任何次序执行,且本发明的实施例可以包括比本文所公开的或多或少的操作。例如,构想了在另一操作之前、同时或之后执行或进行某一操作是在本发明各方面的范围之内的。 
本发明的各实施例可以用计算机可执行指令来实现。计算机可执行指令可以被组织为一个或多个计算机可执行组件或模块。本发明的各方面可以用任何数量的这些组件或模块及其任何组织来实现。例如,本发明的各方面不限于在各附图和本文中示出的特定的计算机可执行指令或者特定的组件或模块。本发明的其他实施例可以包括具有比在本文中示出和描述的或多或或少的功能的不同计算机可执行指令或组件。 
当介绍本发明或其实施例的各方面的各元素时,冠词“一”、“一个”、“该”和“所述”指的是存在该元素的一个或多个。术语“包括”、“包含”、“具有”旨在是包括性的并且指的是可以有除所列元素之外的其它元素。 
尽管详细描述本发明的各方面,但显然修改和变化是有可能的,而不背离所附权利要求书中定义的本发明各方面的范围。在不背离本发明各方面的范围的情况下,可对以上构造、产品和方法进行各种改变,以上描述中所包含的以及在附图中所示出的所有一切旨在应被解释为说明性并且没有限制意义。
附录A 
       <myActivities:Sequence x:Name="myWorkflow"x:Class="myApp.myWorkflow" 
          xmlns:myActivities="http://schemas.com/myActivities" 
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow"> 
                 <myActivities:WriteLine Text="One"/> 
                 <myActivities:WriteLine Text="Two"/> 
                 <ThrowActivity FaultType="{x:Type 
InvalidOperationException}"/> 
                 <myActivities:WriteLine Text="Unreachable code"/> 
                 <F aultHandlersActivity> 
               <FaultHandlerActivity FaultType="{x:Type 
InvalidOperationException}"> 
                            <myActivities:WriteLine Text="Three"/> 
                        </FaultHandlerActivity> 
        <FaultHandlerActivity FaultType="{x:Type 
AppDomainUnloadedException}"> 
                       <myActivities:WriteLine Text="Four"/> 
                   </FaultHandlerActivity> 
                </FaultHandlersActivity> 
   </myActivities:Sequence> 
   <myActivities:Sequence x:Name="myWorkflow"x:Class="myApp.myWorkflow" 
   xmlns:myActivities="http://schemas.com/myActivities" 
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow">
           <myActivities:WriteLine Text="Hello World"/> 
           <ThrowActivity FaultType="{x:Type InvalidOperationException}"/> 
           <myActivities:WriteLine Text="Unreachable Code"/> 
</myActivities:Sequence>

Claims (13)

1.一种用于为工作流的活动异步处理故障事件(722)的方法,所述方法包括:
为活动(702)定义状态自动机(600),所述状态自动机(600)至少包括正在执行状态(604)、正发生故障状态(608)和已关闭状态(612),所述状态自动机(600)对活动(702)的执行生存周期分类;
将所述活动(702)定义为包括多个工作项目(422),所定义的活动(702)具有用于多个工作项目(422)的执行分层结构(500),每一工作项目(422)包括用于执行活动(702)的一部分的操作;
将每一工作项目(422)转移到正在执行状态(604);
执行处于正在执行状态(604)中的转移工作项目(422)所包括的操作;
根据所述执行分层结构(500)和所包括的操作,响应于所述故障事件(722)标识所转移工作项目中的一个或多个;以及
通过将所述一个或多个标识工作项目(422)转移到所述正发生故障状态(608),同时执行未响应于故障事件(722)标识的其余转移工作项目所包括的操作来异步处理所述故障事件(722)。
2.如权利要求1所述的方法,其特征在于,异步处理所述故障事件(722)包括调用所述一个或多个标识的工作项目(422)中的故障处理操作。
3.如权利要求2所述的方法,其特征在于,调用所述故障处理操作包括使所述一个或多个所标识工作项目入队到调度器队列(718)中。
4.如权利要求1所述的方法,其特征在于,还包括根据所述活动(702)的执行分层结构(500)将通知(720)从所述一个或多个所标识的工作项目(422)传播到所述其余的转移工作项目(422),所述通知(720)指示所标识的一个或多个工作项目(422)正处于正发生故障状态(608)。
5.如权利要求4所述的方法,其特征在于,还包括响应于所传播的通知(720)将其余转移的工作项目(422)从所述正在执行状态(604)转移到所述正发生故障状态(608)。
6.如权利要求1所述的方法,其特征在于,还包括抑制通知(720)对其余转移的工作项目(422)的传播,所述通知(720)指示所标识的一个或多个工作项目正处于正发生故障状态。
7.如权利要求1所述的方法,其特征在于,还包括响应于所述一个或多个所标识的工作项目(422)被转移到所述正发生故障状态(608)向用户提供用于故障后处理的操作。
8.一种用于为工作流的活动异步处理故障事件(722)的系统,所述系统包括:
为活动(406)定义状态自动机(600)的状态机(902),所述状态自动机(600)至少包括正在执行状态(604)、正发生故障状态(608)和已关闭状态(612),所述状态自动机(600)对活动(406)的执行生存周期分类;
将所述活动(406)定义为包括多个工作项目(422)的活动组件(904),所定义的活动(406)具有用于多个工作项目(422)的执行分层结构(500),每一工作项目(422)包括用于执行活动(406)的一部分的操作;
将每一工作项目(422)转移到正在执行状态(604)的调度器组件(906);
执行处于正在执行状态(604)中的转移工作项目(422)所包括的操作的执行组件(908);
根据所述执行分层结构(500)和所包括的操作,响应于故障事件(722)标识所转移工作项目中的一个或多个的标识组件(910);以及
通过将所述一个或多个标识工作项目(422)转移到所述正发生故障状态(608),同时执行未响应于故障事件(722)标识的其余转移工作项目所包括的操作来异步处理所述故障事件(722)的故障处理器(912)。
9.如权利要求8所述的系统,其特征在于,所述故障处理器(912)使所述一个或多个所标识的工作项目(422)入队到调度器队列(718)中以将所述一个或多个所标识的工作项目转移到所述正发生故障状态(608)。
10.如权利要求8所述的系统,其特征在于,还包括根据所述活动(406)的执行分层结构(500)将通知(720)从所述一个或多个所标识的工作项目(422)传输到所述其余的转移工作项目(422)的故障传播组件(914),所述通知(720)指示所标识的一个或多个工作项目(422)正处于正发生故障状态(608)。
11.如权利要求10所述的系统,其特征在于,还包括响应于所传输的通知(720)将其余转移的工作项目从所述正在执行状态(604)转移到所述正发生故障状态(608)的转移组件(916)。
12.如权利要求8所述的系统,其特征在于,根据所述异步处理故障事件(608)恢复与所述活动(406)相关联的数据的补偿组件(918)。
13.如权利要求8所述的系统,其特征在于,还包括抑制通知(720)对其余转移的工作项目的传输的禁止组件(920),所述通知(720)指示所标识的一个或多个工作项目正处于正发生故障状态。
CN2007800123531A 2006-03-30 2007-02-21 异步处理故障事件的方法及系统 Expired - Fee Related CN101416156B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/393,093 US7739135B2 (en) 2006-03-30 2006-03-30 Asynchronous fault handling in process-centric programs
US11/393,093 2006-03-30
PCT/US2007/004642 WO2007120391A1 (en) 2006-03-30 2007-02-21 Asynchronous fault handling in process-centric programs

Publications (2)

Publication Number Publication Date
CN101416156A CN101416156A (zh) 2009-04-22
CN101416156B true CN101416156B (zh) 2013-03-06

Family

ID=38560925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800123531A Expired - Fee Related CN101416156B (zh) 2006-03-30 2007-02-21 异步处理故障事件的方法及系统

Country Status (10)

Country Link
US (1) US7739135B2 (zh)
EP (1) EP2013716A4 (zh)
JP (1) JP5297370B2 (zh)
KR (1) KR20080106567A (zh)
CN (1) CN101416156B (zh)
BR (1) BRPI0708917A2 (zh)
CA (1) CA2644370A1 (zh)
MX (1) MX2008011910A (zh)
RU (1) RU2008138701A (zh)
WO (1) WO2007120391A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849691B2 (en) 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
US20080082960A1 (en) * 2006-09-29 2008-04-03 Mcdougal Monty D Method and System For Controlling The Release of Data For Multiple-Level Security Systems
US8145335B2 (en) * 2006-12-19 2012-03-27 Palo Alto Research Center Incorporated Exception handling
US9442620B2 (en) * 2007-08-21 2016-09-13 Oracle International Corporation Navigation systems with event notification
US7827127B2 (en) * 2007-10-26 2010-11-02 Microsoft Corporation Data scoping and data flow in a continuation based runtime
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8307368B2 (en) * 2009-05-26 2012-11-06 Microsoft Corporation Locality-based scheduling in continuation-based runtimes
US9536264B2 (en) 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime
US9170915B1 (en) 2011-12-06 2015-10-27 Amazon Technologies, Inc. Replay to reconstruct program state
US9152533B1 (en) 2011-12-06 2015-10-06 Amazon Technologies, Inc. Asynchronous programming system
US9015533B1 (en) * 2011-12-06 2015-04-21 Amazon Technologies, Inc. Error handling for asynchronous applications
US8996937B2 (en) * 2011-12-28 2015-03-31 Stmicroelectronics International N.V. Apparatus for monitoring operating conditions of a logic circuit
US10235209B2 (en) * 2015-08-28 2019-03-19 Vmware, Inc. Hybrid task framework
US10324783B1 (en) * 2016-09-01 2019-06-18 Servicenow, Inc. System and method for workflow error handling

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0697652A1 (en) * 1994-08-16 1996-02-21 International Business Machines Corporation Method for re-executing a process on a computer system for fault correction
US20030018508A1 (en) * 2001-07-19 2003-01-23 Schwanke Robert W. Data-triggered workflow processes
US20030144891A1 (en) * 2002-01-26 2003-07-31 International Business Machines Corporation Supervising the processing status of activities within workflow management systems
CN1636207A (zh) * 2000-02-25 2005-07-06 奥克文技术交流公司 利用计算机网络处理工作流的方法

Family Cites Families (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4697266A (en) * 1983-03-14 1987-09-29 Unisys Corp. Asynchronous checkpointing system for error recovery
US5287537A (en) * 1985-11-15 1994-02-15 Data General Corporation Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command
US4920483A (en) * 1985-11-15 1990-04-24 Data General Corporation A computer memory for accessing any word-sized group of contiguous bits
US5301320A (en) * 1991-06-28 1994-04-05 Digital Equipment Corporation Workflow management and control system
JPH09501517A (ja) * 1993-02-08 1997-02-10 アクション・テクノロジーズ・インコーポレーテッド 業務処理を管理するための方法および装置
US5734837A (en) * 1994-01-14 1998-03-31 Action Technologies, Inc. Method and apparatus for building business process applications in terms of its workflows
US5627981A (en) * 1994-07-01 1997-05-06 Digital Equipment Corporation Software mechanism for accurately handling exceptions generated by instructions scheduled speculatively due to branch elimination
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
JP3547215B2 (ja) * 1995-01-20 2004-07-28 富士通株式会社 伝送障害処理装置
US5774661A (en) * 1995-04-18 1998-06-30 Network Imaging Corporation Rule engine interface for a visual workflow builder
DE19712946A1 (de) * 1996-05-30 1997-12-04 Ibm Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
US5930512A (en) * 1996-10-18 1999-07-27 International Business Machines Corporation Method and apparatus for building and running workflow process models using a hypertext markup language
US6158044A (en) * 1997-05-21 2000-12-05 Epropose, Inc. Proposal based architecture system
US6016394A (en) * 1997-09-17 2000-01-18 Tenfold Corporation Method and system for database application software creation requiring minimal programming
US6807583B2 (en) * 1997-09-24 2004-10-19 Carleton University Method of determining causal connections between events recorded during process execution
US6621505B1 (en) * 1997-09-30 2003-09-16 Journee Software Corp. Dynamic process-based enterprise computing system and method
US6225998B1 (en) * 1997-12-02 2001-05-01 Aspect Communications Visual design of workflows for transaction processing
US6115646A (en) * 1997-12-18 2000-09-05 Nortel Networks Limited Dynamic and generic process automation system
US6078982A (en) * 1998-03-24 2000-06-20 Hewlett-Packard Company Pre-locking scheme for allowing consistent and concurrent workflow process execution in a workflow management system
US6560626B1 (en) * 1998-04-02 2003-05-06 Microsoft Corporation Thread interruption with minimal resource usage using an asynchronous procedure call
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6567783B1 (en) * 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
US6397192B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
WO2000014618A2 (en) * 1998-08-24 2000-03-16 Fujitsu Limited Workflow system and method
US6606740B1 (en) * 1998-10-05 2003-08-12 American Management Systems, Inc. Development framework for case and workflow systems
US6308318B2 (en) * 1998-10-07 2001-10-23 Hewlett-Packard Company Method and apparatus for handling asynchronous exceptions in a dynamic translation system
US7133833B1 (en) 1998-10-27 2006-11-07 Netscape Communications Corporation Lightweight directory access protocol workflow management system
US6411961B1 (en) * 1999-01-15 2002-06-25 Metaedge Corporation Apparatus for providing a reverse star schema data model
US7233952B1 (en) 1999-01-15 2007-06-19 Hon Hai Precision Industry, Ltd. Apparatus for visualizing information in a data warehousing environment
US6412109B1 (en) * 1999-01-29 2002-06-25 Sun Microsystems, Inc. Method for optimizing java bytecodes in the presence of try-catch blocks
US6678882B1 (en) * 1999-06-30 2004-01-13 Qwest Communications International Inc. Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse
US6633878B1 (en) * 1999-07-30 2003-10-14 Accenture Llp Initializing an ecommerce database framework
US6609128B1 (en) * 1999-07-30 2003-08-19 Accenture Llp Codes table framework design in an E-commerce architecture
US7100195B1 (en) 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US6405364B1 (en) * 1999-08-31 2002-06-11 Accenture Llp Building techniques in a development architecture framework
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
JP3825597B2 (ja) * 1999-11-18 2006-09-27 日本電信電話株式会社 コンテンツ表示回数制御方法,装置およびそのプログラム記録媒体
US6898790B1 (en) * 1999-12-06 2005-05-24 International Business Machines Corporation Mapping actions to tasks within customer service processing systems
EP1277104A1 (en) 2000-03-30 2003-01-22 Ideogramic APS Method for gesture based modeling
US6964034B1 (en) * 2000-04-20 2005-11-08 International Business Machines Corporation Application development server and a mechanism for providing different views into the same constructs within a strongly encapsulated environment
US6918053B1 (en) * 2000-04-28 2005-07-12 Microsoft Corporation Compensation framework for long running transactions
US6845507B2 (en) * 2000-05-18 2005-01-18 Ss & C Technologies, Inc. Method and system for straight through processing
US6971096B1 (en) * 2000-05-19 2005-11-29 Sun Microsystems, Inc. Transaction data structure for process communications among network-distributed applications
WO2002003225A2 (en) * 2000-06-15 2002-01-10 Xis Incorporated Method and system for product lifecycle management
US6708186B1 (en) * 2000-08-14 2004-03-16 Oracle International Corporation Aggregating and manipulating dictionary metadata in a database system
WO2002017652A2 (en) * 2000-08-22 2002-02-28 Symbian Limited Database for use with a wireless information device
US20020032692A1 (en) * 2000-09-08 2002-03-14 Atsuhito Suzuki Workflow management method and workflow management system of controlling workflow process
US6886094B1 (en) * 2000-09-28 2005-04-26 International Business Machines Corporation Apparatus and method for detecting and handling exceptions
US7555459B2 (en) * 2000-10-02 2009-06-30 International Projects Consultancy Services, Inc. Automated loan processing system and method
US6604104B1 (en) * 2000-10-02 2003-08-05 Sbi Scient Inc. System and process for managing data within an operational data store
US7653566B2 (en) * 2000-11-30 2010-01-26 Handysoft Global Corporation Systems and methods for automating a process of business decision making and workflow
US7917888B2 (en) * 2001-01-22 2011-03-29 Symbol Technologies, Inc. System and method for building multi-modal and multi-channel applications
US7240324B2 (en) * 2001-02-28 2007-07-03 Hewlett-Packard Development Company, L.P. Event-based scheduling method and system for workflow activities
US20020128068A1 (en) 2001-03-09 2002-09-12 Randall Whitten Jon Marcus Method and apparatus for managing data in a gaming system
US20020147606A1 (en) * 2001-03-14 2002-10-10 Norbert Hoffmann Application development method
US7120896B2 (en) * 2001-10-31 2006-10-10 Vitria Technology, Inc. Integrated business process modeling environment and models created thereby
US20020188644A1 (en) * 2001-06-08 2002-12-12 Verano Workflow automated task component manager
US20030018643A1 (en) * 2001-06-19 2003-01-23 Peiwei Mi VIGIP006 - collaborative resolution and tracking of detected events
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US6898604B1 (en) * 2001-06-29 2005-05-24 Microsoft Corporation XML serialization and deserialization
US7222334B2 (en) 2001-07-24 2007-05-22 Hewlett-Packard Development Comapny, L.P. Modeling tool for electronic services and associated methods and businesses
WO2003014927A2 (en) * 2001-08-08 2003-02-20 Trivium Systems Inc. Scalable messaging platform for the integration of business software components
US6985939B2 (en) * 2001-09-19 2006-01-10 International Business Machines Corporation Building distributed software services as aggregations of other services
US6895573B2 (en) * 2001-10-26 2005-05-17 Resultmaker A/S Method for generating a workflow on a computer, and a computer system adapted for performing the method
US20030177046A1 (en) * 2001-12-03 2003-09-18 John Socha-Leialoha Method and system for reusing components
US6928582B2 (en) * 2002-01-04 2005-08-09 Intel Corporation Method for fast exception handling
US7089287B2 (en) * 2002-01-16 2006-08-08 Xerox Corporation Message-based system having embedded information management capabilities
US20030233374A1 (en) * 2002-03-14 2003-12-18 Ulrich Spinola Dynamic workflow process
US20030217054A1 (en) * 2002-04-15 2003-11-20 Bachman George E. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution
US7424717B2 (en) * 2002-05-01 2008-09-09 Bea Systems, Inc. Systems and methods for business process plug-in development
US7272816B2 (en) 2002-07-31 2007-09-18 Sap Aktiengesellschaft Transformations between private and shared workflows
US8374966B1 (en) * 2002-08-01 2013-02-12 Oracle International Corporation In memory streaming with disk backup and recovery of messages captured from a database redo stream
US20040078105A1 (en) * 2002-09-03 2004-04-22 Charles Moon System and method for workflow process management
US7398525B2 (en) * 2002-10-21 2008-07-08 International Business Machines Corporation Resource scheduling in workflow management systems
US8056046B2 (en) * 2002-10-22 2011-11-08 The Boeing Company Integrated system-of-systems modeling environment and related methods
US7062537B2 (en) * 2002-11-25 2006-06-13 Microsoft Corporation Workflow services architecture
US20040148213A1 (en) * 2002-11-25 2004-07-29 Microsoft Corporation Automated workflow constraints
US7272820B2 (en) * 2002-12-12 2007-09-18 Extrapoles Pty Limited Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity
US7168077B2 (en) * 2003-01-31 2007-01-23 Handysoft Corporation System and method of executing and controlling workflow processes
US20040162741A1 (en) * 2003-02-07 2004-08-19 David Flaxer Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference
US7114146B2 (en) * 2003-05-02 2006-09-26 International Business Machines Corporation System and method of dynamic service composition for business process outsourcing
EP1620830A2 (en) * 2003-05-07 2006-02-01 Sap Ag An end user oriented workflow approach including structured processing of ad hoc workflows with a collaborative process engine
US8332864B2 (en) * 2003-06-12 2012-12-11 Reuters America Inc. Business process automation
US8645420B2 (en) * 2003-08-05 2014-02-04 Accenture Global Services Limited Methodology framework and delivery vehicle
US7693973B2 (en) * 2003-08-28 2010-04-06 International Business Machines Corporation Pluggable state meta-data processors based on meta information modeling in a service oriented architecture
CA2543330A1 (en) 2003-09-02 2005-04-14 Infoglide Software Corporation System and method for workflow process management
CA2442796A1 (en) * 2003-09-26 2005-03-26 Ibm Canada Limited - Ibm Canada Limitee Binding a workflow engine to a data model
CA2443447A1 (en) * 2003-09-30 2005-03-30 Ibm Canada Limited-Ibm Canada Limitee System and method for conversion between graph-based representations and structural text-based representations of business processes
US7278065B2 (en) * 2003-11-17 2007-10-02 Electronic Data Systems Corporation Enterprise directory service domain controller replication alert and repair
US7137033B2 (en) * 2003-11-20 2006-11-14 International Business Machines Corporation Method, system, and program for synchronizing subtasks using sequence numbers
US7197502B2 (en) * 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
US7359909B2 (en) * 2004-03-23 2008-04-15 International Business Machines Corporation Generating an information catalog for a business model
US20050246692A1 (en) * 2004-04-28 2005-11-03 Convey Development, Inc. Asynchronous compilation
US20060064335A1 (en) * 2004-08-17 2006-03-23 International Business Machines Corporation Method, system, and storage medium for performing business process modeling
US20060053120A1 (en) * 2004-09-07 2006-03-09 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Web service registry and method of operation
US7464366B2 (en) * 2004-10-01 2008-12-09 Microsoft Corporation Programming interface for a componentized and extensible workflow model
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US20060074735A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Ink-enabled workflow authoring
US20060112122A1 (en) * 2004-11-23 2006-05-25 International Business Machines Corporation Method, system, and storage medium for implementing business process modules
US7954090B1 (en) 2004-12-21 2011-05-31 Zenprise, Inc. Systems and methods for detecting behavioral features of software application deployments for automated deployment management
US7433887B2 (en) 2004-12-29 2008-10-07 Microsoft Corporation Method and apparatus for metadata driven business logic processing
JP2006215713A (ja) 2005-02-02 2006-08-17 Canon Inc ワークフローシステムの先行業務指示及び廃止方法
US7493594B2 (en) 2005-03-14 2009-02-17 Research In Motion System and method for designing component based applications
US7983943B2 (en) 2005-05-27 2011-07-19 Xerox Corporation Method and system for workflow process node synchronization
CA2637413A1 (en) 2006-01-20 2007-07-26 Paxfire, Inc. Systems and methods for discerning and controlling communication traffic
US8069439B2 (en) * 2006-03-30 2011-11-29 Microsoft Corporation Framework for modeling continuations in workflows
US20070239505A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Abstract execution model for a continuation-based meta-runtime
US20070239498A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Framework for modeling cancellation for process-centric programs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0697652A1 (en) * 1994-08-16 1996-02-21 International Business Machines Corporation Method for re-executing a process on a computer system for fault correction
CN1636207A (zh) * 2000-02-25 2005-07-06 奥克文技术交流公司 利用计算机网络处理工作流的方法
US20030018508A1 (en) * 2001-07-19 2003-01-23 Schwanke Robert W. Data-triggered workflow processes
US20030144891A1 (en) * 2002-01-26 2003-07-31 International Business Machines Corporation Supervising the processing status of activities within workflow management systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Claus Hagen等.Exception Handling in Workflow Management Systems.《IEEE TRANSACTIONS ON SOFTWARE ENGINEERING》.2000,第26卷(第10期),943-957. *

Also Published As

Publication number Publication date
US20070234129A1 (en) 2007-10-04
CN101416156A (zh) 2009-04-22
JP5297370B2 (ja) 2013-09-25
EP2013716A4 (en) 2009-06-24
RU2008138701A (ru) 2010-04-10
JP2009532760A (ja) 2009-09-10
WO2007120391A1 (en) 2007-10-25
US7739135B2 (en) 2010-06-15
EP2013716A1 (en) 2009-01-14
MX2008011910A (es) 2008-09-29
KR20080106567A (ko) 2008-12-08
CA2644370A1 (en) 2007-10-25
BRPI0708917A2 (pt) 2011-06-14

Similar Documents

Publication Publication Date Title
CN101416156B (zh) 异步处理故障事件的方法及系统
CN101416158A (zh) 用于对过程中心的程序的取消建模的框架
CN101416157B (zh) 用于对工作流中的延续建模的框架
CN101416214A (zh) 用于基于延续的元运行时环境的抽象执行模型
CN101432694A (zh) 业务流程元模型
CN101828169A (zh) 软件工厂指定和执行模型
US20130047135A1 (en) Enterprise computing platform
Dori Object-process methodology applied to modeling credit card transactions
Snoeck et al. An architecture for bridging OO and business process modelling
Schütz et al. Multilevel business artifacts
Pan et al. Review of misfit issues between ERP principles and organisations
Aveledo et al. Usability design recommendations: a first advance
Ramanathan et al. Characterization of Service Orientation and the Adaptive Complex Enterprise
Kurtel et al. Modeling business process exceptions in UML 2 notation
Sadigh An Agent—Based Operational Virtual Enterprise Framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130306