Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
529 lines (501 sloc) 19.1 KB
---
layout: master
title: 《Activiti实战》闫洪磊著 - 国内权威Activiti中文书籍
---
<style type="text/css">
.book-index li {
display: inline;
padding: 1em;
}
</style>
<table>
<tr>
<td width="220"><a href="http://www.activiti.org" target="_blank"><img src="/images/activiti_logo.png" alt="Activiti" /></a></td>
<td style="font-size: 18pt; color: #56BA49">优秀的开源流程引擎(BPM平台)</td>
</tr>
</table>
<div>
<div style="float:left; width: 55%">
<p>
工作流在每一个需要流程处理的系统中不可或缺,符合BPMN2.0规范且开源的流程引擎(或平台)才是每个公司需要的,结合长期以来(从jBPM4停止更新)开源流程引擎的使用上可以分为Activiti和jBPM5,前者是jBPM作者Tom的又一力作,而jBMP5则是基于Drools Flow的产物。从设计思想、源码开放、技术支持以及社区的活跃度几点对比很明显Activiti优于jBPM5,另外本书中强调过很多次的一句话:“<strong>Activiti不仅仅是一个引擎,它还是一个流程平台</strong>”;Activiti可以轻松驱动你的业务流程、搭建统一的流程平台。
</p>
<p>
哦,对了,国内还有几千人技术社区作为你的技术后盾。
</p>
<p>
国内Activiti领域第一人(最权威专家和布道师)撰写,Activiti项目负责人Tijs Rademakers高度认可并推荐;根据Activiti最新版本系统、深度讲解了BPM2.0规范,以及Activiti功能、用法、技巧、最佳实践和源代码分析。
</p>
<hr>
<ul class="book-index" style="font-size:14pt;margin-top:2em;">
<li><a href="#praise">赞誉</a></li>
<li><a href="#toc">目录</a></li>
<li><a href="#codes">源码</a></li>
<li><a href="#errata">勘误</a></li>
<li><a href="#comments">评论</a></li>
<li><a href="http://book.douban.com/subject/26287219">豆瓣</a></li>
</ul>
<hr>
<p style="margin-top:2em;margin-bottom:2em;">
去 <a href="http://product.china-pub.com/3770832" style="font-size:17pt;color:red">China-Pub</a>
| <a href="http://item.jd.com/11599588.html" style="font-size:17pt;color:red">京东</a>
| <a href="http://product.dangdang.com/23622065.html" style="font-size:17pt;color:red">当当网</a>
| <a href="http://www.amazon.cn/Activiti%E5%AE%9E%E6%88%98-%E9%97%AB%E6%B4%AA%E7%A3%8A/dp/B00RRCOYAQ/ref=sr_1_4?ie=UTF8&qid=1420773978&sr=8-4&keywords=activiti" style="font-size:17pt;color:red">亚马逊</a>
购买
</p>
</div>
<div style="float:right; width: 45%">
<div>
<img src="/images/activiti-in-action.jpg" width="100%">
</div>
</div>
</div>
<h2 id="praise">赞誉</h2>
<div>
<em style="font-size: 13pt;">Henry Yan has been a longtime valued contributor to the Activiti project, both for his commits and for promoting Activiti in China through his community and blog site (<a href="http://www.kafeitu.me/activiti.html">http://www.kafeitu.me/activiti.html</a>).
It’s great to see his Activiti book as it brings a lot of value for Activiti users and developers in China. With Henry Yan’s background in the Activiti project I highly recommend this book for new Activiti users as well as developers already using Activiti.</em>
<p>
<a href="http://bpmn20inaction.blogspot.com" style="font-size:15pt;">Tijs Rademakers</a><br/>
现任Activiti项目负责人,《Activiti in Action》作者 (Manning)
</p>
<hr>
<em style="font-size: 13pt;">
咖啡兔同学的《Activiti实战》终于出炉,欣喜之情溢于言表。国内的工作流行业虽然产品繁多,但是开源一直为Activiti和jBPM垄断。相对来说Activiti延续了一贯方便灵活的特性,又不会在功能上有半分折损,在国内拥有大量的粉丝。咖啡兔同学此前一直致力于Activiti在国内的推广与传播,先后开辟了专栏博客、Activiti论坛网站、QQ群组,并积极参与Activiti的官方开发,可以说Activiti在国内能达到当前的认知程度,他是功不可没的。可惜,国内尚缺一本可以为Activiti新手答疑解惑,带初阶者更上一层楼的实体书籍。我觉得,这个任务由一直积极活跃于Activiti开源社区,既拥有实际流程项目设计研发经验,又为Activiti官方内核提交过代码的人是再合适不过了。
全书由浅入深地引导读者进入工作流的殿堂,不仅覆盖常见的流程功能与实现方法,还专门提供了作者实践中总结的经验方法,因此本书必将成为学习流程道路上的得力助手。
</em>
<p>
<a href="http://" style="font-size:15pt;">徐会生(临远)</a><br/>
jBPM、Activiti国内推广者,《深入浅出Ext》(一、二、三版)作者
</p>
</div>
<h2 id="codes">源码</h2>
<div>
别问我为什么没有附带光盘,看看现在笔记本还有没有光驱?<br/>
<ul>
<li>Github -> <a href="https://github.com/henryyan/activiti-in-action-codes" target="_blank">https://github.com/henryyan/activiti-in-action-codes</a> </li>
<li>开源中国 -> <a href="http://git.oschina.net/yanhonglei/activiti-in-action-codes" target="_blank">http://git.oschina.net/yanhonglei/activiti-in-action-codes</a> </li>
</ul>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="http://www.oschina.net/js/jquery/jquery.githubRepoWidget.js" type="text/javascript"></script>
<div class="github-widget" data-repo="henryyan/activiti-in-action-codes"></div>
<hr style="margin-top:.5em;margin-bottom:.5em;"/>
<script src='http://git.oschina.net/yanhonglei/activiti-in-action-codes/widget_preview'></script>
<style> .pro_name a{color: #4183c4;} .osc_git_title{background-color: #d8e5f1;} .osc_git_box{background-color: #fafafa;} .osc_git_box{border-color: #ddd;} .osc_git_info{color: #666;} .osc_git_main a{color: #4183c4;} </style>
</div>
<h2 id="errata">勘误</h2>
<div>
<ul>
<li><strong>本书推荐</strong>:第二行的“前言”改为“前沿”</li>
<li><strong>P3</strong>:BMP改为“BPM”</li>
<li><strong>P6</strong>:表1-1的第3行『IdnetifyService』改为『IdentityService』</li>
<li><strong>P22</strong>:代码清单2-4的#1-S处userTask的“id”属性值改为“deptLeaderAudit”</li>
<li><strong>P67第一行</strong>:所有的开始事件均改为『结束事件』</li>
<li><strong>P82</strong>:第4.3.12节地4行改为:添加了3个平行线(顺序执行)和3个垂直线(并行执行)</li>
<li><strong>P122最后一行</strong>:“cadidate”改为“candidate”;感谢@south</li>
<li><strong>P123第一行</strong>:“cadidate”改为“candidate”;感谢@south</li>
<li><strong>P147</strong>表格中第二个readable改为“required”</li>
</ul>
</div>
<h2 id="toc">目录</h2>
<div>
<h3>第一部分 准备篇</h3>
<fieldset><legend>第1章 认识Activiti</legend>
<ul>
<li>1.1 什么是Activiti</li>
<li>1.2 工作流基础</li>
<li>1.2.1 什么是BPM</li>
<li>1.2.2 BPM生命周期</li>
<li>1.2.3 什么是BPMN</li>
<li>1.3 Activiti的特点</li>
<li>1.4 Activiti的应用</li>
<li>1. 在系统集成方面应用</li>
2. 在其他产品中应用
<li>1.5 Activiti架构与组件</li>
<li>1.6 Activiti与jBPM5比较</li>
<li>1.7 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第2章 搭建Activiti开发环境</legend>
<ul>
<li>2.1 下载Activiti</li>
<li>2.1.1 目录结构</li>
<li>2.1.2 Javadoc</li>
<li>2.2 环境配置检查</li>
<li>2.2.1 检查并安装JDK</li>
<li>2.2.2 检查并安装Ant</li>
<li>2.2.3 检查并安装Maven</li>
<li>2.3 配置文件介绍</li>
<li>2.3.1 Activiti配置文件</li>
<li>2.3.2 Maven配置文件</li>
<li>2.4 Hello World</li>
<li>2.4.1 最简单的流程定义</li>
<li>2.4.2 创建单元测试类</li>
<li>2.4.3 运行Hello World</li>
<li>2.4.4 添加业务节点</li>
<li>2.5 Activiti Explorer</li>
<li>2.5.1 配置并运行Activiti Explorer</li>
<li>2.5.2 使用Activiti Explorer</li>
<li>2.6 本章小结</li>
</ul>
</fieldset>
<h3>第二部分 基础篇</h3>
<fieldset><legend>第3章 流程设计工具</legend>
<ul>
<li>3.1 基于B/S架构的流程设计器Activiti Modeler</li>
<li>3.1.1 Activiti Modeler特点</li>
<li>3.1.2 下载Signavio-core-components</li>
<li>3.1.3 配置打包与运行</li>
<li>3.1.4 打包Windows用户</li>
<li>3.1.5 设计请假流程</li>
<li>3.1.6 导出bpmn2.0.xml</li>
<li>3.2 在Activiti Explorer中使用Activiti Modeler</li>
<li>3.3 基于Eclipse插件的流程设计器Activiti Designer</li>
<li>3.3.1 Acvititi Designer特点</li>
<li>3.3.2 安装Activiti Designer</li>
<li>3.3.3 设计流程</li>
<li>3.3.4 自动化</li>
<li>3.3.5 升级历史遗留的流程设计</li>
<li>3.3.6 导入Activiti Modeler设计</li>
<li>3.3.7 泳池与泳道</li>
<li>3.3.8 在Activiti Designer中使用泳道与泳池</li>
<li>3.4 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第4章 Activiti与BPMN2.0规范</legend>
<ul>
<li>4.1. 启动事件与结束事件</li>
<li>4.1.1. 启动事件</li>
<li>4.1.2. 结束事件</li>
<li>4.2. 顺序流</li>
<li>4.2.1. 标准顺序流</li>
<li>4.2.2. 条件顺序流</li>
<li>4.3. 任务</li>
<li>4.3.1. 用户任务</li>
<li>4.3.2. 脚本任务</li>
<li>4.3.3. Java Service任务</li>
<li>4.3.4. Web Service任务</li>
<li>4.3.5. 业务规则任务</li>
<li>4.3.6. 邮件任务</li>
<li>4.3.7. Camel任务</li>
<li>4.3.8. Mule任务</li>
<li>4.3.9. 手动任务</li>
<li>4.3.10. 接收任务</li>
<li>4.3.11. Shell任务</li>
<li>4.3.12. 多实例</li>
<li>4.4. 网关</li>
<li>4.4.1. 排他网关</li>
<li>4.4.2. 并行网关</li>
<li>4.4.3. 包容网关</li>
<li>4.4.4. 事件网关</li>
<li>4.5. 子流程与调用活动</li>
<li>4.5.1. 子流程</li>
<li>4.5.2. 调用活动</li>
<li>4.5.3. 事件子流程</li>
<li>4.5.4. 事务子流程</li>
<li>4.6. 边界与中间事件</li>
<li>4.6.1. 边界事件</li>
<li>4.6.2. 中间捕获事件</li>
<li>4.6.3. 中间抛出事件</li>
<li>4.7. 监听器</li>
<li>4.7.1. 执行监听器</li>
<li>4.7.2. 任务监听器</li>
<li>4.8. 本章小结</li>
</ul>
</fieldset>
### 第三部分 实战篇
<fieldset><legend>第5章 用户与组及部署管理</legend>
<ul>
<li>5.1. 用户与组</li>
<li>5.1.1. 用户</li>
<li>5.1.2. 组</li>
<li>5.1.3. 用户与组的关系</li>
<li>5.1.4. 用户任务中的用户与组</li>
<li>5.2. 部署流程资源</li>
<li>5.2.1. classpath方式</li>
<li>5.2.2. InputStream方式</li>
<li>5.2.3. 字符串方式</li>
<li>5.2.4. Zip/Bar格式压缩包方式</li>
<li>5.3. 流程部署及资源读取</li>
<li>5.3.1. 读取已部署流程定义</li>
<li>5.3.2. 从客户端部署流程</li>
<li>5.3.3. 读取流程定义的XML</li>
<li>5.3.4. 读取流程定义的图片及图片中的中文乱码</li>
<li>5.3.5. 删除部署</li>
<li>5.4. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第6章 任务表单</legend>
<ul>
<li>6.1. 动态表单</li>
<li>6.1.1. 流程定义</li>
<li>6.1.2. 单元测试</li>
<li>6.1.3. 在Activiti Explorer中运行流程</li>
<li>6.2. 实现自己的Activiti Explorer</li>
<li>6.2.1. 完善身份验证功能</li>
<li>6.2.2. 流程启动表单</li>
<li>6.2.3. 任务签收与办理</li>
<li>6.2.4. 自定义表单的字段类型</li>
<li>6.3. 外置表单</li>
<li>6.3.1. 流程定义</li>
<li>6.3.2. 单元测试</li>
<li>6.3.3. 自定义表单引擎</li>
<li>6.3.4. 读取流程启动表单</li>
<li>6.3.5. 任务签收与办理</li>
<li>6.4. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第7章 Activiti与容器集成</legend>
<ul>
<li>7.1. 流程引擎工厂</li>
<li>7.1.1. 创建引擎的方式</li>
<li>7.1.2. 配置 ProcessEngineFactoryBean</li>
<li>7.2. 自动部署流程定义</li>
<li>7.3. 表达式</li>
<li>7.3.1. 表达式基础</li>
<li>7.3.2. 表达式示例</li>
<li>7.3.3. 使用Spring管理变量</li>
<li>7.4. 监听器</li>
<li>7.5. Spring容器集成应用实例</li>
<li>7.5.1. 业务建模</li>
<li>7.5.2. 启动流程</li>
<li>7.5.3. 任务读取</li>
<li>7.5.4. 任务办理</li>
<li>7.6. 使用Spring注解初始化引擎</li>
<li>7.6.1. 使用@EnableActiviti注解</li>
<li>7.6.2. 使用Spring Boot初始化引擎</li>
<li>7.7. CDI模块</li>
<li>7.7.1. 启动示例</li>
<li>7.7.2. 引擎配置与流程定义</li>
<li>7.7.3. 流程定义与启动</li>
<li>7.7.4. 任务办理与完成</li>
<li>7.7.5. 事件监听</li>
<li>7.8. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第8章 邮件服务</legend>
<ul>
<li>8.1. 配置与测试</li>
<li>8.1.1. 搭建邮件系统</li>
<li>8.1.2. 通过Activiti的邮件任务发送邮件</li>
<li>8.1.3. 使用Gmail发送邮件</li>
<li>8.2. 与业务集成</li>
<li>8.2.1. 即时发送邮件</li>
<li>8.2.2. 定时发送邮件</li>
<li>8.3. 本章小节</li>
</ul>
</fieldset>
<fieldset><legend>第9章 多实例</legend>
<ul>
<li>9.1. 非用户任务</li>
<li>9.2. 用户任务多实例</li>
<li>9.2.1. 顺序方式办理</li>
<li>9.2.2. 并行方式办理</li>
<li>9.2.3. 设置结束条件</li>
<li>9.3. 应用实例—请假会签</li>
<li>9.3.1. 流程定义</li>
<li>9.3.2. 任务办理</li>
<li>9.4. 审批意见</li>
<li>9.5. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第10章 子流程与调用活动</legend>
<ul>
<li>10.1. 子流程</li>
<li>10.1.1. 流程定义</li>
<li>10.1.2. 流程办理</li>
<li>10.1.3. 分析流程数据</li>
<li>10.2. 调用活动</li>
<li>10.2.1. 流程定义</li>
<li>10.2.2. 单元测试</li>
<li>10.2.3. 流程办理</li>
<li>10.2.4. 分析流程数据</li>
<li>10.3. 事件子流程</li>
<li>10.3.1. 流程定义</li>
<li>10.3.2. 单元测试</li>
<li>10.4. 多实例支持</li>
<li>10.5. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第11章 事件</legend>
<ul>
<li>11.1 启动事件</li>
<li>11.1.1 定时启动事件</li>
<li>11.1.2 消息启动事件</li>
<li>11.2 结束事件</li>
<li>11.2.1 终止结束事件</li>
<li>11.2.2 消息结束事件</li>
<li>11.3 边界事件</li>
<li>11.3.1 异常边界事件</li>
<li>11.3.2 消息边界事件</li>
<li>11.3.3 信号边界事件</li>
<li>11.4 中间事件</li>
<li>11.5 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第12章 用户任务与附件</legend>
<ul>
<li>12.1. 用户任务</li>
<li>12.1.1 改进任务列表</li>
<li>12.1.2 改进任务表单</li>
<li>12.1.3 任务相关人员</li>
<li>12.1.4 反签收任务</li>
<li>12.1.5 候选人与候选组</li>
<li>12.1.6 改进任务查询</li>
<li>12.2. 子任务</li>
<li>12.3. 手动任务</li>
<li>12.4. 附件</li>
<li>12.5. 改进意见列表</li>
<li>12.6. 任务委派</li>
<li>12.6.1 单元测试</li>
<li>12.6.2 任务表单中的委派</li>
<li>12.7. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第13章 流程数据查询与跟踪</legend>
<ul>
<li>13.1. Query API简介</li>
<li>13.2. 运行时数据查询</li>
<li>13.2.1. 任务查询</li>
<li>13.2.2. 查询参与的流程</li>
<li>13.3. 流程跟踪</li>
<li>13.4. 历史数据查询</li>
<li>13.4.1. 历史活动及表单查询</li>
<li>13.4.2. 已结束流程</li>
<li>13.5. 使用MyBatis查询Map集合</li>
<li>13.6. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第14章 管理员特性</legend>
<ul>
<li>14.1. 流程状态</li>
<li>14.1.1 流程定义状态</li>
<li>14.1.2 作业查询</li>
<li>14.1.3 流程实例状态</li>
<li>14.2. 作业管理</li>
<li>14.2.1 作业执行原理</li>
<li>14.2.2 作业执行异常</li>
<li>14.2.3 独占与异步</li>
<li>14.3. 删除流程实例</li>
<li>14.4. 流程定义权限控制</li>
<li>14.4.1 权限拦截</li>
<li>14.4.2 设置候选启动人和候选启动组</li>
<li>14.4.3 读取候选启动数据</li>
<li>14.5. 读取引擎属性</li>
<li>14.6. 数据库查询</li>
<li>14.7. 用户与组</li>
<li>14.8. 本章小结</li>
</ul>
</fieldset>
<h3>第四部分 高级篇</h3>
<fieldset><legend>第15章 集成WebService</legend>
<ul>
<li>15.1. 发布WebService服务</li>
<li>15.2. 在流程中定义WebService任务</li>
<li>15.3. 在流程中调用WebService</li>
<li>15.4. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第16章 集成规则引擎</legend>
<ul>
<li>16.1. 定义流程与规则</li>
<li>16.1.1. 部署规则文件</li>
<li>16.1.2. 单元测试</li>
<li>16.2. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第17章 集成JPA</legend>
<ul>
<li>17.1. 配置JPA</li>
<li>17.1.1 Standalone模式</li>
<li>17.1.2 Spring模式</li>
<li>17.2. JPA版本的请假流程</li>
<li>17.2.1 启动流程时持久化JPA实体</li>
<li>17.2.2 更改JPA实体属性</li>
<li>17.2.3 清理历史表单数据</li>
<li>17.3. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第18章 整合ESB</legend>
<ul>
<li>18.1 Camel简介</li>
<li>18.2 Camel快速进阶</li>
<li>18.3 Hello World</li>
<li>18.4 添加Camel依赖</li>
<li>18.5 与业务的结合</li>
<li>18.5.1 设计流程定义</li>
<li>18.5.2 定义Camel Flow</li>
<li>18.5.3 启动Camel Flow</li>
<li>18.5.4 单元测试</li>
<li>18.6 ESB简介</li>
<li>18.7 Mule快速进阶</li>
<li>18.8 Hello World</li>
<li>18.9 添加Mule依赖</li>
<li>18.10 与业务的结合</li>
<li>18.10.1 设计流程定义</li>
<li>18.10.2 定义Mule Flow</li>
<li>18.10.3 启动Mule Flow</li>
<li>18.10.4 单元测试</li>
<li>18.11 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第19章 统一身份管理</legend>
<ul>
<li>19.1. 一套典型的身份系统</li>
<li>19.2. 通过引擎接口同步数据</li>
<li>19.2.1 通过引擎接口同步数据</li>
<li>19.2.2 自定义Session工厂方式</li>
<li>19.3. 用视图代替物理表</li>
<li>19.4. 集成LDAP</li>
<li>19.5. 本章小节</li>
</ul>
</fieldset>
<fieldset><legend>第20章 REST API</legend>
<ul>
<li>20.1. 通信协议简介</li>
<li>20.2. REST API概述</li>
<li>20.2.1. REST API认证机制</li>
<li>20.3. 发布REST API</li>
<li>20.3.1. 通过浏览器访问</li>
<li>20.3.2. 通过Http Client访问</li>
<li>20.3.3. 通过Restlet访问</li>
<li>20.3.4. 通过Apache CXF访问</li>
<li>20.4. 集成REST API</li>
<li>20.4.1. 依赖及配置文件</li>
<li>20.4.2. 通过Ajax访问</li>
<li>20.5. 完整示例</li>
<li>20.5.1. 部署流程</li>
<li>20.5.2. 查询Deployment</li>
<li>20.5.3. 查询流程定义</li>
<li>20.5.4. 启动流程</li>
<li>20.5.5. 读取流程变量</li>
<li>20.5.6. 查询任务</li>
<li>20.5.7. 签收任务</li>
<li>20.5.8. 完成任务</li>
<li>20.5.9. 查询历史数据</li>
<li>20.6. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第21章 入侵Activiti</legend>
<ul>
<li>21.1 解析BPMN文件</li>
<li>21.1.1. BpmnModel对象与XML之间的转换</li>
<li>21.1.2. 动态创建流程</li>
<li>21.1.3. BPMN解析处理器</li>
<li>21.2 全局事件处理器</li>
<li>21.2.1. 定义事件处理器</li>
<li>21.2.2. 处理捕获的事件</li>
<li>21.2.3. 事件处理器的异常处理</li>
<li>21.2.4. 动态注册事件处理器</li>
<li>21.2.5. 任务自动转办</li>
<li>21.3 命令与拦截器</li>
<li>21.3.1. 命令与拦截器运行机制</li>
<li>21.3.2. 自定义命令</li>
<li>21.3.3. 命令拦截器</li>
<li>21.4 流程虚拟机—PVM</li>
<li>21.4.1. 简述PVM</li>
<li>21.4.2. Hello PVM</li>
<li>21.4.3. PVM进阶</li>
<li>21.5 本章小结</li>
</ul>
</fieldset>
</div>
<div id="comments"></div>