Activiti6.0流程引擎学习——(8)Activiti流程引擎源码初步介绍

我们开始讲解一下Activiti的源码文件的内容。

我们打开整个文件夹就可以看到以下的文件,这也就是Activiti的文件结构。

 

1、distro与eclipse

distro是发布用的目录,eclipse是开发的配置文件

2、modules文件

modules是重要的源码模块包结构。

3、qa文件

qa中文件关于测试使用的配置脚本文件

4、scripts文件

scripts一些启动相关的脚本,start-ui.sh启动UI

5、查看pom.xml文件

以下是关于对于流程模型的管理或流程校验的操作模块。我们可以看到最下面的是activiti-engine。maven从上到下编译,可以看出Activiti引擎构建是依赖之前的这些模型构建的。

6、modules下activiti-engine下的java文件介绍

总体文件预览如下:

文件名 介绍
cfg配置文件相关,Activiti启动依赖的配置文件。
compatibility跟兼容性相关的包结构,Activiti5到6不兼容根据这里的内容进行适配。
debug调试相关的内容,看到Activiti内部运行的机制。
delegate制定的节点文件。
event事件和监听机制。
form表单,用来定义通用的表单。
history运行产生的数据迁移到这里。
identity权限与身份认证的配置。
impl对应的实现包。
logging跟日志相关,里面只有一个LogMDC类。
management管理相关的接口与API。
parse流程是XML文件,需要解析,parse用来解析相关的工作。
query跟数据库操作的抽象查询接口。
repository流程部署到数据库的一些文件。
runtime与history有一定对应关系。执行中数据在这里处理。结束后移除到history中。
task流程节点遇到人工处理的作业相关文件。
test支持单元或集成测试的工作类、帮助类。

engine目录下面是一些相关的异常文件、重要的API与类。我们看出越是重要的API越是放在文件的最外面,可以让使用者越快的找到它们。

7、modules下activiti-engine下的resources文件介绍

db:跟数据库相关的文件。其中create就是创建的脚本。drop关于删除的脚本。

我们先看看create文件下的内容:

可以看到一个规律,每三个脚本对应一个数据库,支持db2、h2、hsql、mssql、mysql、oracle、postgres数据库。

 

下图我们打开activiti.oracle.create.history.sql文件,可以看到里面的sql脚本。


mapping:是mybatis的对应文件。

以下是其中一个很普通发对mybatis配置的文件。

properties:各种数据库的配置文件。

upgrade:设计到版本升级时对sql语句的升级。每个小版本的都有。

engine中的deployer:一些小图标,比如流程图文件生成一个流程图时,不同流程节点对应不同的小图标。

其中的一个小图标文件:

7、modules下其他文件介绍

activiti-spring:关于Spring集成模块。

activiti-form-engine:表单引擎模块

activiti-Idap:用于跟用户做集成模块

activiti-bpmn-converter:模型转换模块

activiti-image-generator:流程图绘制模块

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Activiti6最大的变化点就是对代码进行了重构,该版本修复以往的Bug并不多,但内部实现相对来说变化比较大。其突出的变化如下所示: 新增两款新引擎,Form引擎和DMN引擎(动态引擎)。其中DMN引擎允许开发人员创建自己的决策表。可以通过变量和定义的规则方式从决策表中计算结果。这些决策表的数据可以被rule task调用,决策表与流程实例是完全隔离的,相互之间不需要知道对方的存在。Form引擎可以通过Activiti6 UI界面进行配置,通俗一点的理解就是Activiti6将Form表单独立出来了。Form表单信息可以以JSON格式进行定义和使用。Activiti6 UI 默认包括新的规则引擎和表单引擎。 新增ad-hoc子流程。可以参考文章(ad-hoc子流程使用)。 作业执行器被重构。Activiti6版本仅保留了Activiti5版本中的异步作业执行器(async executor)。定时作业被划分了四个不同的表:executable jobs, timer jobs, suspended jobs 和deadletter jobs。引擎可以更快的执行作业。定时器作业在新的版本存储于单独的表中,一个线程会定时轮训需要执行的作业,快到期的作业会被添加到suspended jobs表中。重试的作业已经被干掉了,需要重试的作业会被添加到deadletter jobs表中。这样的重构意义主要是为了提高查询效率,可以执行的作业可以很快的被查询出来。 作业执行器通过消息队列的方式进行,关于这一点可以参考随后的文章。 瞬态变量的引入。瞬态变量不会存储到 Activiti 变量表中,但仍为单一的事务持续时间执行。比如可以在REST服务之间进行调用的时候使用,或者使用于Java service task。 引入了事务依赖监听器,可以参考Activiti依赖事务监听器(上)的讲解。 Activiti 6 UI 程序中,添加了DMN编辑器。 对于多实例节点而言,添加了终止多实例节点的相关方法。这个特性允许开发人员使用API结束多实例所有节点的执行。 优化补偿活动行为和在子流程中的使用。 在运行流程实例以及执行实例中添加了开始时间以及启动流程实例的人字段。在ru_task中增加了任务的认领时间(claim time)。 妥善解决数据库架构 (oracle/postgres) 的使用。 修复历史数据捕获。 大量重构 Activiti 6 UI 应用程序,例如应用程序中定义现在部署作为正常的活动部署,没有为其单独的应用程序定义表。 改进Activiti 6 QA中的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青山孤客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值