在工作流系统中,系统调度是核心,调度算法的生效程度和成熟性直接决定了工作流系统的可用性。本文章描述工作流如何推进和回退,并且描述在分之、合并、跳转等特殊情况下的流转规则处理。
基本概念
1.1 流程实例
- 流程实例是根据流程定义所产生的,一个流程启动后自动产生一个流程实例;
- 系统完成创建流程实例后,需要初始化流程实例(如:给流程全局变量赋值);
- 流程实例创建并初始化完成后,流程迁移到流程启动节点上;
1.2 启动节点(Start-State)
- 启动节点标识着一个流程的开始,一个流程实例包括一个或多个启动节点,本系统中只支持一个启动节点;
- 启动节点没有前序节点,但拥有一个或多个后序节点;
- 作为一个流程的开始,启动节点没有特定的凼义,只需要完成流程启动初始化操作(如:回调执行用户指定的流程创建过程的代码、回调执行用户指定的流程启动时的代码等等);
- 当流程到达到启动节点以后,系统根据定义的规则(条件)寻找下一个活动节点(ESB节点),找到以后,自动迁移到活动节点上;
1.3 终止节点(End-State)
- 终止节点标识着一个流程的结束,一个流程实例包括一个或多个终止节点,本系统可以支持多个终止节点;
- 终止节点没有后序节点,但拥有一个或多个前序节;
- 作为一个流程的结束,终止节点没有特定的凼义,只需要完成流程结束后的操作(如:回调执行用户指定的流程完成的代码、回调执行用户指定的流程归档的代码等等);
- 流程终止后,系统自动归档流程实例并将其销毁(即流程处于非活动状态);
1.4 活动节点(Activety Node)
活动节点是流程中最主要的节点,也是最复杂的节点。系统执行到该节点时将根据规则定义产生任务项(Task Item),任务项是用户与工作流进行交换唯一途径。