Activiti最全⼊门教程
⼯作流(Workflow),就是“业务过程的部分或整体在计算机应⽤环境下的⾃动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递⽂档、信息或任务的过程⾃动进⾏,从⽽实现某个预期的业务⽬标,或者促使此⽬标的实现”。
⼯作流管理系统(Workflow Management System, WfMS)是⼀个软件系统,它完成⼯作量的定义和管理,并按照在系统中预先定义好的⼯作流规则进⾏⼯作流实例的执⾏。⼯作流管理系统不是企业的业务系统,⽽是为企业的业务系统的运⾏提供了⼀个软件的⽀撑环境。
⼯作流管理联盟(WfMC,Workflow Management Coalition)给出的关于⼯作流管理系统的定义是:⼯作流管理系统是⼀个软件系统,它通过执⾏经过计算的流程定义去⽀持⼀批专门设定的业务流程。⼯作流管理系统被⽤来定义、管理、和执⾏⼯作流程。
⼯作流管理系统的⽬标:管理⼯作的流程以确保⼯作在正确的时间被期望的⼈员所执⾏——在⾃动化进⾏的业务过程中插⼊⼈⼯的执⾏和⼲预。
3:Activiti介绍
Activiti5是由Alfresco软件在2010年5⽉17⽇发布的业务流程管理(BPM)框架,它是覆盖了业务流程管
理、⼯作流、服务协作等领域的⼀个开源的、灵活的、易扩展的可执⾏流程语⾔框架。Activiti基于Apache许可的开源BPM平台,创始⼈Tom Baeyens是JBoss jBPM 的项⽬架构师,它特⾊是提供了eclip插件,开发⼈员可以通过插件直接绘画出业务
流程图。
3.1:⼯作流引擎
ProcessEngine对象,这是Activiti⼯作的核⼼。负责⽣成流程运⾏时的各种实例及数据、监控和管理流程的运⾏。
3.2:BPMN
业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成⼀个业务流程图(Business Process Diagram)
3.3:数据库(先了解后看)
Activiti数据库⽀持:
Activiti的后台是有数据库的⽀持,所有的表都以ACT_开头。 第⼆部分是表⽰表的⽤途的两个字母标识。 ⽤途也和服务的API对应。
ACT_RE_*: ‘RE’表⽰repository。 这个前缀的表包含了流程定义和流程静态资源 (图⽚,规则,等等)。
ACT_RU_*: ‘RU’表⽰runtime。 这些运⾏时的表,包含流程实例,任务,变量,异步任务,等运⾏中的数据。 Activiti只在流程实例执⾏过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运⾏时表可以⼀直很⼩速度很快。
ACT_ID_*: ‘ID’表⽰identity。 这些表包含⾝份信息,⽐如⽤户,组等等。
ACT_HI_*: ‘HI’表⽰history。 这些表包含历史数据,⽐如历史流程实例, 变量,任务等等。
ACT_GE_*: 通⽤数据, ⽤于不同场景下,如存放资源⽂件。
表结构操作:
3.3.1:资源库流程规则表
1) act_re_deployment 部署信息表
2) act_re_model 流程设计模型部署表
3) act_re_procdef 流程定义数据表
3.3.2:运⾏时数据库表
1) act_ru_execution 运⾏时流程执⾏实例表
2) act_ru_identitylink 运⾏时流程⼈员表,主要存储任务节点与参与者的相关信息
3) act_ru_task 运⾏时任务节点表
4) act_ru_variable 运⾏时流程变量数据表
3.3.3:历史数据库表
1) act_hi_actinst 历史节点表
2) act_hi_attachment 历史附件表
3) act_ih_comment 历史意见表
3) act_ih_comment 历史意见表
4) act_hi_identitylink 历史流程⼈员表
5) act_hi_detail 历史详情表,提供历史变量的查询
6) act_hi_procinst 历史流程实例表
7) act_hi_taskinst 历史任务实例表
8) act_hi_varinst 历史变量表
3.3.4:组织机构表
1) act_id_group ⽤户组信息表
2) act_id_info ⽤户扩展信息表
3) act_id_membership ⽤户与⽤户组对应信息表
4) act_id_ur ⽤户信息表
这四张表很常见,基本的组织机构管理,关于⽤户认证⽅⾯建议还是⾃⼰开发⼀套,组件⾃带的功能太简单,使⽤中有很多需求难以满⾜ 3.3.5:通⽤数据表
1) act_ge_bytearray ⼆进制数据表
2) act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插⼊三条记录,
3.4:l(activiti的配置⽂件)
Activiti核⼼配置⽂件,配置流程引擎创建⼯具的基本参数和数据库连接池参数。
定义数据库配置参数:
jdbcUrl: 数据库的JDBC URL。
jdbcDriver: 对应不同数据库类型的驱动。
jdbcUrname: 连接数据库的⽤户名。
jdbcPassword: 连接数据库的密码。
基于JDBC参数配置的数据库连接 会使⽤默认的MyBatis连接池。 下⾯的参数可以⽤来配置连接池(来⾃MyBatis参数):
jdbcMaxActiveConnections: 连接池中处于被使⽤状态的连接的最⼤值。默认为10。
jdbcMaxIdleConnections: 连接池中处于空闲状态的连接的最⼤值。
jdbcMaxCheckoutTime: 连接被取出使⽤的最长时间,超过时间会被强制回收。 默认为20000(20秒)。
jdbcMaxWaitTime: 这是⼀个底层配置,让连接池可以在长时间⽆法获得连接时, 打印⼀条⽇志,并
重新尝试获取⼀个连接。(避免因为错误配置导致沉默的操作失败)。 默认为20000(20秒)。
⽰例数据库配置:
也可以使⽤javax.sql.DataSource。 (⽐如,Apache Commons的DBCP):
3.5:logging.properties(⽇志处理)
⽇志的配置⽂件,Activiti操作数据库的时候,整合的⽇志⽂件
4:准备环境
4.1:activiti5 软件环境
1) JDK1.6或者更⾼版本
2) ⽀持的数据库有:h2, mysql, oracle, postgres, mssql, db2等。
3) ⽀持activiti5运⾏的jar包
4) 开发环境为Eclip3.7或者以上版本,myeclip为8.6版本
4.2:相关资源下载
1) JDK可以到sun的官⽹下载
2) 数据库,例如:mysql可以在官⽹上下载。
3) activiti也可以到Activiti官⽅⽹站下载得到。
4) Eclip3.7或者MyEclip8.6也可以到相应的⽹站上获得下载。
4.3:安装流程设计器(eclip插件)
4.3.1:安装⽅式⼀
在有⽹络的情况下,安装流程设计器步骤如下:
1) 打开 Help -> Install New Software. 在如下⾯板中:
2) 在如下Install界⾯板中,点击Add按钮:
配置新装插件的地址和名称
3) 然后填⼊下列字段
Name: Activiti BPMN 2.0 designer
Location:
4) 回到Install界⾯,在⾯板正中列表中把所有展⽰出来的项⽬都勾上:
5) 点击复选框
在Detail部分记得选中 “Contact all updates sites..” , 因为它会检查所有当前安装所需要的插件并可以被Eclip下载.
6) 安装完以后,点击新建⼯程new->Other…打开⾯板,如果看到下图内容: