activiti 工作流

  1. 工作流的概念

工作流(Workflow),就是“业务经过的片段要整以计算机应用环境下的自动化”,它根本解决之是“使在多独参与者中本某种预定义的条条框框传递文档、信息要任务的过程自动进行,从而实现有预期的政工目标,或者促使这个目标的贯彻”。

工作流管理体系(Workflow Management
System, WfMS)是一个软件系统,它成功工作量的概念跟保管,并论在网被先期定义好之办事流逻辑进行工作流实例的实行。工作流管理体系非是企业之业务体系,而是为合作社的事务系统的运行提供了一个软件之支持环境。

工作流管理联盟(WfMC,Workflow Management Coalition)给有底关于工作流管理体系的定义是:工作流管理网是一个软件系统,它通过履行经计算的流程定义去支撑一批判专门设定的业务流程。工作流管理网受用来定义、管理、和执行工作流程。

工作流管理体系的对象:管理工作的流程以担保工作于科学的辰吃冀望之食指所行——在自动化进行的工作过程被插入人工的推行与干涉。

 

2.Activiti介绍

Activiti5是由Alfresco软件在2010年5月17日颁布的业务流程管理(BPM)框架,它是挂了业务流程管理、工作流、服务合作等领域的一个开源之、灵活的、易扩展的但是实施流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的型架构师,它特色是供了eclipse插件,开发人员可以由此插件直接画有业务流程图。

图片 1

 

 

2.1. 做事流引擎

立即是Activiti工作之中心。负责生成流程运行时的各种实例及数、监控与管制流程的运作。

2.2 BPMN2.0*

 

业务流程建模与标注(Business Process
Model and Notation,BPMN) ,描述流程的骨干符号,包括这些图元如何做成一个业务流程图(Business Process Diagram)

2.3 数据库

 

Activiti的后台是发数据库的支持,所有的表都以ACT_开始。
第二有的凡意味着表底用的少数单字母标识。 用途为和服务之API对应。

 

1) ACT_RE_*: ‘RE’表示repository。
这个前缀的申包含了流程定义跟流程静态资源 (图片,规则,等等)。

 

2) ACT_RU_*: ‘RU’表示runtime。
这些运行时之表明,包含流程实例,任务,变量,异步任务,等运行面临之数据。
Activiti只以流水线实例执行过程被保存这些多少,
在流程结束时就是会去这些记录。 这样运行时表可以一直十分有点速度挺快。

 

3) ACT_ID_*: ‘ID’代表identity。
这些发明包含身份信息,比如用户,组等等。

 

4) ACT_HI_*: ‘HI’表示history。 这些发明包含历史数据,比如历史流程实例,
变量,任务等等。

 

5) ACT_GE_*: 通用数据,
用于不同景象下。

2.3.1 资源库流程规则表

 

1)   act_re_deployment 部署信息表

 

2)  act_re_model   流程设计模型部署表

 

3)  act_re_procdef   流程定义数据表

2.3.2 运行时数库表

1) act_ru_execution 运行时流程实施实例表

2) act_ru_identitylink
运行时流程人员说明,主要囤积任务节点和参与者的有关消息

3) act_ru_task 运行时任务节点表

4) act_ru_variable 运行时流程变量数据表

 

 

 

2.3.3 历史数据库表

1) act_hi_actinst 历史节点表

2) act_hi_attachment 历史附件表

3) act_hi_comment 历史意见表

4) act_hi_identitylink 历史流程人员发明

5) act_hi_detail 历史详情表,提供历史变量的查询

6) act_hi_procinst 历史流程实例表

7) act_hi_taskinst 历史任务实例表

8) act_hi_varinst 历史变量表

2.3.4 组织机构表

1) act_id_group 用户组信息表

2) act_id_info 用户扩展信息表

3) act_id_membership 用户以及用户组对承诺信息表

4) act_id_user 用户信息表

立四张表很宽泛,基本的团伙机关管理,关于用户征方面建议还是要好付出同模仿,组件自带的法力最简单,使用着发生不少求难以满足

2.3.5 通用数据表

1) act_ge_bytearray 二进制数据表

2) act_ge_property 属性数据表存储整个流程引擎级别之数码,初始化表结构时,会默认插入三久记下

 

2.4 activiti.cfg.xml

 

Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数。

定义数据库配置参数:

jdbcUrl: 数据库的JDBC URL。

jdbcDriver: 对诺不同数据库类型的让。

jdbcUsername: 连接数据库的用户称。

jdbcPassword: 连接数据库的密码。

冲JDBC参数配置的数据库连接
会使用默认的MyBatis连接池。
下面的参数可以就此来部署连接池(来自MyBatis参数):

jdbcMaxActiveConnections: 连接池中处于被使用状态的连的无比可怜价值。默认为10。

jdbcMaxIdleConnections: 连接池中居于空闲状态的连日的最为酷价值。

jdbcMaxCheckoutTime: 连接为取出使用的最丰富时,超过时间会叫挟持回收。
默认为20000(20秒)。

jdbcMaxWaitTime: 这是一个底部配置,让连接池可以当增长日子无法取连续时,
打印一久日志,并还尝试获得一个接连。(避免因漏洞百出配置导致沉默的操作失败)。
默认为20000(20秒)。

示范数据库配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context-2.5.xsd
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
    <!-- 数据库连接配置, 默认使用mybatis连接池 -->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql:///myactiviti"/>
        <property name="jdbcUsername" value="root"/>
        <property name="jdbcPassword" value="root"/>
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>                        

</beans>

为可行使javax.sql.DataSource。 (比如,Apache Commons的DBCP):

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context-2.5.xsd
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
    <!-- 数据库连接配置, 默认使用mybatis连接池 -->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!-- 配置第三方连接池 -->
        <property name="dataSource" ref="dataSource"></property>
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>                        

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql:///myactiviti"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
        <property name="defaultAutoCommit" value="false"></property>
    </bean>
    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration" ref="processEngineConfiguration"></property>
    </bean>
</beans>

2.5 logging.properties

    日志的布置文件

 

  1. 支出条件

 

网站地图xml地图