动态配置工作流的方法和系统的制作方法

文档序号:6463630阅读:134来源:国知局
专利名称:动态配置工作流的方法和系统的制作方法
技术领域
本发明涉及工作流的动态配置,特别涉及在运行时对工作流进行动态配置的系统和方法。
背景技术
工作流(Workflow)是一系列相互衔接、按照预先配置好的顺序执行的业务活动或任务,其代表业务过程的部分或整体。参与者对文件、信息或任务按照规程采取行动,并使其在参与者之间传递。
工作流管理是指通过计算对工作流进行设计、开发、管理、执行和监控,从而提供综合的集成化解决方案。工作流管理系统通常使用软件和其他信息技术来定义、创建业务过程并管理其执行。所创建的
工作流被部署在一个或多个工作流引擎上运行,这些引擎解释工作流的定义和配置,与工作流的参与者进行交互,并根据需要调用其他资源或应用。
工作流管理改进和优化了业务流程,提高业务工作效率,实现更好的业务过程控制。然而,不断变化的应用环境和瞬息万变的市场需求要求工作流必须不断地进行相应的改变和调整。这要求工作流管理系统具有有效地响应于修改和调整的适应性。
最高层次的业务流程适应性是指处理流程控制流动态变化的能力。流程的变化可以是可预知的或者非可预知的。变化可以纟皮施加为暂时修改(实例层变化)或者施加为流程定义(方案层变化)。
传统的工作流修改方法通常需要在变化发生时停止已经部署在工作流引擎上的工作流,由开发设计人员创建新的工作流模型或者修改和重配置工作流,而后将更新的工作流重新部署在引擎上执行。由于传统的业务流程管理系统通常将设计工具和运行时间服务器区分
5为不同的部署阶段和部署环境。因此这种需要重新设计和部署工作流模型的方案所导致的人力、物力、时间等资源的代价是显著的。特别地,当需要频繁地修改工作流或对工作流进行较大修改时,其代价可能是无法承受的。因此,需要在运行时间对工作流进行动态、灵活配置的方法。

发明内容
本发明提供一种能够在运行时对工作流灵活地进行动态配置的方法和系统,能够在不改变已经部署的工作流引擎的情况下对工作流进行动态的配置,而且无需停止现有工作流以对工作流模型重新进行开发和部署。
根据本发明的 一个方面,提供一种支持动态配置工作流的方法。
该方法包括a)接收用户对工作流的修改;b)确定工作流的逻辑断点,获得针对修改操作的工作流的逻辑片段;c)生成适应性模型,其中适应性模型包括对逻辑片段的引用,以及逻辑片段之间的协作关系;d)根据适应性模型监视并控制工作流引擎执行逻辑片段,以实现符合修改的虚拟工作 流。
根据本发明的另 一方面,提供一种支持动态配置工作流的适应性系统。该系统包括被配置用于接收用户对工作流的修改的装置;工
作流分解器,被配置用于确定工作流逻辑断点,获得针对修改操作的
工作流的逻辑片段;适应性模型生成器,被配置用于生成适应性模型,其中适应性模型包括对逻辑片段的引用,以及逻辑片段之间的协作关
系;适应性引擎,被配置用于根据适应性模型监视并控制工作流引擎
执行逻辑片段,以实现符合修改的虛拟工作流。
根据本发明的另一方面,提供一种计算机软件产品,包括用于在计算机设备上执行时实现根据本发明的支持动态配置工作流的方法的计算机代码。
根据本发明的技术方案,仅通过向现有工作流引擎附加部件就能够在现有的工作流引擎上基于基本工作流引擎的管理功能支持先进的适应性特征,而无需对已经部署的工作流引擎改变,或者对现有工作流模型重新进行开发和部署。这为配置工作流的动态变化提供了灵活性。而且,根据本发明所生成工作流的适应性模型可以被重复地利用,由此能够降低对同 一 工作流多次进行修改所耗费的成本。


为了更好的理解本发明的特征和优点,将参考附图对本发明的原
理及示例性实施方式进行描述,其中
图1示出了根据本发明的实施方式支持对工作流进行动态配置的适应性系统框图2示出了根据本发明的一种实施方式根据用户输入的待修改节点T在原始工作流中确定断点的示例性过程的流程图3示出了^4居本发明的一种实施方式确定前断点BT的示例性过程的流程图4示出了根据本发明的一种实施方式确定后断点AT的示例性过程的流程除、移动、替换和重复时划分工作流片段的示意图6A-图6E示出了根据本发明的实施方式进行添加、删除、移动、替换和重复时通过协作操作来定义工作流片段之间协作关系的示
意图7示出了根据本发明的实施方式支持动态配置工作流的方法的流程图;以及
图8示出了可以用于实现根据本发明实施方式的计算机系统示例。
具体实施例方式
本发明提供一种方法和系统以在现有的工作流引擎上基于基本工作流引擎的管理功能支持先进的适应性特征,即支持对工作流进行动态配置。本发明将具有以下功能性
融合将被改变的工作流以及增加的工作流变化,以作为虚拟动态工作流。该虚拟动态工作流将任务分配到多个不同的工作流实例来4丸行,并且协作这些工作流实例以完成该动态工作流执行。
将增加的工作流变化建模为工作流片段,这些工作流片段部分可以从原工作流模型中导出,而另一部分,例如加入的新流程片段,则需要用户按原有流程建模工具完成相应的开发。基于基本工作流引擎管理API定义实例协作操作,以支持对工作流的动态改变。
本发明的申请人已经注意到,可以为工作流的修改定义基本修改类型。这些基本修改类型可以包括简单的、常用的修改操作,而且通
过这些基本修改类型的组合可以实现复杂的工作流的修改。例如,这些基本修改类型可以包括对工作流中的节点进行添加、删除、移动、
替换和重复。因此在本说明书的后续说明中,将以上述基本修改类型作为示例说明本发明的基本原理。本领域的技术人员可以理解,基于在实现上述基本修改类型的适应性解决方案后,实现对工作流的复杂修改的适应性是显而易见的。
述。在附图和描述中,将尽量使用相同或类似的参考标号来标示相同或类似的部分。
图1示出了根据本发明的实施方式支持对工作流进行动态配置的适应性系统100的框图。根据本发明一种实施方式的适应性系统100可以包括设计时的部件和运行时的部件。其中,设计时的部件用于在客户端环境下对工作流进行开发、逻辑分段等;运行时的部件用于在服务器端环境下支持工作流引擎运行修改的工作流。在适应性系统100中,设计时的部件可以包括工作流开发器101、标记编辑器103和工作流分解器105;运行时的部件可以包括适应性模型生成器102 、适应性模型库110以及适应性引擎112。
在设计阶段,客户端中的标记编辑器103用于接收用户对于工作流的修改。在一种实现方式中,标记编辑器103可以实现为对用户交互式接口, 一方面用户可以通过显示装置(未示出)查看已有的工作流模型(实例),另一方面用户可以根据需要使用输入装置(未示
出)对已有的工作流进行标记,以指明希望进行修改的工作流节点T,以及对T所进行的修改类型,例如添加、删除、移动、替换、重复等。用户对工作流标记的编辑可以以各种形式来实现。例如,用户可以通
过标记编辑器103编辑指明标记的脚本或文档,或者通过标记编辑器103以可视化的方式直接在显示的工作流上以预定方式标记各种修改。标记编辑器103向工作流分解器105提供用户所需的修改操作。工作流分解器105根据标记编辑器103提供的修改操作,对原始工作流进行处理,确定适当的逻辑断点(以下简称断点)。这是因为,在工作流中并不是所有节点都适合作为断点,如果用户所标记的需要修改的节点并不适合作为断点,则需要针对该修改搜索并确定适当的节点作为断点。工作流分解器105通过所确定的断点将原始工作流在逻辑上划分为工作流片段。工作流分解器105可以通过算法自动地确定断点并且针对修改对原始工作流进行逻辑片段划分。然而,对于有经验的用户来说,也可以选择手动完成断点的设定以及逻辑片段的划分。
工作流开发器101可以基于现有的工作流建模环境的各种开发模块,用于创建修改中所添加工作流片段。开发者在开发这些用于添加的工作流片段时,同时应该建立该添加的工作流片段和现有工作流片段之间业务对象的转换和映射。
在运行之前将,需要将工作流分解器105依据修改操作所划分的工作流逻辑片段以及通过工作流开发器101所创建的用于添加的工作流片段(如果存在)例如以原有工作流系统的部署方式部署到工作流引擎122的工作流库128中。
在运行阶段,适应性模型生成器102生成针对特定修改的工作流适应性模型,其中该工作流适应性模型包括支持特定修改的对在设计时中建立的并且部署在工作流引擎12 8中的工作流逻辑片段的引用和上述逻辑片段间的协作关系。适应性模型生成器102可以包括适应性模型控制器104、适应性模型编辑器106以及优选地片段预览器 108。
适应性模型控制器104用于向适应性模型库IIO存储适应性模型 或者从适应性模型库110中获得适应性模型。适应性模型控制器104 和适应性模型库110的存在使得适应性模型是可以重复利用的,由此 可以在现有的适应性模型上继续进行开发,从而获得新的适应性模。
适应性模型编辑器106用于编辑适应性模型(例如以脚本,或者 任何其它可以解析的描述文件的形式)。所编辑的适应性模型一方面 包括支持特定修改的对在设计时中建立的并且部署在工作流引擎128 中的工作流逻辑片段的引用;另 一方面还包括上述逻辑片段间的协作 关系。适应性模型编辑器106可以根据修改类型确定各片段断点处所 要执行的适当操作,从而定义各个片段在执行时的协作关系,以便在 执行修改后的工作流实例时实现用户所需的修改。适应性模型编辑器 106还可以按照用户(开发者)的配置确定各个逻辑片段之间的协作 关系。
根据本发明的一种实施方式,在适应性模型生成器102中提供片 段预览器108,以可视化的输出所生成的逻辑片段供用户浏览。由此, 便于用户检查对原始工作流划分的逻辑片段是否能给满足其修改需求。
适应性模型生成器102所生成的工作流适应性模型被存储在适应 性模型库110中。存储在适应性模型库110中的适应性模型可以被重 复地开发和利用。例如,适应性模型生成器102可以通过适应性模型 控制器104从适应性模型库110中读取已经保存的适应性模型并对其 进行修改,以重新定义新的适应性模型。
适应性引擎112根据适应性模型监视并控制工作流引擎122执行 符合所接收修改的虛拟工作流。适应性引擎U2可以包括适应性模型 管理器114、用于管理监视工作流执行过程的观察器管理器116、用 于控制工作流引擎工作流的执行的片段协作器118,以及用于在工作流片段之间转换和映射业务对象的对象映射器120。
适应性引擎112的适应性模型管理器114从适应性模型库110中 加载工作流的适应性模型。观察器管理器116向工作流引擎122的工 作流状态观察器124注册适应性模型中所标识的用来划分逻辑片段的 断点。在现有的工作流引擎中,工作流状态观察器124用于监视当前 工作流实例的执行。因此,适应性引擎112的观察器管理器116可以 借助于工作流引擎122中的工作流状态观察器124监视工作流,从而 获取是否已经执行到所划分的逻辑片段的断点的信息。响应于工作流 已经执行到断点,适应性引擎112的片段协作器118依据适应性模型 中该断点的协调操作,调用工作流引擎122的工作流实例管理API 126,从而将这些协作操作转化为工作流引擎支持的操作序列。工作 流引擎122在适应性引擎122的监视与配置下执行了适应性模型中所 限定的虚拟动态工作流。
工作流状态观察器这类工具具有AOP(面向方向编程)特性。例 ^口在Websphere 5危禾呈月良务器(Websphere process server )产f口即存在 类似的工具,即状态观察器(state observer)。本领域的技术人员可 以理解,并不是所有工作流引擎都提供现成的观察器工具。但是,本 领域的技术人员可以理解,可以为这些不具备现成观察器的工作流引 擎通过面向方向编程开发类似地功能性。
如上所述,对于工作流的各种修改均可以分解为基本修改类型, 这些基本修改类型例如可以包括对工作流中的节点进行添加、删除、 移动、替换和重复。在执行这些修改操作的过程中,可能涉及业务对 象在不同工作流片段之间的复制和设置。不同的片段所支持的业务对 象类型和属性可能是不同的(例如,名称不同,对应关系不同等)。 为了保证协作操作的正确性,适应性引擎112还包括对象映射器120, 用于在工作流片段之间转换和映射对象,以保证工作流引擎122对协 作操作的正确执行。流片段之间对象的转换和映射可以由适应性系统 100中设计时的部件中的相应部件来提供。例如可以通过工作流开发 器101来提供,甚至还可以通过工作流分解器105来提供。
ii根据本发明的适应性系统监控或调用现有工作流引擎已有的功 能(例如工作流状态观察器、工作流实例管理API),已使得现有的 工作流引擎能够通过按照协作关系执行各个逻辑片段的实例来执行 修改后的虛拟动态工作流。因此在根据本发明的实施方案中,无需对 现有工作流引擎进行任何修改。
下面将结合具体的工作流修改示例来详细阐释适应性系统100的
工作原理。
如上所述,对于工作流的各种修改均可以分解为基本修改类型, 这些基本修改类型例如可以包括对工作流中的节点进行添加、删除、 移动、替换和重复。
在客户端的设计时,用户通过标记编辑器103输入对于工作流的 修改,包括指定想要修改的节点T以及修改的类型。
响应于用户输入的节点T,工作流分解器105在原始工作流中确 定适当的断点,以将原始工作流划分为逻辑片段。作为断点的工作流 节点应该满足特定约束条件,这些条件至少包括
1) 工作流执行时在该节点处具有稳定的状态;
2) 工作流执行时可以在该节点处暂停;
3 )工作流执行在该节点处可以被observer 4企测到。 例如,通常可以作为断,泉使用的工作流节点包括但不限于调用其他应 用或资源的节点、等待与用户交互的节点等。可以根据工作流所涉及 的具体应用领域和用户需求来确定可以作为断点的工作流节点的类 型。
工作流分解器105可以自动地通过一定算法根据用户输入的节点 T确定断点。图2示出了根据本发明一种实施方式适应性系统的片段 划分器根据用户标记的待修改节点T在原始工作流中确定断点的示 例性过程的流程图。
在步骤200中,该流程开始。
在步骤S205,将原始工作流转化为树结构。以工作流入口为根节 点,以序列中的节点为子节点。当遇到条件判断节点时,以该节点为父节点,以各个分支的入口节点为子节点,如此重复,直到树结构构 建完毕。
在步骤S210中,将该树部分结构转换为等价的二叉树结构。例 如,可以对树结构进行深度优先遍历,对于每个价(也即,子节点数 目)大于2的序列节点,添加新的序列节点S,作为其子节点,将序列 节点S除第一子节点之外的其他所有子节点都移动为序列节点S,的 子节点。
在步骤S215中,对于用户标记的需要修改的目标节点T,在二 叉树上确定距离其最近的在其之前的前断点BT。根据本发明的一种 实施方式,可以根据图3所示的过程来确定在二叉树上距离节点T最 近的在其之前的前断点BT。
转而参考图3,在步骤S300中,该过程开始。
在步骤S305中,判断节点T是否位于while循环、事件处理、 错误处理、补偿处理、并行等结构的范围中。如果判断结果为"是", 则执行步骤S310;如果判断结果为"否",则执行步骤S315。
在步骤S310中,将节点T所在结构本身所对应的流程节点确定 为前断点BT,并且过程继续执行步骤S335。
在步骤S315中,将节点T的父节点设为S。
继而在步骤S320中,判断S的左兄弟节点是否属于断点类型。 如果判断结果为"是",则执行步骤S325;如果判断结果为"否", 则执行步骤S330。
在步骤S325中,在此将S确定为前断点BT,并且过程继续执行 步骤S335。
在步骤S330中,将节点T设为节点T的父节点,并且过程回到 步骤S315继续执行,直到找到前断点BT。 在步骤S335中,该过程结束。
现在返回图2,在步骤S215中确定前断点BT (例如通过图3所 示过程)之后,过程进行到步骤S215,在此确定距离目标节点T最 近的在其之后的后断点AT。根据本发明的一种实施方式,可以根据图4所示的过程来确定在二叉树上距离节点T最近的在其之后的后断 点AT。
转而参考图4,在步骤S400中,该过程开始。
在步骤S405中,判断目标节点T是否处于while/并行、事件处 理、错误处理、或补偿处理等结构的范围中。如果判断结果为"是", 则执行步骤S410;如果判断结果为"否",则执行步骤S415。
在步骤S410中,将所在结构对应的流程节点设置为目标节点T。
在步骤S415中,判断目标节点T是否属于断点类型。作为断点 的工作流节点应该满足特定约束条件,这些条件至少包括
1) 工作流执行时在该节点处具有稳定的状态;
2) 工作流执行时可以在该节点处暂停;
3 )工作流执行在该节点处可以被observer ;险测到。
如果步骤S415中的判断结果为"是,,,则执行步骤S420;如果
判断结果为"否",则执行S440。
在步骤S420中,判断节点T是否具有右兄弟节点。如果判断结
果为"是,,,则执行步骤S425;如果判断结果为"否",则执行步
骤S430。
在步骤S425中,在此将节点T的右兄弟节点确定为后断点AT, 而后过程进行到步骤S430。
在步骤S430中,找到节点T的所有这样的祖先节点T,使得节 点T,的父节点是序列节点并且具有右兄弟节点T*,且节点丁*不是节 点T的纟且先。
在步骤S435,将步骤S430中找到的所有节点丁*确定为后断点 AT,而后在步骤S480中,该过程结束。
在步骤S440处,判断节点T是否具有右兄弟节点。如果判断结 果为"是,,,则执行步骤S465;如果判断结果为"否",则执行步 骤S445。
在步骤S465中,由于节点T具有右兄弟节点,所以将的右兄弟 节点记为T,,,并继而在步骤S470中将T设置为T"。在步骤S475中,判断节点T"是否属于可作为断点的节点类型。 如果判断结果为"是",则该过程转到步骤S405继续执行;如果判 断结果为"否",则该过程转到步骤S445继续执行。
在步骤S445中,判断节点T是否是序列节点。如果判断结果为 "是"则执行步骤S450;如果判断结果为"否",则执行步骤S455。
在步骤S450中,将节点T设置为节点T的第一子节点,并且该 过程转到步骤S405继续执行。
在步骤S455中,将节点T设置为节点T的父节点。
在步骤S460中,判断T具有右兄弟并且该右兄弟节点不是原始 T节点的祖先。如果判断结果为"否",则该过程返回步骤S455继 续执行;如果判断结果为"是",则该过程转到步骤S405继续执行。
直到最终确定了后断点AT,该过程在步骤S480中结束。
片段划分器106根据用户输入的修改类型以及所确定的前断点 BT和后断点AT将原始工作流划分为若干片段,生成原有流程系统 的流程模型。这些生成的流程模型具有原流程一样的流程接口定义和 流程变量定义。例如,采用下面的示例性方法来实现对工作流的片段 划分
步骤l.如果目标节点T的父节点是前断点BT,则根据不同的修
改类型来产生相应的片段
(1 )对于删除操作产生针对后断点AT的片段;
(2) 对于T向后移动操作若T是后断点AT的左兄弟节点, 产生针对节点T和后断点AT的片段;
(3) 对于T的替换操作产生针对后断点AT的片段
(4) 对于重复T操作若T是后断点AT的左兄弟节点,产生 针对T的片段。
步骤2.如果目标节点T的父节点不是前断点BT,则产生新的工 作流过程,其逻辑起点是前断点BT,并包括所修改的逻辑。此情况 可以实现针对于添加操作的逻辑分段。
在上面的步骤1中,如果存在多个后断点AT,则可以根据不同的策略来产生工作流片段,这些策略可以包括片段尺寸最小和片段 数目最少。根据片段尺寸最小的策略,为每个后断点AT生成相应的 片段;而根据片段数目最少节点中,产生包括所有后断点AT分段的分段。
本领域技术人员可以理解,在工作流分解器中对上述示例性策略 以及其它可选策略的选用是灵活的。例如,可以通过用户选择或配置 具体采用何种策略进行工作流的自动逻辑分段。又例如,还可以对同 一工作流的自动逻辑分段应用多种策略,并向用户显示针对不同策略 的分段结果,用户在分段结果中选择符合其需求的分段结果。
图5A-图5E示出了根据本发明的实施方式进行添加、删除、移 动、替换和重复的工作流修改操作时划分工作流片段的示意图。
图5A中,示出了向所示工作流中添加工作流节点F的修改操作。 所得划分后的逻辑片段如图5A中所示片段1和片段2。
图5B中,示出了删除工作流中的工作流节点B的修改操作。所 得划分后的逻辑片段如图5B中所示片段1和片段2。
图5C中,示出了将工作流中的工作流节点B移动到节点E之前 的修改操作。所得划分后的逻辑片段如图5C中所示片段1、片段2 和片段3。
图5D中,示出了将工作流中的工作流节点B替换为节点Bl的 修改操作。所得划分后的逻辑片段如图5D中所示片段1、片段2和 片段3。
图5E中,示出了对工作流中的工作流节点B重复执行的修改操 作。所得划分后的逻辑片段如图5E中所示片段1和片段2。
所获得的例如图5A至图5E任一所示出的工作流逻辑片段将被部 署到工作流引擎122的工作流库128,以用于执行相应的修改后的虛
拟工作流。
在服务器端的运行时,适应性模型生成器102的适应性模型编辑 器106编辑适应性模型。所编辑的适应性模型一方面包括对诸如图5A 至图5E中任一所示出的工作流逻辑片段的引用;另一方面还包括这些逻辑片段间的协作关系。适应性模型编辑器106需要根据修改类型 确定这些逻辑片段之间的协作关系,从而使工作流引擎能够正确地协 调这些片段(实例)的执行,以实现用户所需的修改。例如,表示协 作关系的协作操作可以是在工作流引擎操作,例如,其原子操作,的
基础上定义的。绝大多数工作流引擎所支持的工作流原子操作包括 (1 )创建工作流实例;(2)执行工作流实例;(3)挂起工作流实
例;(4)恢复工作流实例;(5)终止工作流实例;(6)复制工作
流对象;以及(7)设置工作流对象。假设待操作的两个工作流实例
分别是Wl和W2,可以定义如下协作操作
-SC操作挂起Wl—复制工作流对象—创建W2 -EC操作执行W1—复制工作流对象~>创建W2 -TC操作复制工作流对象—创建W2—终止Wl -SR操作挂起Wl—复制工作流对象—恢复W2—设置工作流
对象
-ER操作执行Wl —复制工作流对象—设置工作流对象—恢
复W2
- TR操作复制工作流对象—终止Wl~>设置工作流对象—恢
复W2
依据上述预定义的协作操作可以针对特定的修改实现工作流逻 辑片段之间的协作关系。
如图6A至图6E所示,在进行添加、删除、移动、替换和重复 的修改操作时可以通过上面预定义的协作操作来定义不同工作流片 段之间协作关系。
图6A中,示出了向所示工作流中添加工作流节点F的修改操 作。逻辑片段之间的协作关系如图6A中所示片段1的节点A之后 执行到片段2的SC操作(挂起片段1实例—复制工作流对象—创建 片段2实例),并且在片段2之后执行到片段1的TR操作(复制工 作流对象—终止片段2实例—设置工作流对象—恢复片段1实例)。
图6B中,示出了删除工作流中的工作流节点B的修改操作。逻辑片段之间的协作关系如图6B中所示在片段1之后执行到片段 2的TC操作(复制工作流对象—创建片段2实例~>终止片段1实例)。
图6C中,示出了将工作流中的工作流节点B移动到节点E之 前的修改操作。逻辑片段之间的协作关系如图6C中所示片段l之 后执行到片段2的TC操作(复制工作流对象—创建片段2实例—终 止片段1 ),在片段2的节点E之前执行到片段3的SC操作(挂起 片段2实例—复制工作流对象—创建片段2实例),在片段3后执行 到片段2的TR操作(复制工作流对象—终止片段3实例—设置工作 流对象—恢复片段2实例)。
图6D中,示出了将工作流中的工作流节点B替换为节点Bl 的修改操作。逻辑片段之间的协作关系如图6D中所示片段1之后 执行到片段2的TC操作(复制工作流对象—创建片段2实例—终止 片段1实例),片段2之后执行到片段3的TC操作(复制工作流对 象—创建片段3实例—终止片段2实例)。
图6E中,示出了对工作流中的工作流节点B重复执行的修改 操作。逻辑片段之间的协作关系如图6E中所示在片段1节点B之 后执行到片段2的SC操作(SC操作挂起片段1实例—复制工作流 对象—创建片段2实例),在片段2之后执行到片段1的TR操作(复 制工作流对象—终止片段2实例—设置工作流对象—恢复片段1实 例)。
在图6所示的示例中,未使用EC操作、ER操作和SR操作定 义逻辑片段之间的协作关系。但是,EC操作、ER操作和SR操作也 可以用于定义逻辑片段之间的协作关系,特别是,为更复杂场景下的 修改定义逻辑片段之间的协作关系。例如,将EC操作用于创建多个 工作流实例;将SR和ER操作用于工作流实例之间的交错,等等。
步扩展现有流程引擎的执行能力。
包括对上述如图5A-5E任一所示的工作流的逻辑片段的引用和 如图6A-6E相应一图所示的逻辑片段间的协作操作的工作流的适应性模型可以例如,以脚本、描述文件的形式被存储在适应性模型库1 1 0 中。
在服务器端的运行时,在适应性引擎112中,适应性模型管理 器114从适应性模型库110中加载工作流的适应性模型。观察器管理 器116向工作流引擎122的工作流状态观察器124注册适应性模型中 所标识的用来划分逻辑片段的断点。在现有的工作流引擎中,工作流 状态观察器124用于监视工作流实例的执行。因此,适应性引擎112 的观察器管理器116可以借助于工作流引擎122中的工作流状态观察 器124监视工作流,从而获取是否已经执行到所划分的逻辑片段的断 点的信息,以确定当前是否应该执行相应协作才喿作。响应于工作流已 经执行到断点,适应性引擎112的片段协作器U8依据适应性模型中 该断点的协调操作,调用工作流引擎122的工作流实例管理API 126, 也即执行图6A至图6E任一的协作操作中所包括的各个工作流操作 (这里是工作流原子操作),来实现相应的协作操作。当在执行协作 操作中需要执行复制工作流对象或者设置工作流对象时,对象映射器 120用于在工作流片段之间转换和映射对象,以保证工作流引擎l22 对协作操作的正确执行。
这里需要说明的是,上文以示例性方式限定了协作操作,以及 针对各个修改类型应用协作操作以实现各个片段之间的协作关系的
方式,但是这种限定方式并不是限制性的,多种能够实现对修改后的 虚拟工作流的执行的限定方式都可以作为上文所描述示例的替换方案。
图7示出了根据本发明的实施方式支持动态配置工作流的方法 的流程图。
在步骤S700中,该流程开始。
在步骤S705中,在客户端侧的设计时,接收用户对已有工作流 的动态修改需求。例如,可以通过标记编辑器来接收用户对已有工作 流的修改。所接收的修改需求可以以任何方式来表示,例如指明修改 内容的脚本或文档,在可视化用户交互界面中直接指示修改。在步骤S710中,确定工作流的逻辑断点,获得针对修改操作的
工作流的逻辑片段。例如,根据图2-图4所示的方式自动地确定断点, 并且例如如图5A-5E中任一所示的方式对已有工作流进行逻辑分段划分。
在步骤S715中,将逻辑片段部署到工作流引擎。需要将工作流 分解器105依据修改操作所划分的工作流逻辑片段部署到工作流引擎 的工作流库中。在存在添加工作流的修改操作中,还需要将通过工作 流开发器所创建的工作流片段也部署到工作流引擎的工作流库中。
在步骤S720中,在服务器侧的运行时,生成适应性模型,该适 应性模型包括针对该修改对工作流划分的逻辑片段的引用和逻辑片 段间的协作关系。例如,如图6A-6E中任一所示的方式限定各个逻辑 片段之间的协作关系。
在步骤S725中,加载该适应性模型。所生成的适应性模型可以 被存储在适应性模型库中。当需要执行该修改的工作流时,从该适应 性模型库中加载适应性模型。配置适应性模型库的另一优势在于,可
以对已经生成的适应性模型重复进行利用,例如进行再修改等。
在步骤S730中,根据适应性模型监视并控制工作流引擎执行部 署到工作流引擎的工作流片段(实例),以便实现符合所接收修改的 虛拟工作流。具体而言,通过工作流引擎监视已有工作流的执行,获 取是否已经执行到所划分的逻辑片段的断点的信息。响应于已有工作 流已经执行到断点,依据适应性模型中该断点的协调操作,调用工作 流引擎的工作流实例管理API,来实现相应的协作操作,从而使得工 作流引擎通过按照协作关系执行各个逻辑片段的实例,来依据用户修 改需求执行符合所述修改的虛拟工作流。 在步骤S735中,该流程结束。
图8示出了可以用于实现根据本发明实施方式的计算机系统示例。
图8中所示的计算机系统包括CPU(中央处理单元)801、 RAM(随机存取存储器)802、 ROM(只读存储器)803、系统总线804,硬盘控制器805、键盘控制器806、串行接口控制器807、并行接口控 制器808、显示器控制器809、硬盘810、键盘811、串行外部设备812、 并行外部设备813和显示器814。在这些部件中,与系统总线804相 连的有CPU801、 RAM 802、 ROM 803、硬盘控制器805、键盘控制 器806,串行接口控制器807,并行接口控制器808和显示器控制器 809。硬盘810与硬盘控制器805相连,键盘811与键盘控制器806 相连,串行外部设备812与串行接口控制器807相连,并行外部设备 813与并行接口控制器808相连,以及显示器814与显示器控制器809 相连。
图8中每个部件的功能在本技术领域内都是众所周知的,并且 图8所示的结构也是常规的,该计算机系统只是计算机系统的一个例 子。本领域的熟练技术人员可以理解,许多其它计算机系统设计也能 实现本发明的实施方式。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员 可以在所附权利要求的范围内做出各种变形或修改。
权利要求
1.一种支持动态配置工作流的方法,包括a)接收用户对工作流的修改;b)确定工作流的逻辑断点,获得针对修改操作的工作流的逻辑片段;c)生成适应性模型,其中所述适应性模型包括对所述逻辑片段的引用,以及所述逻辑片段之间的协作关系;d)根据所述适应性模型监视并控制工作流引擎执行所述逻辑片段,以实现符合所述修改的虚拟工作流。
2. 根据权利要求1所述的方法,还包括在步骤b)之后 将所述逻辑片段部署到所述工作流引擎。
3. 根据权利要求1所述的方法,还包括在步骤d)之前 加载所述适应性模型。
4. 根据权利要求1所述的方法,其中所述步骤b)包括 根据所述修改所针对的节点T在所述流程中确定断点; 基于所述修改的类型和所确定的断点以一定策略划分所述逻辑片段。
5. 根据权利要求1所述的方法,其中所述步骤c)包括以所述工作流引擎所支持的工作流操作定义所述逻辑片段之间 的协作关系。
6. 根据权利要求1所述的方法,其中所述步骤d)包括 监视所述工作流引擎对所述逻辑片段的执行;响应于所述逻辑片段已经执行到断点,依据所述适应性模型的所 述协调关系,调用所述工作流引擎的工作流实例管理应用程序接口 。
7. 根据权利要求6所述的方法,其中所述步骤d)还包括 在所述逻辑片段之间转换和映射所述逻辑片段中包含的对象。
8. 根据权利要求4所述的方法,其中所述修改的类型包括添力口、 删除、移动、替换和重复。
9. 根据权利要求4所述的方法,其中所述策略包括以下各项中的 至少一项逻辑片段尺寸最小;逻辑片段数目最少。
10. —种支持动态配置工作流的适应性系统,包括 被配置用于接收用户对工作流的修改的装置; 工作流分解器,被配置用于确定工作流逻辑断点,获得针对修改操作的工作流的逻辑片段;适应性模型生成器,被配置用于生成适应性模型,其中所述适应 性模型包括对所述逻辑片段的引用,以及所述逻辑片段之间的协作关系;适应性引擎,被配置用于根据所述适应性模型监视并控制工作流 I擎执行所述逻辑片段,以实现符合所述修改的虛拟工作流。
11. 根据权利要求IO所述的适应性系统,还包括 被配置为将所述逻辑片段部署到所述工作流引擎的装置。
12. 根据权利要求IO所述的适应性系统,还包括 适应性模型库,被配置用于向其中存储所述适应性模型,并且从其中加载所述适应性模型。
13. 根据权利要求IO所述的适应性系统,其中所述工作流分解器 被配置用于根据所述修改所针对的节点T在所述流程中确定断点; 基于所述修改的类型和所确定的断点以一定策略划分所述逻辑片段。
14. 根据权利要求IO所述的适应性系统,其中所述适应性模型生 成器被配置用于以所述工作流引擎所支持的工作流操作定义所述逻辑片段之间 的协作关系。
15. 根据权利要求IO所述的适应性系统,其中所述适应性引擎包括观察器管理器,被配置用于监视所述工作流引擎对所述逻辑片段 的执行;片段协作器,被配置用于响应于所述逻辑片段已经执行到断点, 依据所述适应性模型的所述协调关系,调用所述工作流引擎的工作流 实例管理应用程序接口 。
16. 根据权利要求15所述的适应性系统,其中所述适应性引擎还 包括对象映射器,被配置用于在所述逻辑片段之间转换和映射所述逻 辑片段中包含的对象。
17. 根据权利要求12所述的适应性系统,其中所述修改的类型包 括添加、删除、移动、替换和重复。
18. 根据权利要求12所述的适应性系统,其中所述策略包括以下 各项中的至少一项逻辑片段尺寸最小; 逻辑片段数目最少。
全文摘要
根据本发明的技术方案,提供一种支持动态配置工作流的方法。该方法包括a)接收用户对工作流的修改;b)确定工作流的逻辑断点,获得针对修改操作的工作流的逻辑片段;c)生成适应性模型,其中适应性模型包括对逻辑片段的引用,以及逻辑片段之间的协作关系;d)根据适应性模型监视并控制工作流引擎执行逻辑片段,以实现符合修改的虚拟工作流。本发明还提供相应的系统和计算机程序产品。根据本发明的技术方案,能够在不改变已经部署的工作流引擎的情况下对工作流的控制流进行动态的修改,而且无需停止现有工作流以对工作流模型重新进行开发和部署。
文档编号G06Q10/00GK101593294SQ20081010884
公开日2009年12月2日 申请日期2008年5月29日 优先权日2008年5月29日
发明者伟 孙, 阔 张, 静 李, 欧铁军, 郭常杰 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1