一、Activiti介绍
1.工作流引擎是用来驱动业务,按照流程途次逐步流转的核心框架
Activiti是Java领域实现BPMN2.0规范的优秀框架
为什么学习工作流引擎?
常见的业务场景有:网上购物、用手机叫外卖、预订机票
业务场景+抽象建模->工作流
线下搬到线上就是工作流
2.Activiti6.0流程引擎配置
由ProcessEngineConfiguration读取activiti.cfg.xml文件的配置信息,由配置对象构建出流程引擎实体,由流程引擎对象可以获取到流程引擎的核心API,包括RepositoryService,RuntimeService,HistoryService等等。
3.Activiti6.0核心API
ProcessEngine ->
- RepositoryService(负责对流程定义文件的管理,如xml或流程图片。部署流程对象涉及到:部署对象,资源对象,两者为一对多关系)
- RuntimeService (对流程进行控制的API,启动流程实例,对流程实例暂停挂起,对上下文数据的设置和获取)
- TaskService (管理运行的UserTask即人工任务,可以对人工任务进行增删改查,也可以对用户任务设定指定的操作权限)
- IdentifyService(对用户和用户组的管理,并维护用户组的关系)
- FormService(解析流程定义中的设计表单)
- HistoryService(对运行结束的流程实例的查询功能)
- ManagementService(流程引擎基础的管理)
- DynamicBpmService(侵入性较高,能对动态的流程模型做修改,不推荐使用)
4.Activiti6.0数据模型设计
5.BPMN2.0规范
BPMN2.0(Business Process Model and Notation)是一套业务流程建模与符号建模标准,使用精准的执行语义来描述元素的操作,以XML为载体,以符号可视化业务。
BPMN2.0的元素
6.工作流平台搭建的过程
使用Activiti的优缺点
二、工作流入门
1.常见的网上购物流程
购物工作流程模型化,以及泳池、泳道概念
整个购物流程为一个泳池,对于三类不同的参与者分别画在不同的泳道里面。ServiceTask为不需要人工参与,需要系统自动化完成的一些操作(如库存校验、检查用户的id和手机号是否存在一定的风险)
2.工作流是什么?->为什么学习工作流?->如何学习工作流?
1
)是什么
工作流是对工作流程及其各操作步骤之间业务规则的
抽象、概括描述。
工作流建模即将工作流程中的工作如何前后
组织在一起的逻辑和规则,在计算机中以恰当的
模型表达并对其实施计算
工作流要解决的问题是为实现某个业务目标,利用
计算机在多个参与者之间按某种预定规则
自动传递文档、信息或者任务
工作流相关的概念:
工作流程管理系统(Workflow Management System, WfMS)是处理工作流的电脑软件系统,主要功能是通过计算机技术的支持去定义、执行和管理工作流程,协调工作流执行过程中工作之间以及群体成员之间的信息交互。 工作流是要依靠工作流管理系统来实现。
计算机支持的协同工作CSCW:(Computer Supported Cooperative Work)是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。工作流属于计算机支持的协同工作(CSCW)的一部分。
工作流管理联盟WFMC:(WorkFlow Management Coalition)是工作流技术标准化的工业组织,成立于1993年8月。工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。
activiti
工作流框架
工作流
(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则
传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
工作流管理系统是一个软件系统,它通过执行经过计算的流程定义去支持一批专门设定的业务流程。工作流管理系统被用来
定义、管理和执行工作流程。
工作流引擎就是用来开发工作流转的框架,主要功能有流程节点管理、流向管理、流程样例管理等。
常见的工作流框架有:
-
activiti5.13
-
JBPM4.4
-
OSWorkflow
Activiti5
是由
Alfresco
软件在
2010
年
5
月
17
日发布的
业务流程管理(
BPM
)框架
,它是覆盖了
业务流程管理、工作流、服务协作
等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。
Activiti
是领先的轻量级,以
Java
为中心的开源
BPMN
引擎,支持实际的流程自动化需求。
2
)为什么使用工作流
产品需求遗漏,开发上线后需求经常改
业务代码复杂
使用工作流的好处
-
可以快速响应、灵活调整线上流程
-
业务和开发基于流程模型沟通,基于业务建模快速部署
-
流程可视化,方便查看流程的运行进展
3)如何学习
技术选型(Activiti vs Jbpm)
Activiti6.0快速体验
初步认识BPMN2.0元素
Java语言的开源工作流平台
工作流引擎围绕BPMN2.0规范实现比较好的是jBPM与Activiti,Flowable是近两年从Activiti5拉出的一个分支,ccflow(驰骋工作流)是国产的一个相对独出的工作流引擎,Snaker曾经也有一些用户,现在已经无人维护了
谷歌趋势
近三年Activiti的搜索热度一直高于jBPM,而Flowable的趋势正呈现上升趋势,总体来说Activiti的热度还是较高的。
工作流技术选型