1. 工作流概念
工作流(Workflow):就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
工作流管理系统(Workflow Management System, WfMS):是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流规则进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。
工作流管理联盟(WfMC,Workflow Management Coalition)给出的关于工作流管理系统的定义是:工作流管理系统是一个软件系统,它通过执行经过计算的流程定义去支持一批专门设定的业务流程。工作流管理系统被用来定义、管理、和执行工作流程。
工作流管理系统的目标:管理工作的流程以确保工作在正确的时间被期望的人员所执行——在自动化进行的业务过程中插入人工的执行和干预。
2. Activiti简介
Activiti工作流框架,是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
2.1 工作流引擎
ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
2.2 BPMN
业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)。
3. eclipse的activiti插件安装
推荐在线安装:
help——》Install New Software...——》
Name: Activiti BPMN 2.0 designer
4. BPMN图元介绍
安装好插件之后,新建项目的时候可以直接新建Activiti 项目
新建完成之后,项目初始化如下
项目中要设计的BPMN流程图通常就是在diagrams文件夹下创建,新建生成bpmn后缀文件,我们可以通过右边的画板直接进行流程图的绘制。
BPMN基本元素包括了这些元素,如下图所示:
- 泳道(Swimlanes):池和道;
- 流对象(Flow Objects):包括事件、活动、网关,是BPMN的核心元素;
- 两种事件:普通开始事件(NoneStart Event)和普通结束事件(None End Event);
- 一种活动:任务(Task),其中包括了子流程任务(Sub-ProcessTask);
- 两种网关:排他网关(Exclusive)和并发网关(Parallel);
- 三种连接对象(Connecting Objects):序列流(Sequence Flow)、消息流(Message Flow)和关联(Association);
- 人工信息(Artifacts):包括数据对象、组、注释(Annotation)。
4.1 泳道(Swimlanes)
使用泳道来区分不同部门或者不同参与者的功能和职责。泳道包含两种类别:池和道。使用池来表示流程的参与者,应用在公开流程和协作模型里。池与池之间的交互只能使用消息流表示。
我们使用道对池内的活动进行分组,我们可以根据活动所属的部门或办理所需的职责(角色)来对活动进行分组。
如果流程是私有流程并且活动没有分组的需要,那么通常我们会省略池。
4.2 流对象(Flow Objects)
流对象是定义业务流程的主要图形元素。它进一步细分为三个大的类别,分别是事件、活动和网关。具体到事件、活动和网关里,流对象有很多的类别,BPMN元素的复杂性体现在流对象的众多类别上。
- 事件:发生在流程执行过程中的事情。
- 活动:在流程执行过程中执行的工作。
- 网关:控制流程的分支和聚合。
4.3 连接对象(Connecting Objects)
连接对象用来把各个流对象或流对象与其他信息连接起来,它分为三种类别:顺序流、消息流、关联。
- 顺序流:表示流对象的前后执行顺序。
- 消息流:表示公开流程或协作模型里参与者之间的消息、交互。
- 关联:为流程中的元素关联信息或数据。
4.4 人工信息(Artifacts)
包括数据对象、组、注释(Annotation)。图片来源