Activiti20180624
1、工作流介绍
工作流(WorkFlow),是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型进行表示并对其实施计算。
工作流要解决的问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按照某种预定规则自动传递文档,信息或者任务。
2、BPMN2.0概述
BPMN2.0规范于2011年1月正式发布,并且全称改为Business Process Model And Notation(业务流程模型和符号)。BPMN2.0规范定义了业务流程的符号以及模型,并且为流程定义设定了转化格式,目的是为了让流程定义实现可移至性,那么用户可以在不同的供应商环境中定义流程,并且这些流程可以移至到其他遵守BPMN2.0规范的供应商环境中。
3、BPMN2.0元素
使用BPMN2.0的目的是建立简单并且易懂的业务流程模型,但是又要同时处理高度复杂的业务流程,因此要解决两个矛盾的要求,需要在规范中定义标准的图形和符号。BPMN定义了五个基础的元素类别:
- 流对象(Flow Objects):在一个业务流程中,流对象用于定义行为的图像元素,主要有事件(Events)、活动(Activities)、和网关(Gateways)三种流对象。
- 数据(Data):主要有数据对象(Data Objects)、数据输入(Data Inputs)、数据输出(Data Outputs)、和数据存储(Data Stores)四种元素。
- 连接对象(Connecting Objects):用于连接对象,主要有四种连接对象的方式,包括顺序流(Sequence Flows)、消息流(Message Flows)、关联(Associations)、和数据关联(Data Association)。
- 泳道(Swimlanes):泳道提供了两种途径用于组织基础的模型元素,分别是池(Pools)和道(Lanes)。
- 制品(Artifacts):制品用于为流程提供附加信息,当前制品包括组(Group)和注释(Text Annotation)。
以上元素分类以及表中所列元素,均是BPMN规范中元素组成部分,每个对象都有自己对应图形,表中给出了各个元素图形及其描述。
| 元素 | 图形 | 描述 |
| 事件(Events) |
|
用于描述流程中发生的事件,事件会对流程产生影响,事件会被触发或产生结果。 |
| 活动(Activities) | ![]() |
活动是工作流中一个通用的术语,活动包括任务(Task)和子流程(Sub-Process)。 |
| 网关(Gateways) | ![]() |
网关主要控制流程中顺序流的走向,使用网关可以控制流程进行分支与合并。 |
| 顺序流(Sequence Flow) | ![]() |
顺序流显示流程会执行哪个活动。 |
| 消息流(Message Flow) | ![]() |
消息流主要用于显示消息在流程参与者之间的传递情况。 |
| 关联(Association) | ![]() |
主要用于连接元素及其制品(流程信息)。 |
| 池(Pool) | ![]() |
存放道的容器。 |
| 道(Lane) | ![]() |
用于区分流程参与人的职能范围。 |
| 数据对象(Data Object) | ![]() |
数据对象主要表示活动需要的或者产生的信息。 |
| 消息(Message) | ![]() |
消息主要用于描述流程参与者之间的沟通内容。 |
| 组(Group) | ![]() |
主要用于存放一些流程信息,包括流程文档、流程分析信息等。 |
| 注释(Text Annotation) | ![]() |
主要为阅读流程图的人提供附加文字信息。 |
4、Activiti介绍
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Beayens是JBoss JBPM的项目框架师,他特色是提供了eclipse插件,开发人员可以通过插件直接绘出业务流程图。
5、工作流引擎
ProcessEngine对象,这是Activiti的工作核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
6、工作流的基本使用
- 定义工作流
使用eclipse插件完成,****.bpmn(给计算机进行流程的执行和信息的传递的使用),*****.png(给用户看)。
- 执行和管理工作流
调用Activiti的API(Activiti用来存放数据流一共使用了23张表,底层操作默认操作使用mybatis。一定需要业务去关联流程,才能开发工作流系统。)
Activiti20180624的更多相关文章
随机推荐
- super关键字主要有以下两种用途
super关键字主要有以下两种用途. 1.调用父类的构造方法 子类可以调用由父类声明的构造方法.但是必须在子类的构造方法中使用super关键字来调用.其具体的语法格式如下: super([参数列表]) ...
- Code Page Identifiers - Copy from Microsoft
Code Page Identifiers 78 out of 94 rated this helpful - Rate this topic The following table define ...
- Entity Framework Code-First(9.2):DataAnnotations - TimeStamp Attribute
DataAnnotations - TimeStamp Attribute: TimeStamp attribute can be applied to only one byte array pro ...
- java笔记--关于线程同步(5种同步方式)
转自:http://www.2cto.com/kf/201408/324061.html 为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改 ...
- 39、生鲜电商平台-redis缓存在商品中的设计与架构
说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构. 1. 各种计数,商品维度计数和用户维度计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc ...
- Equals 和 == 的区别--转
在比较Equals 和 ==的区别前.我们先来了解下相关的知识 C#数据类型 1.值类型 值类型有: 值类型包括:简单类型.结构类型.枚举类型. byte(1).sbyte(1).short(2).u ...
- 用js正则判断输入的两位字符,第一位是数字16进制的,第二位是I、O、Q、U除外的字母(A到Z)
项目中遇到客户的需求变化,要验证某个数据的正确性,判断输入的两位字符,第一位是数字16进制的,第二位是I.O.Q.U除外的字母(A到Z). 本来对js不熟练,网上参考了一下js正则验证的规则,使用正则 ...
- Android APK反编译技巧全讲解
导言:在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取. 首先我们 ...
- [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题
[Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题 2017年07月05日 15:57:44 阅读数:1494 http://www.cpp ...
- 从零开始安装 Ambari (1) -- 安装前的准备工作
Ambari 没有简单的 .tar.gz 结尾的包(反正我找到).apache 官网提供的安装方法,是要下载源码,自己编译成安装包安装.说明文档还不够细.编译的时候是用 maven,照理来说不应该会失 ...











