付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈阳新一代信息技术有限公司工作流引擎技术调研报告技术文档董威2016/3/14目录1、 背景22、 目的23、 需求及简介21 .需求22 .简介34、 详细介绍31. Snaker.32. Activiti53. JBPM74. UFLO85、 技术实现总结96、 附件10背景将业务流程的定义,审批从业务系统中分离出来,统一进行规划与管理。二、目的对工作流引擎的各种实现技术进行统一的甄别,确定适合项目需求,和现应用技术进行良好集成,学习成本相对较低的工作流引擎。三、需求及简介工作流是一项分离业务操作和系统流程的技术。工作流由实体(Entity)、参与者(Participant)流程定义(Fl
2、owDefinition)、工作流引擎(Engine)四部分组成。实体是工作流的主体,是需要随着工作流一起流动的物件(Object)。例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文。参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备;流程定义是预定义的工作步骤,它规定了实体流动的路线。它可能是完全定义的,即对每种可能的情况都能完全确定下一个参与者,也可能是不完全定义的,需要参与者根据情况决定下一个参与者;工作流引擎是驱动实体按流程定义从一个参与者流向下一个参与者的机制前三个要素是静态的,而第四个要素是动态的,它将前三者结
3、合起来,是工作流的核心组成元素。1 .需求所选工作流引擎需实现以下功能。具有强大的流程设计器。流程定义。可自行灵活定义流程图,并达到流程变化时代码改动量尽可能少。流程表单设计灵活。流程审批节点灵活定义。流程各节点审批人定义。可支持会签。可支持批量审批。独立于业务系统,需融合时简单灵活。网络资料丰富,运行效率高,学习成本相对较低。需保存每个步骤的数据,方便实现流程的回退,撤消等操作。能对项目现应用技术如spring等进行大力度支持。支持流程代办。流程版本管控。优秀工作流引擎特点:http:2 .简介目前java开源的工作流引擎有70余种。详细介绍见下面链接。现根据对其他技术的支持程度,网络资料,
4、设计器和学习成本几方面考虑,对应用相对较多的Snaker,activiti,JBPM,UFLO几项开源引擎进行详细分析与调研。四、详细介绍1.SnakerSnaker是一个基于Java的开源工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。目前最新版本为支持Spring、Jdbc、SpringJdbc、Hibernate30r4、Mybatis等orm框架。设计。Snaker架构表设计简单(10张核心表,涵盖了实现原理的核心),流程组件简单(包含了开始。结束,分裂,组合,自定义,任务)。Snaker对外提供可扩展的接口,支持流程设计器,节点自
5、定义,属性自定义,表单自定义。学习成本较低,适合在小型项目中使用a.优点1),Snaker有详细的api文档说明,路径http:2),能够与spring进行整合。并良好的支持springjdbc,hibernate3/4,mybatis.3),能够基于spring进行流程引擎的配置。4) .事务方面可将流程引擎的事务托管给spring进行统一管理。可与具体业务事务进行统一集成管理。5) .数据库支持角度,可良好的支持oracle,postgres,mysql,mssql。6),支持子流程,时限控制,会签,流程分支。7),支持转派(主办,协办),撤回,提取,驳回,唤醒,更新。8),支持基于ecl
6、ipse的设计器。9),可扩展性良好。可扩展组件,表单,节点。10),学习成本相对较低,且灵活。b.实例1),资源下载2),创建数据库在路径schema下,找到并执行schema-postgres.sql(根据不同数据库选择不同sql)3),部署在snaker-web路径下,找至Usnaker-springmvc-0.0.1.war,4各其拷贝至Utomcat,webapps下,重新启动tomcat,war包将自动解压。4),修改数据库配置文件在解压后的路径下找到snakerWEB-INFclasses,pserties文件,修改数据库信息。5),启动tomcat
7、,访问http:localhost:8080/snaker/:即可进入页面,在此处可查看代办任务,查看流程实例,也可查询或部署流程图。6),集成设计器将Snakersnakerflow-libseclipse插件拷贝到eclipse安装目录下放入dropins目录下,重新启动eclipseo新建项目,输入snaker即可出现下图。BSnaker届SnakerFormFile曳SnakerProcessFilej-jSnakerProject7).创建Snaker项目及snaker流程图。具体说明参照文档SdeU:jtransrtianstart的MdtaskCLKEDmLaJb-pwm:dra
8、sion与Mrk刎#in2.ActivitiActiviti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速,前身是jbpm3/4。它易于与Spring集成使用。Activiti5基于jBPM4,与Alfresco的集成增加了其流程可视化与管理能力,同时通过创新的ActivitiCycle协作组件支持流程相关人员之间的协调,最后,它加强了集成能力。下载地址:/download.htmla.优点1) 有api文档,路径http:/javadocs/index.html2)可以和spring进行
9、集成。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) .资源下载并解压(包括设计
10、器文件,和war包,lib包)路径:/download.html2) .创建数据库在路径activiti-5.19.0activiti-5.19.0databasecreate下,找到并执行如下sql(根据不同数据库选择不同sql,支持hsql,mssql,mysql,oracle,postgres),共25张表。t,activitkpostgres,createnengine,sqlactiviti.postgre.create.histcry.sqlactiviti.postgres.createJdentity.sqll3) .部署在activ
11、iti-5.19.0activiti-5.19.0wars路径下,找至Uactiviti-explorer.war,将其拷贝至Utomcat,webapps下,重新启动tomcat,war包将自动解压。4) .修改数据库配置文件在解压后的路径下找到activiti-explorerWEB-INFclasses,pertiess文件,修改数据库信息,配置成自己的数据库。5) .启动tomcat,访问http:/localhost:8080/activiti-explorer:输入用户名kermit,密码kermit,即可进入页面。OActiviti'Explorer口fij件
12、势流瑁相恚管理我的流程已部署流程定义流程设计工作区6) .集成设计器将activiti-designer-5.8.0site插件拷贝到eclipse安装目录下放入dropins目录下,重新启动eclipseo新建项目,输入activiti即可出现下图。Activiti。ActivitiDiagramGActivitiProject7) .部署流程。网页端部署,将xml和图片打成zip包,应用网页版的管理部署包功能进行发布。8) .和业务端整合。具体整合方式独立章节介绍。资料:使用总结:http:http:/www.kafeitu.me/activiti/2012/03/22/workflow-
13、activiti-action.html1.2. 核心组件介绍1.2.1. 关键对象1. Deployment:流程部署对象,部署一个流程时创建。2. ProcessDefinitions流程定义,部署成功后自动创建。3. Processinstances流程实例,启动流程时创建。4. Task任务,在Activiti中的Task仅指有角色参与的任务,即定义中的UserTask5. Execution:执行计划,流程实例和流程执行中的所有节点都是Execution,如UserTaskServiceTas降。1.2.2. 服务接口1. ProcessEngine流程引擎的抽象,通过它我们可以获得
14、我们需要的一切服务。2. RepositoryServiceActiviti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据(例如BPMN2.0XML文件,表单定义文件,流程定义图像文件等),这些文件都存储在Activiti内建的Repository中。RepositoryService提供了对repository的存取服务。3. RuntimeService在Activiti中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。RuntimeService提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程
15、实例的存取服务。4. TaskService布Activiti中业务流程定义中的每一个执行节点被称为一个Task,对流程中的数据存取,状态变更等操作均需要在Task中完成。TaskService®供了对用户Task和Form相关的操作。它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。5. IdentityService:Activiti中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的TaskIdentityService提供了对Activiti系统中的用户和组的管理功能。6. ManagementService:ManagementService提
16、供了对Activiti流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于Activiti系统的日常维护。7. HistoryService:HistoryService用于获取正在运行或已经完成的流程实例的信息,与RuntimeService中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。3. JBPMJBPM,全称是JavaBusinessProcessManagement(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。它的业务逻辑定义采用了它自己定义的JBossjBP
17、MProcessdefinitionlanguage(jPdl)。jPdl认为一个业务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,以及状态之间的转换,通过图型化的流程定义,直观地描述业务流程。jBPM的另一个特色是它使用Hibernate来管理它的数据库。jBPM5和Activiti都是从jBPM4发展出来的,jBPM5是JBOSS的,Activiti是原jBPM4项目负责人离开JBOSS后,在Alfresco公司推出的。jBPM5基于原先的DroolsFlow,支持BPMN,通过与Drools的合并支持BAM,通过内容仓库增加对流程可视化白
18、支持。由于放弃了jBPM4的PVM,引擎的可扩展性受到损害,并且不再支持jPDLoJBPM架构本身比较复杂,内部实现也比较复杂,学习成本较高,适合于项目流程比较多,流程复杂的项目。系统运行和维护、升级时,流程可能需要修改、调整和跟踪、控制的项目。a.优点1),提供基于Eclipse插件开发的流程模版可视化设计器。2) .支持回退,撤销,会签,子流程等操作。3) .支持oracle,mssql,mysql等.4),使用hibernate来管理数据库。b.实例1),资源下载https:插件,lib包,部署包)2),创建数据库在路径jbpm-6.2.0.Final-installer-fulljbp
19、m-installerdbddl-scriptspostgresql下,找到并执行sql文件,生成数据库表(根据不同数据库选择不同sql)3),部署在snaker-web路径下,找至Usnaker-springmvc-0.0.1.war,4各其拷贝至Utomcat,webapps下,重新启动tomcat,war包将自动解压。4),修改数据库配置文件在解压后的路径下找到snakerWEB-INFclasses,pserties文件,修改数据库信息。5) .启动tomcat,访问http:localhost:8080/snaker/,即可进入页面,在此处可查看代办任务
20、,查看流程实例,也可查询或部署流程图。6),集成设计器将Snakersnakerflow-libseclipse插件拷贝到eclipse安装目录下放入dropins目录下,重新启动eclipseo新建项目,输入snaker即可出现下图。4. UFLOUFLO是一套由BSTEKt主研发的基于Java的流程引擎,它以Spring为基础框架,采用Hibernate作为持久层,可运行于所有主流程应用服务器及流数据库之上的轻量级流程引除公网资源,其他资源较少,如不采用dorado7+BDF开发框架,不建议使用。a.优点1),可以和spring进行集成。2) .支持流程分支,子流程,流程会签流程跳转等。3
21、),可以很好的支持集群。4) .网络操作指南:http:/pages/viewpage.action?pageId=304417635),提供基于Eclipse插件开发的流程模版可视化设计器。6),实现在J2EE环境下B/S应用或C/S应用当中对业务流程的流程控制。7),UFLO还提供了一套基于网页的流程模版设计器,网页版的设计器提供了与Eclipse插件版设计器完全相同的功能。b,缺点1).除公网发布的实例代码,网络其他实例较少,使用不多。使用时与BDF其他技术集成使用更快捷。C.实例五.技术实现总结1 .开发流程a,下载相应设计器b集成到eclipse开发工具b,
22、下载并部署管理端。下载相应war包,将其部署到tomcat下(独立部署:适用于新开发的系统)。浏览器访问,即可发布流程设计文件。也可下载发布包,将源码文件拷贝到应用项目路径下(嵌入式部署:适用于现成系统表单不更改,接口调用),重新进行配置,将其嵌入项目中。此种方式不用部署多个应用,可和应用项目集成在一起,方便进行管理。部署操作参考:在eclipse中新建相应流程项目,利用集成好的设计器设计流程文件,包括流程图,xml文件等。d,将流程设计文件发布到流程管理端。2 .业务整合在管理端搭建完成后,进行业务和流程引擎的整合。在业务端表单对应的数据库表设计中,添加流程id(具体流程请求编码),和流程定
23、义id(哪个流程,在流程设计时定义)字段。在表单提交时,先接收表单提交信息,然后根据流程定义id,启动流程,并将流程id存入表单实体中,最后将信息存入数据库。六.附件Actiuiti5与jBPM5技术组成又寸I:匕序号技术母成ActiviitiJBPM51数据库持久层QRMMyBatisSHibernate32持久化标准无JPA规范期建MyBati当机制/£prirtg事务控制Ritronix,基于JTA事务看理4数据库卸坊式Jdbc/DataSourceJdbc/DataSource5支持数据库Oracle.SQLServerMySQL等多数数据库Oracle.SQLServer,
24、6Command观察WW®7内部服梦通讯Servicel耳逋过API调用SApacheMina异步通讯8口SOAP.Mule.RESTful消息通讯9程做BPMN2.xPDL.jPDL等目前区门支iBPMNZxml10引挈核心PVM(流程虚拟机)Drools11技术前身jBPM3.jBPM4DroolsFlow12所属公司AlfrescojB七.数据字典1. Snaker2. ActivitiActiviti使用到的表都是ACT_开头的。ACT_RE_*:'REt示repository(存储),RepositoryService接口所操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。ACT_RU_*:'RUt示runtime,运行时表-RuntimeService。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。ACT_ID_*:'ID'示identit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 奶牛产后恢复饲养管理技术指引
- 心理咨询题目及解析
- 版权代理人版权知识试题及解析
- 医学26年:绝经期激素替代治疗 查房课件
- 2026年初一道德与法治第二学期期末考试卷及答案(共十二套)
- 面瘫患者日常护理要点
- 静脉输液输液袋的更换与处理
- 血液透析科护理基础
- 骨科患者的出院康复指导
- 骨髓抑制患者的静脉管理与护理
- 语音厅保密协议书
- 生酮减脂课件
- 车间6S管理培训
- T-CHTS 20023-2022 公路中央分隔带开口钢管预应力索护栏
- 燃气管道旁开挖施工方案
- 2025安徽黄山市徽城投资集团有限公司招聘10人笔试历年难易错考点试卷带答案解析2套试卷
- 电工基础第3版微课版逄锦梅教学课件全套
- 2025年易制毒化学品安全培训试卷(含答案)
- 高处坠落培训安全培训
- 原产地规则解读
- 物种互作关系研究-洞察及研究
评论
0/150
提交评论