CN101416156B - 异步处理故障事件的方法及系统 - Google Patents
异步处理故障事件的方法及系统 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 86
- 230000000694 effects Effects 0.000 claims abstract description 82
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 49
- 238000012546 transfer Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 6
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 3
- 230000001902 propagating effect Effects 0.000 claims description 2
- 238000011084 recovery Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002161 passivation Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000013396 workstream Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow 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的类型或配置的、对一类计算体系结构(例如,可兼容、计算机或其它系统)专用或其它约束。此外,编程语言通常需要准确标识和利用数据结构,诸如堆栈、堆、线程库或其它硬件专用结构以便操作系统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)指示所标识的一个或多个工作项目正处于正发生故障状态。
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)
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)
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)
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 |
-
2006
- 2006-03-30 US US11/393,093 patent/US7739135B2/en active Active
-
2007
- 2007-02-21 WO PCT/US2007/004642 patent/WO2007120391A1/en active Application Filing
- 2007-02-21 JP JP2009502791A patent/JP5297370B2/ja active Active
- 2007-02-21 BR BRPI0708917-1A patent/BRPI0708917A2/pt not_active Application Discontinuation
- 2007-02-21 KR KR1020087024029A patent/KR20080106567A/ko not_active Application Discontinuation
- 2007-02-21 EP EP07751408A patent/EP2013716A4/en not_active Ceased
- 2007-02-21 CN CN2007800123531A patent/CN101416156B/zh not_active Expired - Fee Related
- 2007-02-21 RU RU2008138701/09A patent/RU2008138701A/ru not_active Application Discontinuation
- 2007-02-21 MX MX2008011910A patent/MX2008011910A/es not_active Application Discontinuation
- 2007-02-21 CA CA002644370A patent/CA2644370A1/en not_active Abandoned
Patent Citations (4)
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)
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 |