之前没有用到过工作流,这次由于需要,用到了Activiti工作流引擎,首先要做的就是先来了解一下什么是工作流引擎,它能够完成什么的任务,我们在什么情况下选用工作流引擎来处理问题。
1、Activiti由来?
Activiti的创始人也就是JBPM的创始人,从JBoss离职后开发了一个新的BPM引擎-----Activiti。由于是JBPM的创始人发明的Activiti,故其中有很多JBPM的身影,Activiti的遵守的设计原则是一致的:强调流程服务的可嵌入性和可扩展性。
2、什么是Activiti?
Activiti的核心是BPMN2.0的流程引擎,它实现了BPMN2.0的规范,可以发布设计好的流程定义,并通过API进行流程调度。它是基于Java的超快速、超稳定的流程引擎,强调服务的可嵌入性和可扩展性,同时更加强调面向业务。
BPMN是全球BPM厂商广泛接受的BPM标准,全称为Business Process Model and Natation。
3、核心组件
3.1 ProcessEngine:流程引擎抽象,通过它可以获取我们需要的一切服务
3.2 RepositoryService:Activiti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署
文件和支持数据,这些文件都存储在Activiti内建的Repository中。RepositoryService提供对
repository的存取服务。
3.3 RuntimeService:在Activiti中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象
实例。RuntimeService提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供
了对流程部署,流程定义和流程实例的存取服务
3.4 TaskService:在Activiti中业务流程定义中的每一个执行节点被称为一个Task,对流程中的数据存取,
状态变更等操作均需要在Task中完成。TaskService提供了对用户Task 和Form相关的操作。它提供了
运行时任务查询、领取、完成、删除以及变量设置等功能
3.5 IdentityService: Activiti内置的了用户以及组管理的功能,必须使用这些用户和组的信息才能或得到
相应的Task。
3.6 ManagementService: 提供了对Activiti流程引擎管理和维护的工鞥,主要用于Activiti系统的日常维护
3.7 HistoryService:用于获取正在娙或已经完成的流程的信息,与RuntimeService中获取的流程信息不同,
历史信息包含已经持久化存储的永久信息。
3.8 FormService:Activiti中的流程和状态Task均可以关联业务相关的数据。通过使用Form Service可以存取
启动和完成任务所需的表单数据并且根须需要来渲染表单。
4、怎么用?
使用场景:多人协作完成的业务流程场景。
比如:请假
开始--请假-->审批(项目经理)--->审批(总经理)--->结束
5、总结
对于Activiti还是刚开始研究,还需要接下来继续做例子来实现,究竟跟其他的流程引擎有什么差别,或者说这是怎样的一个演变过程,只有比较过之后才能做出自己选择。