工作流引擎技术调研总结报告.docx
- 文档编号:2310580
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:12
- 大小:231.26KB
工作流引擎技术调研总结报告.docx
《工作流引擎技术调研总结报告.docx》由会员分享,可在线阅读,更多相关《工作流引擎技术调研总结报告.docx(12页珍藏版)》请在冰豆网上搜索。
工作流引擎技术调研总结报告
沈阳新一代信息技术有限公司
工作流引擎技术调研报告
技术文档
董威
2016/3/14
一、背景
将业务流程的定义,审批从业务系统中分离出来,统一进行规划与管理。
二、目的
对工作流引擎的各种实现技术进行统一的甄别,确定适合项目需求,和现应用技术进行良好集成,学习成本相对较低的工作流引擎。
三、需求及简介
工作流是一项分离业务操作和系统流程的技术。
工作流由实体(Entity)、参与者(Participant)、流程定义(FlowDefinition)、工作流引擎(Engine)四部分组成。
Ø实体是工作流的主体,是需要随着工作流一起流动的物件(Object)。
例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文。
Ø参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备;
Ø流程定义是预定义的工作步骤,它规定了实体流动的路线。
它可能是完全定义的,即对每种可能的情况都能完全确定下一个参与者,也可能是不完全定义的,需要参与者根据情况决定下一个参与者;
Ø工作流引擎是驱动实体按流程定义从一个参与者流向下一个参与者的机制
前三个要素是静态的,而第四个要素是动态的,它将前三者结合起来,是工作流的核心组成元素。
1.需求
所选工作流引擎需实现以下功能。
Ø具有强大的流程设计器。
Ø流程定义。
可自行灵活定义流程图,并达到流程变化时代码改动量尽可能少。
Ø流程表单设计灵活。
Ø流程审批节点灵活定义。
Ø流程各节点审批人定义。
可支持会签。
Ø可支持批量审批。
Ø独立于业务系统,需融合时简单灵活。
Ø网络资料丰富,运行效率高,学习成本相对较低。
Ø需保存每个步骤的数据,方便实现流程的回退,撤消等操作。
Ø能对项目现应用技术如spring等进行大力度支持。
Ø支持流程代办。
Ø流程版本管控。
优秀工作流引擎特点:
2.简介
目前java开源的工作流引擎有70余种。
详细介绍见下面链接。
现根据对其他技术的支持程度,网络资料,设计器和学习成本几方面考虑,对应用相对较多的Snaker,activiti,JBPM,UFLO几项开源引擎进行详细分析与调研。
四、详细介绍
1.Snaker
Snaker是一个基于Java的开源工作流引擎,适用于企业应用中常见的业务流程。
本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。
目前最新版本为
支持Spring、Jdbc、SpringJdbc、Hibernate3or4、Mybatis等orm框架。
包括了依赖包,流程引擎,eclipse插件,网盘资料,案例,文档,设计。
Snaker架构表设计简单(10张核心表,涵盖了实现原理的核心),流程组件简单(包含了开始。
结束,分裂,组合,自定义,任务)。
Snaker对外提供可扩展的接口,支持流程设计器,节点自定义,属性自定义,表单自定义。
学习成本较低,适合在小型项目中使用。
a.优点
1).Snaker有详细的api文档说明,路径:
2).能够与spring进行整合。
并良好的支持springjdbc,hibernate3/4,mybatis.
3).能够基于spring进行流程引擎的配置。
4).事务方面可将流程引擎的事务托管给spring进行统一管理。
可与具体业务事务进行统一集成管理。
5).数据库支持角度,可良好的支持oracle,postgres,mysql,mssql。
6).支持子流程,时限控制,会签,流程分支。
7).支持转派(主办,协办),撤回,提取,驳回,唤醒,更新。
8).支持基于eclipse的设计器。
9).可扩展性良好。
可扩展组件,表单,节点。
10).学习成本相对较低,且灵活。
b.实例
1).资源下载
2).创建数据库
在路径\schema下,找到并执行schema-postgres.sql(根据不同数据库选择不同sql)
3).部署
在\snaker-web路径下,找到snaker-springmvc-0.0.1.war,将其拷贝到tomcat,webapps下,重新启动tomcat,war包将自动解压。
4).修改数据库配置文件
在解压后的路径下找到\snaker\WEB-INF\classes,application.propserties文件,修改数据库信息。
5).启动tomcat,访问http:
//localhost:
8080/snaker/,即可进入页面,在此处可查看代办任务,查看流程实例,也可查询或部署流程图。
6).集成设计器
将\Snaker\snakerflow-libs\eclipse插件拷贝到eclipse安装目录下放入dropins目录下,重新启动eclipse。
新建项目,输入snaker即可出现下图。
7).创建Snaker项目及snaker流程图。
具体说明参照文档:
2.Activiti
Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。
其核心是超快速,前身是jbpm3/4。
它易于与Spring集成使用。
Activiti5基于jBPM4,与Alfresco的集成增加了其流程可视化与管理能力,同时通过创新的ActivitiCycle协作组件支持流程相关人员之间的协调,最后,它加强了集成能力。
下载地址:
http:
//www.activiti.org/download.html
a.优点
1)有api文档,路径http:
//activiti.org/javadocs/index.html
2)可以和spring进行集成。
3)引擎本身提供form,同时也支持自定义form。
4)事务方面底层基于spring事务控制
5)支持oracle,mssql,mysql等
6)支持子流程,会签,流程分支。
7)网络资源及代码较丰富。
8)支持基于eclipse的设计器。
上手比较快,界面也比较简洁、直观.
9).Activiti最大的优势是采用了PVM(流程虚拟机,流程虚拟机是一个用来构建和执行流程图的简单的java类库。
它充当各种工作流、业务流程管理和编制流程语言的基础),支持除了BPMN2.0规范之外的流程格式
10).服务接口清晰,API更为简单。
b.缺点
持久化层没有遵循JPA规范.
c.实例
1).资源下载并解压(包括设计器文件,和war包,lib包)
路径:
http:
//www.activiti.org/download.html
2).创建数据库
在路径\activiti-5.19.0\activiti-5.19.0\database\create下,找到并执行如下sql(根据不同数据库选择不同sql,支持hsql,mssql,mysql,oracle,postgres),共25张表。
3).部署
在\activiti-5.19.0\activiti-5.19.0\wars路径下,找到activiti-explorer.war,将其拷贝到tomcat,webapps下,重新启动tomcat,war包将自动解压。
4).修改数据库配置文件
在解压后的路径下找到activiti-explorer\WEB-INF\classes,db.propertiess文件,修改数据库信息,配置成自己的数据库。
5).启动tomcat,访问http:
//localhost:
8080/activiti-explorer,输入用户名kermit,密码kerm
it,即可进入页面。
6).集成设计器
将\activiti-designer-5.8.0\site插件拷贝到eclipse安装目录下放入dropins目录下,重新启动eclipse。
新建项目,输入activiti即可出现下图。
7).部署流程。
网页端部署,将xml和图片打成zip包,应用网页版的管理部署包功能进行发布。
8).和业务端整合。
具体整合方式独立章节介绍。
资料:
使用总结:
http:
//www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html
2.2.核心组件介绍
2.2.1.关键对象
1. Deployment:
流程部署对象,部署一个流程时创建。
2. ProcessDefinitions:
流程定义,部署成功后自动创建。
3. ProcessInstances:
流程实例,启动流程时创建。
4. Task:
任务,在Activiti中的Task仅指有角色参与的任务,即定义中的UserTask。
5. Execution:
执行计划,流程实例和流程执行中的所有节点都是Execution,如UserTask、ServiceTask等。
2.2.2.服务接口
1. ProcessEngine:
流程引擎的抽象,通过它我们可以获得我们需要的一切服务。
2. RepositoryService:
Activiti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据(例如BPMN2.0XML文件,表单定义文件,流程定义图像文件等),这些文件都存储在Activiti内建的Repository中。
RepositoryService提供了对repository的存取服务。
3. RuntimeService:
在Activiti中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。
RuntimeService提供了启动流程、查询流程实例、设置获取流程实例变量等功能。
此外它还提供了对流程部署,流程定义和流程实例的存取服务。
4. TaskService:
在Activiti中业务流程定义中的每一个执行节点被称为一个Task,对流程中的数据存取,状态变更等操作均需要在Task中完成。
TaskService提供了对用户Task和Form相关的操作。
它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。
5. IdentityService:
Activiti中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的Task。
IdentityService提供了对Activiti系统中的用户和组的管理功能。
6. ManagementService:
ManagementService提供了对Activiti流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于Activiti系统的日常维护。
7. HistoryService:
HistoryService用于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工作流 引擎 技术 调研 总结报告