技术领域
[0001] 本发明涉及计算机领域,尤其是涉及一种支持在线自演化的动态工作流引擎。
相关背景技术
[0002] 工作流概念起源于生产组织和办公自动化领域,已经在办公自动化中以及工业制造业中得到了广泛应用, 然而,随着企业经营业务的展开,物理位置的逐渐分散、部门间协作的日益频繁,同时决策过程的分散性也更加明显,对日常业务活动变化的需求也不断提高。因此,企业迫切需要一种具有分布性、异构性、自治性的企业服务管理系统出现。在这种大规模的分布式应用环境下高效运转相关的任务,对执行的任务进行密切监控,并具有一定的自适应性已成为一种发展趋势。在这种技术需求背景下,基于 Internet的应用已成为目前工作流技术的发展趋势,而基于Internet的工作流管理系统为企业间的相互合作提供了有力的支持。工作流管理系统的核心是工作流引擎,它的效率和可靠性直接决定了整个系统的运行效率和性能。工作流引擎着眼于流程的控制执行这一核心功能, 它驱动业务流程中各个具有一定关系的业务活动在一定程度上自动运行,从而高效、灵活地达到企业的业务需求。
[0003] 目前基于Internet的工作流引擎的设计主要是通过将各企业共享的资源和服务进行封装,将其作为一个方便集成的组件,利用工作流的管理方法以一种可重复、能预见、固定的流程进行调用。另外,目前大部分工作流管理系统只能在定义时对业务流程模型进行修改,一旦实例运行后业务流程模型就不能再进行修改,这极大地限制了工作流系统的应用范围。然而,当前跨部门、跨企业的工作流管理是在一种高度动态的环境下进行,企业某些局部的业务或服务可能经常需要变动和更新。当企业的业务流程变更后,往往需要将变更后的流程模型立即迁移到正在运行的工作流实例中,以尽早地按照新的业务流程继续执行。传统的工作流引擎方案往往难以满足这些实际应用环境动态、多样性的复杂处理需求,给应用者带来了极大的不便。
具体实施方式
[0017] 下面将对本发明的实施方式进行详细说明。
[0018] 一种在线自演化的动态工作流引擎,如图1所示为该工作流引擎的体系结构图。本方案是通过如下技术措施来实现的,它包括:
工作流定义和配置代理:主要由以下部分组成:(1)本体库,以类和实例的方式描述业务流程中的角色,任务以及相关的数据交换;(2)XML定义文档,用于定义工作流管理系统中的工作流;(3)工作流配置器,用来配置工作流管理系统中的工作流程。在工作流定义和配置代理中,首先通过统一适配器代理接收用户的业务需求,然后使用本体库中的本体创建一个XML定义文档,该文档中包含了业务流程的语义描述,并将本体信息与相关业务流程进行了关联。接下来进行业务流程的工作流配置,工作流配置器从XML定义文档中获取相关信息进行配置。最后,工作流定义和配置代理以工作流文档的方式输出配置结果,该结果作为工作流执行服务代理的输入并且存入工作流库中。
[0019] 工作流执行服务代理:提供了工作流管理系统中业务流程执行的运行时环境。工作流执行服务代理负责对业务流程进行实例化以及业务流程的正确执行,维护控制数据和工作流相关数据,并通过这些数据来判断活动步骤的进入和退出条件。与此同时,它还负责监督相关活动的控制和审计。
[0020] 在线自演化代理:是本工作流引擎的核心部分,也是进行工作流动态演化管理的关键组成部分,包括:监控器、管理器和自演化调整器。该代理用来监控、调整、演化和自演化工作流管理系统中业务流程的执行等。在线自演化代理通过监控器监控系统业务流程的执行,通过管理器接收用户对业务流程所做的各种修改,通过自演化调整器修改、演化工作流的业务执行流程,并将修改信息传送到工作流执行服务代理。该代理能根据工作流执行服务代理中的信息创建修改后的流程定义,并负责将修改后的业务流程规范传给工作流模型,决定是否处理激活的工作流实例。同时,该代理还负责制定自演化策略,定义被影响的实例,管理修改日志等。在线自演化代理中最重要的组成部分是自演化调整器,它根据环境需要或用户指令,协调进行动态修改工作流的业务执行流程、流程实例,按照自演化策略对工作流实例进行演化,保证演化后的流程实例在新的流程定义下可以正确运行。
[0021] 自演化策略库:存放系统工作流自演化的相关策略,包括用户自定义演化策略和系统自演化策略。用户自定义演化策略是指用户根据系统实际需要,为某些特定的工作流或特定情形下的工作流定义的一些修改策略。这些策略可在系统初始化或系统运行时由用户输入。系统自演化策略则是工作流引擎的所有工作流自演化都必须遵循的策略,这些策略必须在系统初始化时录入,在系统运行过程中不能更改。本工作流引擎制定了以下一些系统工作流自演化策略:(1) 冻结策略:当某工作流处于数据处理状态时,禁止对该工作流进行演化;(2) 共存策略:当系统中某工作流既有旧的业务流程(处理老业务)存在,又有新的业务流程(处理新业务)存在,为了保持工作流的时效性等,从创建新的业务流程时刻开始,系统将只能对新业务流程进行下一步演化,而不再对旧业务流程进行演化;(3) 串行策略:对功能上有前后数据依赖关系的两个工作流,只能串行执行演化;(4) 并行策略:对于没有因果关系的两个工作流,可以并行执行演化;等等
统一适配器代理:负责与各种外部资源进行交互,这些资源包括业务流程解析引擎、工作流库、工作流用户、其他外部应用等等。在我们的工作流引擎设计中,我们并不直接调用任何资源。而是使用一个统一适配器代理与资源进行交互。本引擎采用OMG对工作流程管理系统提供的一组标准化接口,称为工作流管理工具,实现该适配器代理。该适配器代理通过指定一组CORBA接口,提供工作流管理系统运行环境的入口。任何外部的应用服务只要实现了这些接口就可以在工作流引擎执行过程中被调用。它允许工作流引擎与用户、数据库、外部系统和第三方数据格式如过程定义语言进行交互。在这种方式下,可以调用任何数目或类型的资源,而无需对工作流引擎执行过程的方式作任何的改变。
[0022] 异常处理代理:负责处理工作流管理系统中所有的异常,包括异常检测和修复。本异常处理代理预先定义了一组不同的异常情况的处理过程,其中包括五个不同级别的异常,分别是:(1)工作流级别;(2)任务级别;(3)代理分配级别;(4)数据级别;(5)用户级别。异常处理代理是以精灵程序(daemon)的形式运行,也就是说,它会不断地检测和监控系统的工作流状态和系统环境。每当有异常产生,异常处理代理将挂起异常,分析异常,找出处理方法,并启动恢复过程。在该异常处理程序代理,我们还定义了如下的恢复策略:(1)取消任务;(2)暂停任务;(3)回滚任务;(4)向合适的执行者或用户提示异常信息,并将控制传递他们。
[0023] 在线自演化实施过程:(1) 系统或用户根据需要,产生自演化需求;(2) 在线自演化代理接收自演化需求;(3) 在线自演化代理根据自演化需求,从自演化策略库中选择相应的自演化策略;(4) 根据自演化策略,在线自演化代理修改相应的工作流业务流程;(5) 在线自演化代理将修改后的业务流程信息反馈给工作流执行服务代理;(6) 工作流执行服务代理对业务流程进行实例化,并确保业务流程的正确执行。在线自演化实施流程如图2所示。