CN101593294A - 动态配置工作流的方法和系统 - Google Patents
动态配置工作流的方法和系统 Download PDFInfo
- Publication number
- CN101593294A CN101593294A CNA2008101088476A CN200810108847A CN101593294A CN 101593294 A CN101593294 A CN 101593294A CN A2008101088476 A CNA2008101088476 A CN A2008101088476A CN 200810108847 A CN200810108847 A CN 200810108847A CN 101593294 A CN101593294 A CN 101593294A
- Authority
- CN
- China
- Prior art keywords
- workflow
- fragment
- logic
- engine
- breakpoint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
根据本发明的技术方案,提供一种支持动态配置工作流的方法。该方法包括:a)接收用户对工作流的修改;b)确定工作流的逻辑断点,获得针对修改操作的工作流的逻辑片段;c)生成适应性模型,其中适应性模型包括对逻辑片段的引用,以及逻辑片段之间的协作关系;d)根据适应性模型监视并控制工作流引擎执行逻辑片段,以实现符合修改的虚拟工作流。本发明还提供相应的系统和计算机程序产品。根据本发明的技术方案,能够在不改变已经部署的工作流引擎的情况下对工作流的控制流进行动态的修改,而且无需停止现有工作流以对工作流模型重新进行开发和部署。
Description
技术领域
本发明涉及工作流的动态配置,特别涉及在运行时对工作流进行动态配置的系统和方法。
背景技术
工作流(Workflow)是一系列相互衔接、按照预先配置好的顺序执行的业务活动或任务,其代表业务过程的部分或整体。参与者对文件、信息或任务按照规程采取行动,并使其在参与者之间传递。
工作流管理是指通过计算对工作流进行设计、开发、管理、执行和监控,从而提供综合的集成化解决方案。工作流管理系统通常使用软件和其他信息技术来定义、创建业务过程并管理其执行。所创建的工作流被部署在一个或多个工作流引擎上运行,这些引擎解释工作流的定义和配置,与工作流的参与者进行交互,并根据需要调用其他资源或应用。
工作流管理改进和优化了业务流程,提高业务工作效率,实现更好的业务过程控制。然而,不断变化的应用环境和瞬息万变的市场需求要求工作流必须不断地进行相应的改变和调整。这要求工作流管理系统具有有效地响应于修改和调整的适应性。
最高层次的业务流程适应性是指处理流程控制流动态变化的能力。流程的变化可以是可预知的或者非可预知的。变化可以被施加为暂时修改(实例层变化)或者施加为流程定义(方案层变化)。
传统的工作流修改方法通常需要在变化发生时停止已经部署在工作流引擎上的工作流,由开发设计人员创建新的工作流模型或者修改和重配置工作流,而后将更新的工作流重新部署在引擎上执行。由于传统的业务流程管理系统通常将设计工具和运行时间服务器区分为不同的部署阶段和部署环境。因此这种需要重新设计和部署工作流模型的方案所导致的人力、物力、时间等资源的代价是显著的。特别地,当需要频繁地修改工作流或对工作流进行较大修改时,其代价可能是无法承受的。因此,需要在运行时间对工作流进行动态、灵活配置的方法。
发明内容
本发明提供一种能够在运行时对工作流灵活地进行动态配置的方法和系统,能够在不改变已经部署的工作流引擎的情况下对工作流进行动态的配置,而且无需停止现有工作流以对工作流模型重新进行开发和部署。
根据本发明的一个方面,提供一种支持动态配置工作流的方法。该方法包括:a)接收用户对工作流的修改;b)确定工作流的逻辑断点,获得针对修改操作的工作流的逻辑片段;c)生成适应性模型,其中适应性模型包括对逻辑片段的引用,以及逻辑片段之间的协作关系;d)根据适应性模型监视并控制工作流引擎执行逻辑片段,以实现符合修改的虚拟工作流。
根据本发明的另一方面,提供一种支持动态配置工作流的适应性系统。该系统包括:被配置用于接收用户对工作流的修改的装置;工作流分解器,被配置用于确定工作流逻辑断点,获得针对修改操作的工作流的逻辑片段;适应性模型生成器,被配置用于生成适应性模型,其中适应性模型包括对逻辑片段的引用,以及逻辑片段之间的协作关系;适应性引擎,被配置用于根据适应性模型监视并控制工作流引擎执行逻辑片段,以实现符合修改的虚拟工作流。
根据本发明的另一方面,提供一种计算机软件产品,包括用于在计算机设备上执行时实现根据本发明的支持动态配置工作流的方法的计算机代码。
根据本发明的技术方案,仅通过向现有工作流引擎附加部件就能够在现有的工作流引擎上基于基本工作流引擎的管理功能支持先进的适应性特征,而无需对已经部署的工作流引擎改变,或者对现有工作流模型重新进行开发和部署。这为配置工作流的动态变化提供了灵活性。而且,根据本发明所生成工作流的适应性模型可以被重复地利用,由此能够降低对同一工作流多次进行修改所耗费的成本。
附图说明
为了更好的理解本发明的特征和优点,将参考附图对本发明的原理及示例性实施方式进行描述,其中:
图1示出了根据本发明的实施方式支持对工作流进行动态配置的适应性系统框图;
图2示出了根据本发明的一种实施方式根据用户输入的待修改节点T在原始工作流中确定断点的示例性过程的流程图;
图3示出了根据本发明的一种实施方式确定前断点BT的示例性过程的流程图;
图4示出了根据本发明的一种实施方式确定后断点AT的示例性过程的流程图;
图5A-图5E示出了根据本发明的实施方式分别在进行添加、删除、移动、替换和重复时划分工作流片段的示意图;
图6A-图6E示出了根据本发明的实施方式进行添加、删除、移动、替换和重复时通过协作操作来定义工作流片段之间协作关系的示意图;
图7示出了根据本发明的实施方式支持动态配置工作流的方法的流程图;以及
图8示出了可以用于实现根据本发明实施方式的计算机系统示例。
具体实施方式
本发明提供一种方法和系统以在现有的工作流引擎上基于基本工作流引擎的管理功能支持先进的适应性特征,即支持对工作流进行动态配置。本发明将具有以下功能性:
融合将被改变的工作流以及增加的工作流变化,以作为虚拟动态工作流。该虚拟动态工作流将任务分配到多个不同的工作流实例来执行,并且协作这些工作流实例以完成该动态工作流执行。
将增加的工作流变化建模为工作流片段,这些工作流片段部分可以从原工作流模型中导出,而另一部分,例如加入的新流程片段,则需要用户按原有流程建模工具完成相应的开发。基于基本工作流引擎管理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生成针对特定修改的工作流适应性模型,其中该工作流适应性模型包括支持特定修改的对在设计时中建立的并且部署在工作流引擎128中的工作流逻辑片段的引用和上述逻辑片段间的协作关系。适应性模型生成器102可以包括:适应性模型控制器104、适应性模型编辑器106以及优选地片段预览器108。
适应性模型控制器104用于向适应性模型库110存储适应性模型或者从适应性模型库110中获得适应性模型。适应性模型控制器104和适应性模型库110的存在使得适应性模型是可以重复利用的,由此可以在现有的适应性模型上继续进行开发,从而获得新的适应性模型。
适应性模型编辑器106用于编辑适应性模型(例如以脚本,或者任何其它可以解析的描述文件的形式)。所编辑的适应性模型一方面包括支持特定修改的对在设计时中建立的并且部署在工作流引擎128中的工作流逻辑片段的引用;另一方面还包括上述逻辑片段间的协作关系。适应性模型编辑器106可以根据修改类型确定各片段断点处所要执行的适当操作,从而定义各个片段在执行时的协作关系,以便在执行修改后的工作流实例时实现用户所需的修改。适应性模型编辑器106还可以按照用户(开发者)的配置确定各个逻辑片段之间的协作关系。
根据本发明的一种实施方式,在适应性模型生成器102中提供片段预览器108,以可视化的输出所生成的逻辑片段供用户浏览。由此,便于用户检查对原始工作流划分的逻辑片段是否能给满足其修改需求。
适应性模型生成器102所生成的工作流适应性模型被存储在适应性模型库110中。存储在适应性模型库110中的适应性模型可以被重复地开发和利用。例如,适应性模型生成器102可以通过适应性模型控制器104从适应性模型库110中读取已经保存的适应性模型并对其进行修改,以重新定义新的适应性模型。
适应性引擎112根据适应性模型监视并控制工作流引擎122执行符合所接收修改的虚拟工作流。适应性引擎112可以包括适应性模型管理器114、用于管理监视工作流执行过程的观察器管理器116、用于控制工作流引擎工作流的执行的片段协作器118,以及用于在工作流片段之间转换和映射业务对象的对象映射器120。
适应性引擎112的适应性模型管理器114从适应性模型库110中加载工作流的适应性模型。观察器管理器116向工作流引擎122的工作流状态观察器124注册适应性模型中所标识的用来划分逻辑片段的断点。在现有的工作流引擎中,工作流状态观察器124用于监视当前工作流实例的执行。因此,适应性引擎112的观察器管理器116可以借助于工作流引擎122中的工作流状态观察器124监视工作流,从而获取是否已经执行到所划分的逻辑片段的断点的信息。响应于工作流已经执行到断点,适应性引擎112的片段协作器118依据适应性模型中该断点的协调操作,调用工作流引擎122的工作流实例管理API126,从而将这些协作操作转化为工作流引擎支持的操作序列。工作流引擎122在适应性引擎122的监视与配置下执行了适应性模型中所限定的虚拟动态工作流。
工作流状态观察器这类工具具有AOP(面向方向编程)特性。例如在Websphere流程服务器(Websphere process server)产品即存在类似的工具,即状态观察器(state observer)。本领域的技术人员可以理解,并不是所有工作流引擎都提供现成的观察器工具。但是,本领域的技术人员可以理解,可以为这些不具备现成观察器的工作流引擎通过面向方向编程开发类似地功能性。
如上所述,对于工作流的各种修改均可以分解为基本修改类型,这些基本修改类型例如可以包括对工作流中的节点进行添加、删除、移动、替换和重复。在执行这些修改操作的过程中,可能涉及业务对象在不同工作流片段之间的复制和设置。不同的片段所支持的业务对象类型和属性可能是不同的(例如,名称不同,对应关系不同等)。为了保证协作操作的正确性,适应性引擎112还包括对象映射器120,用于在工作流片段之间转换和映射对象,以保证工作流引擎122对协作操作的正确执行。流片段之间对象的转换和映射可以由适应性系统100中设计时的部件中的相应部件来提供。例如可以通过工作流开发器101来提供,甚至还可以通过工作流分解器105来提供。
根据本发明的适应性系统监控或调用现有工作流引擎已有的功能(例如工作流状态观察器、工作流实例管理API),已使得现有的工作流引擎能够通过按照协作关系执行各个逻辑片段的实例来执行修改后的虚拟动态工作流。因此在根据本发明的实施方案中,无需对现有工作流引擎进行任何修改。
下面将结合具体的工作流修改示例来详细阐释适应性系统100的工作原理。
如上所述,对于工作流的各种修改均可以分解为基本修改类型,这些基本修改类型例如可以包括对工作流中的节点进行添加、删除、移动、替换和重复。
在客户端的设计时,用户通过标记编辑器103输入对于工作流的修改,包括指定想要修改的节点T以及修改的类型。
响应于用户输入的节点T,工作流分解器105在原始工作流中确定适当的断点,以将原始工作流划分为逻辑片段。作为断点的工作流节点应该满足特定约束条件,这些条件至少包括:
1)工作流执行时在该节点处具有稳定的状态;
2)工作流执行时可以在该节点处暂停;
3)工作流执行在该节点处可以被observer检测到。
例如,通常可以作为断点使用的工作流节点包括但不限于调用其他应用或资源的节点、等待与用户交互的节点等。可以根据工作流所涉及的具体应用领域和用户需求来确定可以作为断点的工作流节点的类型。
工作流分解器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*不是节点T的祖先。
在步骤S435,将步骤S430中找到的所有节点T*确定为后断点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将原始工作流划分为若干片段,生成原有流程系统的流程模型。这些生成的流程模型具有原流程一样的流程接口定义和流程变量定义。例如,采用下面的示例性方法来实现对工作流的片段划分:
步骤1.如果目标节点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替换为节点B1的修改操作。所得划分后的逻辑片段如图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)设置工作流对象。假设待操作的两个工作流实例分别是W1和W2,可以定义如下协作操作:
-SC操作:挂起W1→复制工作流对象→创建W2
-EC操作:执行W1→复制工作流对象→创建W2
-TC操作:复制工作流对象→创建W2→终止W1
-SR操作:挂起W1→复制工作流对象→恢复W2→设置工作流对象
-ER操作:执行W1→复制工作流对象→设置工作流对象→恢复W2
-TR操作:复制工作流对象→终止W1→设置工作流对象→恢复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中所示:片段1之后执行到片段2的TC操作(复制工作流对象→创建片段2实例→终止片段1),在片段2的节点E之前执行到片段3的SC操作(挂起片段2实例→复制工作流对象→创建片段2实例),在片段3后执行到片段2的TR操作(复制工作流对象→终止片段3实例→设置工作流对象→恢复片段2实例)。
图6D中,示出了将工作流中的工作流节点B替换为节点B1的修改操作。逻辑片段之间的协作关系如图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相应一图所示的逻辑片段间的协作操作的工作流的适应性模型可以例如,以脚本、描述文件的形式被存储在适应性模型库110中。
在服务器端的运行时,在适应性引擎112中,适应性模型管理器114从适应性模型库110中加载工作流的适应性模型。观察器管理器116向工作流引擎122的工作流状态观察器124注册适应性模型中所标识的用来划分逻辑片段的断点。在现有的工作流引擎中,工作流状态观察器124用于监视工作流实例的执行。因此,适应性引擎112的观察器管理器116可以借助于工作流引擎122中的工作流状态观察器124监视工作流,从而获取是否已经执行到所划分的逻辑片段的断点的信息,以确定当前是否应该执行相应协作操作。响应于工作流已经执行到断点,适应性引擎112的片段协作器118依据适应性模型中该断点的协调操作,调用工作流引擎122的工作流实例管理API 126,也即执行图6A至图6E任一的协作操作中所包括的各个工作流操作(这里是工作流原子操作),来实现相应的协作操作。当在执行协作操作中需要执行复制工作流对象或者设置工作流对象时,对象映射器120用于在工作流片段之间转换和映射对象,以保证工作流引擎122对协作操作的正确执行。
这里需要说明的是,上文以示例性方式限定了协作操作,以及针对各个修改类型应用协作操作以实现各个片段之间的协作关系的方式,但是这种限定方式并不是限制性的,多种能够实现对修改后的虚拟工作流的执行的限定方式都可以作为上文所描述示例的替换方案。
图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相连的有CPU 801、RAM 802、ROM 803、硬盘控制器805、键盘控制器806,串行接口控制器807,并行接口控制器808和显示器控制器809。硬盘810与硬盘控制器805相连,键盘811与键盘控制器806相连,串行外部设备812与串行接口控制器807相连,并行外部设备813与并行接口控制器808相连,以及显示器814与显示器控制器809相连。
图8中每个部件的功能在本技术领域内都是众所周知的,并且图8所示的结构也是常规的,该计算机系统只是计算机系统的一个例子。本领域的熟练技术人员可以理解,许多其它计算机系统设计也能实现本发明的实施方式。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在所附权利要求的范围内做出各种变形或修改。
Claims (18)
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.一种支持动态配置工作流的适应性系统,包括:
被配置用于接收用户对工作流的修改的装置;
工作流分解器,被配置用于确定工作流逻辑断点,获得针对修改操作的工作流的逻辑片段;
适应性模型生成器,被配置用于生成适应性模型,其中所述适应性模型包括对所述逻辑片段的引用,以及所述逻辑片段之间的协作关系;
适应性引擎,被配置用于根据所述适应性模型监视并控制工作流引擎执行所述逻辑片段,以实现符合所述修改的虚拟工作流。
11.根据权利要求10所述的适应性系统,还包括:
被配置为将所述逻辑片段部署到所述工作流引擎的装置。
12.根据权利要求10所述的适应性系统,还包括:
适应性模型库,被配置用于向其中存储所述适应性模型,并且从其中加载所述适应性模型。
13.根据权利要求10所述的适应性系统,其中所述工作流分解器被配置用于:
根据所述修改所针对的节点T在所述流程中确定断点;
基于所述修改的类型和所确定的断点以一定策略划分所述逻辑片段。
14.根据权利要求10所述的适应性系统,其中所述适应性模型生成器被配置用于:
以所述工作流引擎所支持的工作流操作定义所述逻辑片段之间的协作关系。
15.根据权利要求10所述的适应性系统,其中所述适应性引擎包括:
观察器管理器,被配置用于监视所述工作流引擎对所述逻辑片段的执行;
片段协作器,被配置用于响应于所述逻辑片段已经执行到断点,依据所述适应性模型的所述协调关系,调用所述工作流引擎的工作流实例管理应用程序接口。
16.根据权利要求15所述的适应性系统,其中所述适应性引擎还包括:
对象映射器,被配置用于在所述逻辑片段之间转换和映射所述逻辑片段中包含的对象。
17.根据权利要求12所述的适应性系统,其中所述修改的类型包括:添加、删除、移动、替换和重复。
18.根据权利要求12所述的适应性系统,其中所述策略包括以下各项中的至少一项:
逻辑片段尺寸最小;
逻辑片段数目最少。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101088476A CN101593294A (zh) | 2008-05-29 | 2008-05-29 | 动态配置工作流的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101088476A CN101593294A (zh) | 2008-05-29 | 2008-05-29 | 动态配置工作流的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101593294A true CN101593294A (zh) | 2009-12-02 |
Family
ID=41407938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101088476A Pending CN101593294A (zh) | 2008-05-29 | 2008-05-29 | 动态配置工作流的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101593294A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495801A (zh) * | 2011-12-07 | 2012-06-13 | 方正国际软件有限公司 | 一种测试功能链生成方法与装置 |
CN102542413A (zh) * | 2011-12-27 | 2012-07-04 | 北京致远协创软件有限公司 | 一种工作流系统及自由和固定工作流搭建和运行方法 |
CN103197927A (zh) * | 2013-03-06 | 2013-07-10 | 华南理工大学 | 一种柔性工作流的实现方法及其系统 |
CN104408619A (zh) * | 2014-11-14 | 2015-03-11 | 中国建设银行股份有限公司 | Ic卡支付终端交易流程配置、实现方法及装置和业务系统 |
CN106529761A (zh) * | 2016-09-26 | 2017-03-22 | 山东浪潮商用系统有限公司 | 一种工作流引擎及其实现方法 |
CN107016083A (zh) * | 2017-03-31 | 2017-08-04 | 清华大学 | 一种支持处理单元在线切换的流数据处理方法 |
CN109960186A (zh) * | 2017-12-25 | 2019-07-02 | 北京创昱科技有限公司 | 控制流程的处理方法、装置、电子设备和存储介质 |
CN110689232A (zh) * | 2019-09-03 | 2020-01-14 | 深圳壹账通智能科技有限公司 | 工作流配置的优化处理方法、装置和计算机设备 |
CN111353752A (zh) * | 2019-11-05 | 2020-06-30 | 泰康保险集团股份有限公司 | 流程处理方法及装置、电子设备、存储介质 |
CN111861100A (zh) * | 2020-06-03 | 2020-10-30 | 广东电网有限责任公司 | 一种基于流程评分的工单处理方法及装置 |
CN112785263A (zh) * | 2021-01-22 | 2021-05-11 | 山西青峰软件股份有限公司 | 一种工作流引擎动态生成流程模型的方法及系统 |
WO2023142061A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 工作流生成方法、装置、系统、介质及程序产品 |
CN117785391A (zh) * | 2024-02-28 | 2024-03-29 | 成都索贝视频云计算有限公司 | 一种服务操作逻辑结构化装置 |
-
2008
- 2008-05-29 CN CNA2008101088476A patent/CN101593294A/zh active Pending
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495801A (zh) * | 2011-12-07 | 2012-06-13 | 方正国际软件有限公司 | 一种测试功能链生成方法与装置 |
CN102495801B (zh) * | 2011-12-07 | 2015-03-18 | 北大医疗信息技术有限公司 | 一种测试功能链生成方法与装置 |
CN102542413A (zh) * | 2011-12-27 | 2012-07-04 | 北京致远协创软件有限公司 | 一种工作流系统及自由和固定工作流搭建和运行方法 |
CN102542413B (zh) * | 2011-12-27 | 2016-01-27 | 北京致远协创软件有限公司 | 一种自由和固定工作流搭建方法 |
CN103197927A (zh) * | 2013-03-06 | 2013-07-10 | 华南理工大学 | 一种柔性工作流的实现方法及其系统 |
CN103197927B (zh) * | 2013-03-06 | 2016-07-27 | 华南理工大学 | 一种柔性工作流的实现方法及其系统 |
CN104408619A (zh) * | 2014-11-14 | 2015-03-11 | 中国建设银行股份有限公司 | Ic卡支付终端交易流程配置、实现方法及装置和业务系统 |
CN106529761A (zh) * | 2016-09-26 | 2017-03-22 | 山东浪潮商用系统有限公司 | 一种工作流引擎及其实现方法 |
CN107016083A (zh) * | 2017-03-31 | 2017-08-04 | 清华大学 | 一种支持处理单元在线切换的流数据处理方法 |
CN109960186A (zh) * | 2017-12-25 | 2019-07-02 | 北京创昱科技有限公司 | 控制流程的处理方法、装置、电子设备和存储介质 |
CN110689232A (zh) * | 2019-09-03 | 2020-01-14 | 深圳壹账通智能科技有限公司 | 工作流配置的优化处理方法、装置和计算机设备 |
CN111353752A (zh) * | 2019-11-05 | 2020-06-30 | 泰康保险集团股份有限公司 | 流程处理方法及装置、电子设备、存储介质 |
CN111353752B (zh) * | 2019-11-05 | 2024-04-19 | 泰康保险集团股份有限公司 | 流程处理方法及装置、电子设备、存储介质 |
CN111861100A (zh) * | 2020-06-03 | 2020-10-30 | 广东电网有限责任公司 | 一种基于流程评分的工单处理方法及装置 |
CN111861100B (zh) * | 2020-06-03 | 2024-07-12 | 广东电网有限责任公司 | 一种基于流程评分的工单处理方法及装置 |
CN112785263A (zh) * | 2021-01-22 | 2021-05-11 | 山西青峰软件股份有限公司 | 一种工作流引擎动态生成流程模型的方法及系统 |
WO2023142061A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 工作流生成方法、装置、系统、介质及程序产品 |
CN117785391A (zh) * | 2024-02-28 | 2024-03-29 | 成都索贝视频云计算有限公司 | 一种服务操作逻辑结构化装置 |
CN117785391B (zh) * | 2024-02-28 | 2024-05-10 | 成都索贝视频云计算有限公司 | 一种服务操作逻辑结构化装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101593294A (zh) | 动态配置工作流的方法和系统 | |
CN101601012B (zh) | 具有场景支持的面向生成器图的编程框架 | |
Kim et al. | Scheduling in a production environment with multiple process plans per job | |
US5745897A (en) | Method and system for compiling management information base specifications | |
CN101589366B (zh) | 面向生成器图的编程框架中的并行化和植入 | |
US7743148B2 (en) | Server migration planning system and server migration planning method | |
CN102508669A (zh) | 一种程序代码自动生成方法 | |
JP2002189841A (ja) | ワークフロー管理方法およびシステム並びにその処理プログラムを格納した記録媒体 | |
CN109146081B (zh) | 一种用于机器学习平台中创建模型项目的方法及装置 | |
CN103984818A (zh) | 基于Flex技术的AUV设计流程可视化建模方法 | |
CN101617292A (zh) | 面向生成器图形的编程和执行 | |
CN101819529A (zh) | 用于实现工作流任务界面可视化开发的系统和方法 | |
CN110764752B (zh) | 实现Restful服务图形化服务编排的系统及其方法 | |
CN104965761A (zh) | 一种基于gpu/cpu混合架构的流程序多粒度划分与调度方法 | |
CN104050042A (zh) | Etl作业的资源分配方法及装置 | |
CN101887410A (zh) | 文件转换装置、文件转换方法以及文件转换程序 | |
CN105631581A (zh) | 一种用于离散制造业的结构化工艺设计方法 | |
KR102397494B1 (ko) | 로우(Low) 코드 웹 개발 및 운영 시스템 및 이를 이용한 서비스 방법 | |
CN103354990B (zh) | 处理云平台中的虚拟机的系统和方法 | |
CN117539450B (zh) | 一种基于wps加载项的代码生成方法 | |
CN108509284A (zh) | 一种应用于函数式编程的树状模型任务管理系统 | |
CN113741881A (zh) | 一种rpa可视化流程设计方法 | |
CN113743066A (zh) | 一种基于rpa机器人的电商平台商品备注方法 | |
CN117436803A (zh) | 一种任务管理系统、方法、设备及介质 | |
CN102779036B (zh) | 用于自动化技术的软件工具 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091202 |