工作流引擎技术调研总结报告

上传人:re****.1 文档编号:510305250 上传时间:2023-09-24 格式:DOCX 页数:14 大小:236.97KB
返回 下载 相关 举报
工作流引擎技术调研总结报告_第1页
第1页 / 共14页
工作流引擎技术调研总结报告_第2页
第2页 / 共14页
工作流引擎技术调研总结报告_第3页
第3页 / 共14页
工作流引擎技术调研总结报告_第4页
第4页 / 共14页
工作流引擎技术调研总结报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《工作流引擎技术调研总结报告》由会员分享,可在线阅读,更多相关《工作流引擎技术调研总结报告(14页珍藏版)》请在金锄头文库上搜索。

1、沈阳新一代信息技术有限公司工作流引擎技术调研报告技术文档董威2016/3/14目录一、背景3二、目的3三、需求及简介31 . 需求32. 简介4四、详细介绍41.Snaker42.Activiti53.JBPM64.UFLO7五技术实现总结8六附件9一、 背景 将业务流程的定义,审批从业务系统中分离出来,统一进行规划与管理。二、 目的对工作流引擎的各种实现技术进行统一的甄别,确定适合项目需求,和现应用技术进行良好集成,学习成本相对较低的工作流引擎。三、 需求及简介工作流是一项分离业务操作和系统流程的技术。工作流由实体(Entity)、参与者(Participant)、流程定义(Flow Def

2、inition)、工作流引擎(Engine) 四部分组成。 实体是工作流的主体,是需要随着工作流一起流动的物件(Object)。例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文。 参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备; 流程定义是预定义的工作步骤,它规定了实体流动的路线。它可能是完全定义的,即对每种可能的情况都能完全确定下一个参与者,也可能是不完全定义的,需要参与者根据情况决定下一个参与者; 工作流引擎是驱动实体按流程定义从一个参与者流向下一个参与者的机制前三个要素是静态的,而第四个要素是动态的,它将前三者结

3、合起来,是工作流的核心组成元素。1 . 需求所选工作流引擎需实现以下功能。 具有强大的流程设计器。 流程定义。可自行灵活定义流程图,并达到流程变化时代码改动量尽可能少。 流程表单设计灵活。 流程审批节点灵活定义。 流程各节点审批人定义。可支持会签。 可支持批量审批。 独立于业务系统,需融合时简单灵活。 网络资料丰富,运行效率高,学习成本相对较低。 需保存每个步骤的数据,方便实现流程的回退,撤消等操作。 能对项目现应用技术如spring等进行大力度支持。 支持流程代办。 流程版本管控。优秀工作流引擎特点:2. 简介 目前java开源的工作流引擎有70余种。详细介绍见下面链接。现根据对其他技术的支

4、持程度,网络资料,设计器和学习成本几方面考虑,对应用相对较多的Snaker,activiti,JBPM, UFLO几项开源引擎进行详细分析与调研。四、 详细介绍1. SnakerSnaker是一个基于Java的开源工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。目前最新版本为支持Spring、Jdbc、SpringJdbc、Hibernate3or4、Mybatis等orm框架。http:/ 优点1). Snaker有详细的api文档说明,路径: 。2). 能够与spring进行整合。并良好的支持springjdbc,hibernate 3

5、/4,mybatis.3). 能够基于spring进行流程引擎的配置。4). 事务方面可将流程引擎的事务托管给spring进行统一管理。可与具体业务事务进行统一集成管理。5). 数据库支持角度,可良好的支持oracle,postgres,mysql,mssql。6). 支持子流程,时限控制,会签,流程分支。7). 支持转派(主办,协办),撤回,提取,驳回,唤醒,更新。8). 支持基于eclipse的设计器。9). 可扩展性良好。可扩展组件,表单,节点。10).学习成本相对较低,且灵活。b. 实例1). 资源下载(包括源码,eclipse插件,lib包,部署包)2). 创建数据库在路径schem

6、a下,找到并执行schema-postgres.sql(根据不同数据库选择不同sql)3). 部署在snaker-web路径下,找到,将其拷贝到tomcat,webapps下,重新启动tomcat,war包将自动解压。4). 修改数据库配置文件在解压后的路径下找到snakerWEB-INFclasses,application.propserties文件,修改数据库信息。5). 启动tomcat,访问http:/localhost:8080/snaker/,即可进入页面,在此处可查看代办任务,查看流程实例,也可查询或部署流程图。6). 集成设计器将Snakersnakerflow-libsec

7、lipse插件拷贝到eclipse安装目录下放入dropins目录下,重新启动eclipse。新建项目,输入snaker即可出现下图。 7). 创建Snaker项目及snaker 流程图。具体说明参照文档:2. ActivitiActiviti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速,前身是jbpm3/4。它易于与 Spring集成使用。Activiti5基于jBPM4,与Alfresco的集成增加了其流程可视化与管理能力,同时通过创新的Activiti Cycle协作组件支持流程相关人员之间的协调,最后,它加强了集成能力。下载地址:a. 优点1)

8、有api文档,路径 http:/activiti.org/javadocs/index.html2) 可以和spring进行集成。3) 引擎本身提供form,同时也支持自定义form。4) 事务方面底层基于spring事务控制5) 支持oracle,mssql,mysql等6) 支持子流程,会签,流程分支。7) 网络资源及代码较丰富。8) 支持基于eclipse的设计器。上手比较快,界面也比较简洁、直观.9). Activiti最大的优势是采用了PVM(流程虚拟机, 流程虚拟机是一个用来构建和执行流程图的简单的java类库。它充当各种工作流、业务流程管理和编制流程语言的基础),支持除了BPMN

9、2.0规范之外的流程格式10).服务接口清晰, API更为简单。b. 缺点持久化层没有遵循JPA规范.c. 实例1). 资源下载并解压(包括设计器文件,和war包,lib包)路径:2). 创建数据库在路径activiti-5.19.0activiti-5.19.0databasecreate下,找到并执行如下sql(根据不同数据库选择不同sql,支持hsql,mssql,mysql,oracle,postgres),共25张表。3). 部署在activiti-5.19.0activiti-5.19.0wars路径下,找到activiti-explorer.war,将其拷贝到tomcat,web

10、apps下,重新启动tomcat,war包将自动解压。4). 修改数据库配置文件在解压后的路径下找到activiti-explorerWEB-INFclasses,db.propertiess文件,修改数据库信息,配置成自己的数据库。5). 启动tomcat,访问http:/localhost:8080/activiti-explorer,输入用户名kermit,密码kermit,即可进入页面。6). 集成设计器将activiti-designer-5.8.0site插件拷贝到eclipse安装目录下放入dropins目录下,重新启动eclipse。新建项目,输入activiti即可出现下图。

11、7). 部署流程。网页端部署,将xml和图片打成zip包,应用网页版的管理部署包功能进行发布。8). 和业务端整合。具体整合方式独立章节介绍。资料: 使用总结:2.2. 核心组件介绍2.2.1. 关键对象1.Deployment:流程部署对象,部署一个流程时创建。2.ProcessDefinitions:流程定义,部署成功后自动创建。3.ProcessInstances:流程实例,启动流程时创建。4.Task:任务,在Activiti中的Task仅指有角色参与的任务,即定义中的UserTask。5.Execution:执行计划,流程实例和流程执行中的所有节点都是Execution,如UserT

12、ask、ServiceTask等。2.2.2. 服务接口1.ProcessEngine:流程引擎的抽象,通过它我们可以获得我们需要的一切服务。2.RepositoryService:Activiti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据(例如BPMN2.0 XML文件,表单定义文件,流程定义图像文件等),这些文件都存储在Activiti内建的Repository中。RepositoryService提供了对 repository的存取服务。3.RuntimeService:在Activiti中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。

13、RuntimeService提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。4.TaskService: 在Activiti中业务流程定义中的每一个执行节点被称为一个Task,对流程中的数据存取,状态变更等操作均需要在Task中完成。TaskService提供了对用户Task 和Form相关的操作。它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。5.IdentityService: Activiti中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的Task。IdentityService提供了对

14、Activiti 系统中的用户和组的管理功能。6.ManagementService: ManagementService提供了对Activiti流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于Activiti系统的日常维护。7.HistoryService: HistoryService用于获取正在运行或已经完成的流程实例的信息,与RuntimeService中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。3. JBPMJBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。它的业务逻辑定义采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个业务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号