用于通过批处理未提交的工作来跨通信组件维护持久状态的一致性的工作流管理。工作流组件定义包含要由服务提供者组件执行的工作项的工作流。工作流组件将工作项分配给服务提供者组件,且服务提供者组件确认所分配的工作项。工作流组件将所分配的工作项追加到批量工作。工作流组件创建包含批处理的工作项的事务。工作流组件通过请求服务提供者组件执行工作项来提交工作流。工作流组件检查工作项的执行状态,并在持久存储中储存该状态。
【技术实现步骤摘要】
通过工作流事务的批处理来同步运行库和应用状态
本专利技术的实施例一般涉及工作流建模的领域,尤其涉及通过批处理未提交工作来跨通信组件维护持久状态的一致性。
技术介绍
现有的软件系统试图通过对商业问题建模将商业问题映射到高级工作流。一般而言,工作流处理涉及一系列任务或动作、必须执行它们的顺序、定义谁能够执行它们的许可、以及对每一动作执行的脚本。工作流也可按照状态和事件来描述。工作流引擎可以是启用工作流的软件系统的组件,它实施工作流定义并执行工作流动作。工作流引擎具有三个主要功能。首先,它验证改变对当前工作流状态是否有效。其次,它检查当前用户是否具有执行工作流事件的许可。第三,如果事件是有效的,且用户具有执行该事件的许可,则工作流引擎准许执行。例如,在管理诸如发布新闻文章所涉及的一系列任务时,必须执行一系列工作项。在本示例中,任务包括写文章、编辑所写的文章、审阅所编辑的文章、以及发布所编辑的文章。典型的工作流引擎可请求不同的服务提供者组件(例如,写组件、编辑组件、审阅组件和发布组件)执行这些工作项或任务。软件系统的工作流引擎/组件有规律地与其它组件(例如,写组件、编辑组件等)进行通信,以监视各工作项的状态。同时,这些组件也可监视这些工作项的状态或对其设检查点。遗憾的是,这些组件没有用于保持其持久状态一致的机制。例如,工作流引擎在执行工作流期间可调用不同的组件来执行多个工作项。工作流引擎可向这些组件发送若干消息,以确定工作项的状态。所发送的每一消息调用消息通信服务提供者组件。由于要求消息通信组件维护关于工作流的一致且持久的状态,因此除非可成功地持久保存工作流状态,否则不应当发送消息。遗憾的是,这一类型的垂直集成的软件系统设计方法(即,实际上在数据到达之后执行工作流)具有许多缺点。例如,当一个组件正在执行特定的任务或工作-->项时,其它组件可能不知道该特定工作项的状态(例如,已完成、正在执行或已放弃)。另外,当在执行要执行的工作流中的一个或多个工作项时存在故障时,由于缺少状态知识,可能要求工作流引擎重新执行整个工作流。因此,需要工作流管理中的改进来解决这些和其它缺点中的一个或多个,该改进通过一种机制来同步工作项的运行库和应用状态,该机制用于批处理工作流事务,以及用于通过批处理事务来使工作流引擎能够延迟工作项的执行并跨通信组件维护工作项的持久状态的一致性。
技术实现思路
本专利技术的实施例便于组件在持久事务中共享。换言之,这些实施例准许在单个事务中向持久存储提交工作流状态和未决的消息通信状态,这确保“设了检查点的”状态跨所有的组件是一致的。本专利技术的实施例包括一工作流组件,它在其对服务提供者组件的所有调用或分配的线程调用上下文中浮动批量工作对象。服务提供者组件可选择向该批量工作添加工作,该批量工作将在提交时将所有的动作作为单个事务来处理。依照一方面,一种方法管理工作流中的状态。定义要执行的一个或多个工作项。该一个或多个定义的工作项被分配给一个或多个服务提供者组件用于执行。该一个或多个分配的工作项在稍后的时候由一个或多个服务提供者组件批处理。持久保存一个或多个批处理的工作项的状态。当一个或多个服务提供者组件执行这一个或多个提交的工作项时,一个或多个服务提供者组件提交执行一个或多个批处理的工作项。依照另一方面,一个或多个计算机可读介质具有用于管理工作流中的状态的计算机可执行指令。工作流组件分配要执行的一个或多个工作项。工作流组件定义一个或多个工作项,并且工作流组件在稍后的时候批处理一个或多个分配的工作项。一个或多个服务提供者组件提交执行一个或多个批处理的工作项。依照又一方面,一种系统维护服务的持久状态。工作流引擎分配要执行的一个或多个工作项。工作流引擎定义一个或多个工作项,并且工作流在稍后的时间批处理一个或多个分配的工作项。服务提供者提交执行一个或多个分配的工作项。在再一方面,一种方法管理可由第一宿主环境执行的一个或多个工作项的工作流。在第一宿主环境处接收到执行一个或多个工作项的分配。一个或多个分配的工作项被追加到第一宿主环境处的批量工作,指示该一个或多个分配的工作项要由-->第一宿主环境在稍后的时间执行。在第一宿主环境处接收执行一个或多个分配的工作项的请求。第一宿主环境执行该一个或多个请求的工作项。或者,本专利技术可包括各种其它方法和装置。其它特征部分将变得显而易见,部分将在后文中指出。附图说明图1是依照本专利技术的一个实施例示出用于通过批处理未提交的工作来跨通信组件维护持久状态的一致性的系统的框图的一个示例性实施例。图2是依照本专利技术的一个实施例示出通过服务提供者组件批处理工作项的示例性流程图。图3是依照本专利技术的一个实施例示出对一个或多个追加的工作项的事务的示例性框图。图4是依照本专利技术的一个实施例示出通过批处理未提交的工作来跨通信组件维护持久状态的一致性的操作的示例性流程图。图5是示出其中可实现本专利技术的合适的计算系统环境的一个示例的框图。贯穿附图,对应的参考标号表示对应的部分。具体实施方式首先参考图1,框图依照本专利技术的一个实施例示出了用于通过批处理未提交的工作来跨通信组件维护持久状态的一致性的系统100。系统100包括但不限于,工作流组件102、一个或多个服务提供者组件104以及持久存储106。在一个实施例中,系统100是由一个或多个组件(例如,工作流组件102、服务提供者组件104等)构成的软件系统。在另一实施例中,系统100是由包括本专利技术的实施例的一个或多个应用和/或软件系统构成的集成软件应用系统,如企业应用集成系统。工作流组件102以由服务提供者组件104(例如,104-1到104-N)执行的任务的形式来管理工作。图1中的服务提供者组件104-1到104-N是提供各种服务或工作项的组件。例如,服务提供者组件104-1可以是提供诸如接收用户搜索查询、接收在线产品定单等的Web服务的组件。在一个实施例中,服务提供者组件104是系统100(也称为宿主环境)的一部分,且服务提供者组件104是宿主。在另一环境中,服务提供者组件104的某些或全部在系统100之外。例如,服务提供者组件104-1可以在-->与服务提供者组件104-2分离的软件应用程序或系统中。在又一实施例中,由服务提供者组件104执行的工作项的示例可包括,但不限于,消息通信、实例、事务、持久性、线程化、定时器、角色、跟踪等。尽管图1所示的工作流组件102和服务提供者组件104是系统100的一部分,然而可以理解,这些组件(即,工作流组件102、服务提供者组件104和/或持久存储106)可以是单独的系统(例如,单独的宿主环境)的一部分。例如,工作流组件102可以在独立的软件应用程序中,而服务提供者组件104-1和/或服务提供者组件104-2可以在诸如文字处理软件、电子表格软件等单独的软件中。最初,工作流组件102具有要执行的一系列工作项。例如,在提供Web服务的系统中,可能需要一系列工作项来组成用于销售新产品的新网页。工作项或任务包括,但不限于,提供产品的图片、提供产品的描述、搜索产品可供性等等。在本实例中,服务提供者组件104-1到104-N提供了实现或执行这些工作项的全部或部分的服务。如图1所示,服务提供者组件104也可与持久存储106交互,而非仅与工作本文档来自技高网...
【技术保护点】
一种用于管理工作流中的状态的方法,所述方法包括: 定义要执行的一个或多个工作项; 将所述一个或多个定义的工作项分配给一个或多个服务提供者组件用于执行; 在稍后的时间使所述一个或多个分配的工作项由所述一个或多个服务提供者组件批处理; 持久保存所述一个或多个批处理的工作项的状态;以及 提交所述一个或多个服务提供者组件以执行所述一个或多个批处理的工作项,其中,所述一个或多个服务提供者组件执行所述一个或多个提交的工作项。
【技术特征摘要】
US 2004-11-22 11/023,7691.一种用于管理工作流中的状态的方法,所述方法包括:定义要执行的一个或多个工作项;将所述一个或多个定义的工作项分配给一个或多个服务提供者组件用于执行;在稍后的时间使所述一个或多个分配的工作项由所述一个或多个服务提供者组件批处理;持久保存所述一个或多个批处理的工作项的状态;以及提交所述一个或多个服务提供者组件以执行所述一个或多个批处理的工作项,其中,所述一个或多个服务提供者组件执行所述一个或多个提交的工作项。2.如权利要求1所述的方法,其特征在于,所述提交过程包括以下的至少一个:创建事务;以及将所述一个或多个批处理的工作项追加到事务。3.如权利要求2所述的方法,其特征在于,追加包括根据所述一个或多个定义的工作项对所述事务中一个或多个追加的工作项进行分段。4.如权利要求1所述的方法,其特征在于,所述一个或多个服务提供者组件是以下的一个或多个的一部分:一个或多个宿主环境以及远离所述一个或多个定义的工作项的一个或多个宿主环境,以及所述一个或多个工作项包括以下的至少一个或多个:消息通信、实例、事务、持久性、线程化、定时、角色和跟踪。5.如权利要求1所述的方法,其特征在于,还包括由所述一个或多个服务提供者组件在执行所述一个或多个提交的工作项失败之后发送消息。6.如权利要求1所述的方法,其特征在于,持久保存包括将所述一个或多个批处理的工作项的状态保存在计算机可读介质中,其中,所述一个或多个分配的工作项的状态包括以下的至少一个:已完成、正在执行和已放弃。7.如权利要求1所述的方法,其特征在于,一个或多个计算机可读介质具有用于执行如权利要求1所述的方法的计算机可执行指令。8.一个或多个具有用于管理工作流中的状态的计算机可执行组件的计算机可读介质,所述组件包括:工作流组件,用于分配要执行的一个或多个工作项,其中,所述工作流组件定义所述一个或多个工作项,其中,所述工作流组件在稍后的时间批处理所述一个或多个分配的工作项;以及一个或多个服务提供者组件,用于提交执行所述一个或多个批处理的工作项。9.如权利要求8所述的计算机可读介质,其特征在于,还包括用于储存所述一个或多个批处理的工作项的持久状态的存储器,其中,所述一个或多个批处理的...
【专利技术属性】
技术研发人员:A索玛瑟卡兰,PE梅比,SR塔特,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。