首页>参考读物>计算机科学与技术>软件与程序设计

Activiti实战
作者 : 闫洪磊 著
丛书名 : 实战
出版日期 : 2014-12-25
ISBN : 978-7-111-48595-7
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 504
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

中文书名:Activiti实战
英文书名:Activiti 3 in Action
封面宣传语:
国内Activiti最权威专家撰写,Activiti亲自撰文推荐

图书特色

Activiti领域第一人(最权威专家和布道师)撰写,Activiti项目负责人Tijs Rademakers高度认可并推荐,权威性毋庸置疑
根据Activiti最新版本系统、深度讲解了BPMN 2.0规范,以及Activiti功能、用法、技巧、最佳实践和源代码分析

封底:
Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台。其核心是使用Java开发的快速、稳定的BPMN 2.0流程引擎。它可以运行在任何类型的Java程序中,例如服务器、集群、云服务等,可以完美地与Spring集成,设计非常简约。Activiti在全球得到了广泛的应用,在中国也不例外,已经成为目前最主流的流程引擎。


长期以来,Henry Yan通过他的社区及博客(http://www.kafeitu.me/activiti.html)一直致力于在中国广泛推广Activiti,为Activiti项目做出了巨大(或宝贵)贡献。
很高兴看到他的《Activiti实战》一书将为Activiti 的中国使用者及开发者提供非常多的重要价值。在Activiti项目方面,Henry Yan具有非常专业的背景经验,在此,我向各位包括已经在使用Activiti的开发者及Activiti新手极力推荐此书。

—— Tijs Rademakers 
Activiti 项目负责人

前:
内容简介
这是目前唯一得到Activiti官方认可的著作,由国内Activiti领域第一人撰写,Activiti项目负责人Tijs Rademakers强烈推荐。
本书立足于实践,不仅让读者知其然,全面掌握Activiti架构、功能、用法、技巧和最佳实践,广度足够;而且让读者知其所以然,深入理解Activiti的源代码实现、设计模式和PVM,深度也足够。
全书分四部分:准备篇(第1~2章)介绍了Activiti的概念、特点、应用、体系结构,以及开发环境的搭建和配置;基础篇(第3~4章)首先讲解了Activiti Modeler、Activiti Designer两种流程设计工具的详细使用,然后详细讲解了BPMN 2.0规范;实战篇(第5~14章)系统讲解了Activiti的用法、技巧和最佳实践,包含流程定义、流程实例、任务、子流程、多实例、事件以及监听器等;高级篇(第15~21章)通过集成WebService、规则引擎、JPA、ESB等各种服务和中间件来阐述了Activiti不仅仅是引擎,实际上是一个BPM平台,最后还通过源代码对它的设计模式及PVM进行了分析。


作者简介
闫洪磊 资深软件开发工程师和架构师,为Activiti贡献了大量代码,为Activiti在中国的推广与普及做了大量的工作,在社群中有很高的威望和知名度,被称为中国Activiti领域的第一人。多年来一直从事OA、ERP等系统的开发与架构设计工作,持续关注并深入研究工作流引擎,目前就职于小马购车,担任架构师一职,并负责公司内部工作流平台的建设工作。

图书前言

为什么要写这本书
2011年年末,公司承接了一个保险类的业务系统,包含处理核心业务的ERP系统以及日常办公的OA系统,很明显这两种类型的系统都离不开工作流引擎的支持。我用一周时间对比了几个开源的工作流引擎,最后决定使用Activiti作为整套系统的工作流引擎。
现在回想起来,当初的学习过程是多么的“痛苦”啊!当时Activiti才刚满周岁,除了官方提供的尚能看得过去的用户手册之外,再无其他资料可供参考,这对于国内开发者来说尤为痛苦。仅有的用户手册全部都是英文的,为了学习Activiti只能打开翻译软件硬着头皮把手册看了一遍,当然也离不开打入引擎内部的利器—Javadocs。幸运的是,我的第一份工作(3年时间)是为政府单位开发OA系统,这有助于理解在学习Activiti过程中遇到的一些概念性的内容,在此基础上前后花了一周时间写出了第一个在本书中被讲“烂”掉的请假流程。
国内很多技术爱好者都会使用IM软件或论坛建立技术交流社区,也有一些人开设博客撰写相关技术文章。在开始学习Activiti时,很多人都尝试着去寻找这样的社区,结果由于社区规模小、热度不高,常听到学习资料匮乏以及没有成熟的Demo可供参考这样的声音。我喜欢研究技术也乐于分享,从08年就开始以博客的形式分享一些技术学习心得,在基本掌握Activiti的使用方法后就响应社区的号召在GitHub上公开了Activiti入门Demo项目—kft-activiti-demo,并在个人博客上发布了几篇与Activiti有关的博文。随着国内使用Activiti的企业越来越多,使得Activiti中文社区活跃度大大增加。最初我要花不少时间回答社区中提出的有关Activiti的问题,长此以往,同一个问题每天要回答多次,而且kft-activiti-demo也太过简单,只能作为入门参考,为了能系统地介绍Activiti,就萌发了撰写一本关于Activiti的书籍的想法。
在2012年6月,机械工业出版社华章分社的首席策划杨福川联系我,表示有意向出版一本Activiti方面的书籍。我们一拍即合,于是就有了这本书,这也让我相信机会是留给有准备的人的。这本书原本预计一年完成,不过由于工作与家庭的原因,在2013年一度中断了大半年,导致这本书的难产。在此也对期待已久的读者说声对不起,同时也是因为你们给予的支持与压力促使我最终完成这本书。
在学习和使用Activiti的过程中也遇到了一些Bug或功能缺陷,例如基本上每个初学者都会遇到的流程图中文乱码问题。对于这些问题最初会通过Bug跟踪系统向官方提交问题,在Activiti的源码从SVN切换到GitHub后就可以很方便地让全球的开发者参与进来。笔者也借助GitHub这个平台为Activiti贡献了一些代码,借此机会也呼吁技术爱好者多多参与开源。
读者对象
本书以“理论+实战”的方式引导读者学习,不仅介绍如何使用Activiti,还详细介绍了其遵循的BPMN 2.0规范,所以无论读者是以技术为主还是以业务需求为主,都适合阅读本书。虽然本书中大部分示例都是B/S架构,但不表示Activiti不能在C/S架构中使用。另外,Activiti也不是只针对Java语言的,被其官方定义为BPM平台,借助REST也可以让非Java语言的系统使用Activiti。
适合阅读本书的读者有以下几类:
Activiti用户和爱好者
Activiti代码贡献者
流程引擎相关的项目经理或者需求人员
Activiti开发者,或运维人员
使用Activiti开发流程平台的公司
如何阅读本书
本书分为四大部分:
第一部分(第1、2章)为准备篇,介绍整个体系结构及其特点,并为后面的内容配置开发环境。
第二部分(第3、4章)为基础篇,介绍两种流程设计器的使用,以及BPMN 2.0规范。
第三部分(第5~14章)为实战篇,本书中内容最多的部分,该部分以实战为主,包括流程定义、流程实例、任务、子流程、多实例、事件以及监听器等。
第四部分(第15~21章)为高级篇,通过集成各种服务、中间件来阐述Activiti不仅是引擎,更是一个BPM平台,最后还深入源码内部剖析Activiti的设计模式及PVM。
勘误和支持
由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或不准确的地方,恳请读者批评指正。为此,特意创建一个在线支持与应急方案的站点http://www.kafeitu.me/activiti-in-action.html。大家可以将书中的错误发布在Bug勘误表页面中,同时,在遇到任何问题时,你可以访问其Q&A页面,笔者将尽量在线上为你提供最满意的解答。书中的全部源文件除可以从华章网站下载外,还可以从笔者提供的这个网址下载,笔者也会将相应的功能更新及时更正出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱yanhonglei@gmail.com,期待能够得到你们的真挚反馈。
致谢
首先要感谢Tom Beayens发起了这么优秀的开源项目,以及Alfresco公司Tijs Rademakers带领的Activiti团队对此项目的无偿贡献与支持。
感谢Activiti中文社区中每一位充满激情的朋友—袁启勋、临远、翔子、姜维、王垒、于广岳、第二少、小股东、陈浩、jackyrong、卖字母为生,以及名单之外的更多朋友,感谢他们长期以来对社区的支持和贡献。
感谢机械工业出版社华章分社的编辑杨福川和姜影,我始终坚信专业的事找专业的人做,两位在这两年的时间中从各个方面支持我的写作,他们的鼓励和帮助引导我顺利完成全部书稿。
感谢我的驴友们,和他们一起登山探险让我精神得以放松,希望以后的空余时间我们继续用双脚丈量大地。
最后感谢我的家人,感谢他们对我的支持和鼓励。
谨以此书献给我最亲爱的家人,以及众多热爱Activiti的朋友们!

闫洪磊(咖啡兔)
于上海

上架指导

计算机\程序设计

封底文字

长期以来,Henry Yan通过他的社区及博客(http://www.kafeitu.me/activiti.html)一直致力于在中国广泛推广Activiti,为Activiti项目做出了巨大(或宝贵)贡献。
很高兴看到他的《Activiti实战》一书将为Activiti 的中国使用者及开发者提供非常多的重要价值。在Activiti项目方面,Henry Yan具有非常专业的背景经验,在此,我向各位包括已经在使用Activiti的开发者及Activiti新手极力推荐此书。

——Tijs Rademakers Activiti 项目负责人

Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台。其核心是使用Java开发的快速、稳定的BPMN 2.0流程引擎。它可以运行在任何类型的Java程序中,例如服务器、集群、云服务等,可以完美地与Spring集成,设计非常简约。Activiti在全球得到了广泛的应用,在中国也不例外,已经成为目前最主流的流程引擎。

(加开源力量logo)

作者简介

闫洪磊 著:暂无简介

图书目录

本书推荐
前言
第一部分 准 备 篇
第1章 认识Activiti2
1.1 什么是Activiti2
1.2 工作流基础3
1.2.1 什么是BPM3
1.2.2 工作流生命周期4
1.2.3 什么是BPMN5
1.3 Activiti的特点5
1.4 Activiti的应用6
1.5 Activiti架构与组件7
1.6 Activiti与jBPM5比较8
1.7 本章小结9
第2章 搭建Activiti开发环境10
2.1 下载Activiti10
2.1.1 目录结构10
2.1.2 Javadocs12
2.2 环境配置检查14
2.2.1 检查并安装JDK14
2.2.2 检查并安装Ant14
2.2.3 检查并安装Maven15
2.3 配置文件介绍16
2.3.1 Activiti配置文件16
2.3.2 Maven配置文件17
2.4 Hello World18
2.4.1 最简单的流程定义18
2.4.2 创建单元测试类20
2.4.3 运行Hello World21
2.4.4 添加业务节点21
2.5 Activiti Explorer25
2.5.1 配置并运行Activiti Explorer25
2.5.2 使用Activiti Explorer26
2.6 本章小结29
第二部分 基 础 篇
第3章 流程设计工具32
3.1 基于B/S架构的流程设计器Activiti Modeler32
3.1.1 Activiti Modeler特点32
3.1.2 下载signavio-core-components33
3.1.3 配置打包与运行33
3.1.4 Windows用户打包36
3.1.5 设计请假流程37
3.1.6 导出bpmn2.0.xml41
3.2 在Activiti Explorer中使用Activiti Modeler41
3.3 基于Eclipse插件的流程设计器Activiti Designer44
3.3.1 Activiti Designer特点44
3.3.2 安装Activiti Designer45
3.3.3 设计流程46
3.3.4 自动化51
3.3.5 升级历史遗留的流程设计55
3.3.6 导入Activiti Modeler设计56
3.3.7 泳池与泳道57
3.3.8 在Activiti Designer中使用泳道与泳池58
3.4 本章小结60
第4章 Activiti与BPMN 2.0规范61
4.1 启动事件与结束事件62
4.1.1 启动事件62
4.1.2 结束事件66
4.2 顺序流69
4.2.1 标准顺序流69
4.2.2 条件顺序流69
4.3 任务70
4.3.1 用户任务70
4.3.2 脚本任务73
4.3.3 Java Service任务74
4.3.4Web Service任务75
4.3.5业务规则任务76
4.3.6邮件任务77
4.3.7Camel任务79
4.3.8Mule任务80
4.3.9手动任务81
4.3.10接收任务81
4.3.11Shell任务81
4.3.12多实例82
4.4网关85
4.4.1排他网关85
4.4.2并行网关87
4.4.3包容网关89
4.4.4事件网关90
4.5子流程与调用活动92
4.5.1子流程92
4.5.2 调用活动94
4.5.3 事件子流程95
4.5.4事务子流程97
4.6边界与中间事件98
4.6.1边界事件99
4.6.2中间捕获事件103
4.6.3中间抛出事件107
4.7监听器109
4.7.1执行监听器109
4.7.2任务监听器111
4.8本章小结112
第三部分实战篇
第5章用户与组及部署管理116
5.1用户与组116
5.1.1用户117
5.1.2组118
5.1.3用户与组的关系119
5.1.4用户任务中的用户与组120
5.2部署流程资源126
5.2.1classpath方式126
5.2.2InputStream方式128
5.2.3字符串方式128
5.2.4zip/bar格式压缩包方式129
5.3流程部署及资源读取131
5.3.1读取已部署流程定义133
5.3.2从客户端部署流程134
5.3.3读取流程定义的XML137
5.3.4读取流程定义的图片及图片中的中文乱码138
5.3.5删除部署143
5.4本章小结144
第6章 任务表单145
6.1动态表单145
6.1.1流程定义146
6.1.2单元测试151
6.1.3在Activiti Explorer中运行流程154
6.2实现自己的Activiti Explorer160
6.2.1完善身份验证功能160
6.2.2流程启动表单162
6.2.3任务签收与办理165
6.2.4自定义表单的字段类型169
6.3 外置表单171
6.3.1流程定义172
6.3.2单元测试173
6.3.3自定义表单引擎174
6.3.4 读取流程启动表单175
6.3.5任务签收与办理179
6.4本章小结181
第7章 Activiti与容器集成182
7.1 流程引擎工厂182
7.1.1 创建引擎的方式182
7.1.2 配置 ProcessEngineFactory-Bean183
7.2 自动部署流程定义187
7.3 表达式189
7.3.1 表达式基础189
7.3.2 表达式示例190
7.3.3 使用Spring管理变量193
7.4 监听器195
7.5 Spring容器集成应用实例199
7.5.1 业务建模200
7.5.2 启动流程200
7.5.3 任务读取203
7.5.4 任务办理204
7.6 使用Spring注解初始化引擎208
7.6.1 使用@EnableActiviti注解208
7.6.2 使用Spring Boot初始化引擎210
7.7 CDI模块212
7.7.1 启动示例212
7.7.2 引擎配置与流程定义213
7.7.3 流程定义与启动214
7.7.4 任务办理与完成218
7.7.5 事件监听220
7.8 本章小结221
第8章 邮件服务222
8.1 配置与测试222
8.1.1 搭建邮件系统222
8.1.2 通过Activiti的邮件任务发送邮件226
8.1.3 使用Gmail发送邮件227
8.2 与业务集成229
8.2.1 即时发送邮件229
8.2.2 定时发送邮件231
8.3 本章小结233
第9章 多实例234
9.1 非用户任务234
9.2 用户任务多实例236
9.2.1 顺序方式办理236
9.2.2 并行方式办理237
9.2.3 设置结束条件238
9.3 应用实例—请假会签240
9.3.1 流程定义240
9.3.2 任务办理243
9.4 审批意见245
9.5 本章小结247
第10章 子流程与调用活动248
10.1 子流程249
10.1.1 流程定义250
10.1.2 流程办理253
10.1.3 分析流程数据255
10.2 调用活动256
10.2.1 流程定义256
10.2.2 单元测试258
10.2.3 流程办理259
10.2.4 分析流程数据260
10.3 事件子流程261
10.3.1 流程定义262
10.3.2 单元测试263
10.4 多实例支持264
10.5 本章小结266
第11章 事件267
11.1 启动事件267
11.1.1 定时启动事件267
11.1.2 消息启动事件271
11.2 结束事件274
11.3 边界事件276
11.3.1 异常边界事件276
11.3.2 消息边界事件278
11.3.3 信号边界事件282
11.4 中间事件284
11.5 本章小结286
第12章 用户任务与附件287
12.1 用户任务288
12.1.1 改进任务列表288
12.1.2 改进任务表单289
12.1.3 任务相关人员291
12.1.4 反签收任务295
12.1.5 候选人与候选组296
12.1.6 改进任务查询298
12.2 子任务299
12.3 手动任务302
12.4 附件303
12.5 改进意见列表305
12.6 任务委派307
12.6.1 单元测试308
12.6.2 任务表单中的委派309
12.7 本章小结310
第13章 流程数据查询与跟踪312
13.1 Query API简介312
13.2 运行时数据查询314
13.2.1 任务查询314
13.2.2 查询参与的流程317
13.3 流程图跟踪320
13.4 历史数据查询325
13.4.1 查询历史活动及表单325
13.4.2 查询已归档流程326
13.5 基于MyBatis的CustomSql查询327
13.5.1 定义Mapper接口329
13.5.2 展示数据330
13.6 本章小结330
第14章 管理员特性331
14.1 流程状态331
14.1.1 流程定义状态331
14.1.2 作业查询334
14.1.3 流程实例状态336
14.2 作业管理338
14.2.1 作业执行原理339
14.2.2 作业执行异常339
14.2.3 独占与异步341
14.3 删除流程实例345
14.4 流程定义权限控制347
14.4.1 权限拦截347
14.4.2 设置候选启动人和候选启动组349
14.4.3 读取候选启动数据351
14.5 读取引擎属性353
14.6 数据库查询353
14.7 用户与组355
14.8 本章小结356
第四部分 高级篇
第15章 集成WebService358
15.1发布WebService服务359
15.2在流程中定义WebService任务362
15.3 在流程中调用WebService364
15.4本章小结365
第16章 集成规则引擎367
16.1 定义流程与规则367
16.1.1部署规则文件369
16.1.2单元测试369
16.2本章小结371
第17章 集成JPA372
17.1配置JPA372
17.1.1Standalone模式373
17.1.2Spring模式373
17.2JPA版本的请假流程374
17.2.1启动流程时持久化JPA实体375
17.2.2更改JPA实体属性378
17.2.3清理历史表单数据381
17.3本章小结382
第18章 集成ESB383
18.1Camel简介与快速入门383
18.2在流程中调用Camel385
18.2.1Camel依赖及配置386
18.2.2定义Camel路由387
18.2.3执行单元测试388
18.2.4URI输入参数388
18.2.5URI输出参数390
18.3异步Camel任务391
18.4在Camel中启动流程391
18.5集成Mule392
18.5.1Mule快速入门393
18.5.2Mule、Spring与Activiti集成394
18.5.3在流程中调用Mule396
18.6本章小结398
第19章 统一身份管理399
19.1一套典型的身份系统399
19.2引擎身份接口方式401
19.3用视图代替物理表406
19.4集成LDAP406
19.5本章小结409
第20章 REST服务410
20.1通信协议简介410
20.2REST API概述411
20.3发布REST API413
20.3.1通过浏览器访问414
20.3.2通过HttpClient访问415
20.3.3通过Restlet访问416
20.3.4通过Apache CXF访问417
20.4集成REST API417
20.4.1依赖及配置文件418
20.4.2通过Ajax访问419
20.5完整示例420
20.5.1部署流程421
20.5.2查询Deployment422
20.5.3查询流程定义423
20.5.4启动流程424
20.5.5读取流程变量428
20.5.6查询任务429
20.5.7签收任务431
20.5.8完成任务431
20.5.9查询历史数据433
20.6集成流程图跟踪组件Diagram Viewer434
20.6.1准备资源文件434
20.6.2准备配置文件434
20.6.3访问Diagram Viewer跟踪流程435
20.7基于REST服务搭建流程中心437
20.7.1基础架构438
20.7.2表单模式选型439
20.7.3统一的组件440
20.7.4事务管理440
20.8集成流程设计器Activiti Modeler440
20.8.1准备资源文件441
20.8.2准备配置文件442
20.8.3更改默认配置443
20.8.4创建模型443
20.8.5导出模型的流程XML445
20.8.6把模型转换为流程定义446
20.8.7把流程定义转换为模型447
20.8.8删除模型449
20.9本章小结449
第21章 入侵Activiti450
21.1解析BPMN文件450
21.1.1BpmnModel对象与XML之间的转换451
21.1.2动态创建流程454
21.1.3BPMN解析处理器457
21.2全局事件处理器461
21.2.1定义事件处理器463
21.2.2处理捕获的事件467
21.2.3事件处理器的异常处理469
21.2.4动态注册事件处理器470
21.2.5任务自动转办471
21.2.6事件日志474
21.3命令与拦截器477
21.3.1命令与拦截器运行机制478
21.3.2自定义命令480
21.3.3命令拦截器482
21.4流程虚拟机—PVM484
21.4.1简述PVM484
21.4.2Hello PVM484
21.4.3PVM进阶487
21.5本章小结489

教学资源推荐
作者: Brian W.Kernighan
作者: [美] 劳拉·格雷泽(Laura Graesser) 龚辉伦(Wah Loon Keng) 著
作者: Maurice Herlihy;Nir Shavit
参考读物推荐
作者: 罗冰 著
作者: 任侃 曹越 吴杰 等著
作者: (德)Ralph Steyer 著