1. 首页
  2. >
  3. 编程技术
  4. >
  5. Java

认识工作流程引擎

相关概念

  • BPM:Business Process Modeling,业务管理流程,是对实现生活工作中的流程问题进行抽象建模来推导解决方案。
  • BPMN:Business Process Model and Notation,一种流程建模描述语言,是业务流程建模的一种标准注解
  • BPMN2.0:专业组织和团体发布的一套标准或规范,定义业务流程的符号以及模型,确保流程的定义实现可移植性
  • WfMC:Workflow Management Coalition,工作流管理组织

主流的框架

主流的都是用java开发的JBPM,Activiti等,其他流程引擎中有大部分都是基于这两者开发的。

认识工作流程引擎

工作流定义

  • 使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。
  • 简单地说是多个人在一起完成某件事的步骤,把步骤变成计算机的能理解的形式就是工作流。
  • 工作流总是以任务(Task)的形式驱动人处理业务或者驱动业务系统自动完成作业。有了工作流引擎之后,我们不必一直等待其他人的工作进度,直白地说,我们只需要关心系统首页的待办任务数即可,由系统提醒当前有多少待办任务需要处理。

工作流系统构成

  • 流程引擎:工作流处理核心,负责处理信息或任务传递路由,保证流程按照既定的规则顺序执行
  • 规则引擎:管理流程业务规则
  • 组织模型:为流程的运转提供操作者
  • 表单组件:为流程中的任务提供自动化的编辑界面
  • 流程设计组件:提供可视化定义流程的操作界面
  • 任务组件:为流程参与者提供任务列表数据

流程引擎运行机制

认识工作流程引擎

  • 设计阶段:建模者按照业务需求在流程设计器中设计出流程定义数据,并将流程订单数据保存到数据库
  • 实例化阶段:通过已经定义的流程数据和所需订单业务数据,组织架构数据,任务表单数据,系统字典数据,流程引擎做好状态初始化。
  • 执行阶段:执行者执行流程时,将传入控制数据,流程引擎按照已设定好的规则进行执行。
  • 应用阶段:流程引擎可以为任务处理者提供待办任务数据,为监控中提供流程监控数据,还提供扩展应用,如信息推送,特殊流程处理等。

术语约定

认识工作流程引擎

  • 设计流程元素:一个完整的流程是由节点加线组成的;流程 (flow),节点(node),线(line)。
  • 流程实例:一个流程实例化后会产生一个对应的进程数据,每执行一个节点就会产生一个线程数据;进程(process),线程(thread)。
  • 流程实例进程状态:进行中(in),完成(end),终止(close),冻结(suspend)。
  • 流程实例线程状态:处理中(wait),通过(pass),自动执行(auto),拒绝(refuse),终止(close)。
  • 节点类型
  • 任务(task)节点:用户任务(user task),系统任务(system task)。
  • 网关(gateway)节点:
  • 条件网关:排他网关,异或网关(XOR geteway),只能选择其中一个分支执行。
  • 并行网关:(parallel gateway),选择大于等于一个分支执行
  • 分支:所有的出口顺序都并行执行。子类型有并行分支网关(parallel split gateway )。
  • 合并:所有到达并行网关的并行执行都会在网关处等待,直到每一条入口顺序流都到达了合并网关,然后流程经过该合并网关继续。还有一种特殊合并,是只需其中一条支线到达合并网关,流程=就会接着往后执行。子类型有并行且合并网关(parallel and join gateway ),并行或合并网关(parallel orjoin gateway )。
  • 事件(event)节点:开始节点(start event),结束节点(end event)。