新書推薦:
《
周易
》
售價:NT$
203.0
《
东南亚的传统与发展
》
售價:NT$
306.0
《
乾隆制造
》
售價:NT$
398.0
《
资治通鉴臣光曰辑存 资治通鉴目录(司马光全集)(全二册)
》
售價:NT$
1316.0
《
明代社会变迁时期生活质量研究
》
售價:NT$
1367.0
《
律令国家与隋唐文明
》
售價:NT$
332.0
《
紫云村(史杰鹏笔下大唐小吏的生死逃亡,新历史主义小说见微之作,附赠5张与小说内容高度契合的宣纸彩插)
》
售價:NT$
449.0
《
现代吴语的研究(中华现代学术名著3)
》
售價:NT$
296.0
|
編輯推薦: |
- Flowable项目创始人Tijs Rademakers作序推荐
- 《深入Activiti流程引擎:核心原理与高阶实战》作者团队又一力作。
- 依据BPMN 2.0规范,贯彻基于业务流程开发的思想和方法。
- 快速、高效、全面掌握Flowable从入门到高级应用的相关知识。
- 丰富的案例及实战应用,提供所有示例程序源代码
|
內容簡介: |
本书旨在为读者提供关于Flowable的全面指南,深入探讨基于业务流程开发的思想和方法。全书分为4篇:基础准备篇介绍Flowable的基础用法、流程设计器集成与使用、工作流引擎配置、数据库设计、核心概念和API等,让读者建立对Flowable的基本认识;常规应用篇介绍Flowable各种功能和特性的配置与使用,让读者掌握Flowable的基础用法;高级实战篇立足实战,介绍如何基于Flowable的扩展特性实现对多种复杂流程场景的支持;架构扩展篇主要介绍提高Flowable性能和增大其容量的措施,并提出一套多引擎架构方案来支撑大容量、高并发和高稳定流程场景。
|
關於作者: |
贺波 国内资深的工作流及BPM领域专家,专注于流程领域十余年,长期致力于BPM技术及相关产品的研发、应用和推广,擅长为国内外大中型企业提供以流程为导向的数字化解决方案。作为第一发明人持有多项BPM领域发明专利。 刘晓鹏 拥有10年互联网系统研发、架构设计经验,在高并发、高性能、高可用等方面有丰富的设计经验。 胡海琴 从事Java EE企业应用开发十余年,曾经参与多个大型企业级项目的设计与开发工作,具有丰富的软件系统设计和开发经验。
|
目錄:
|
基础准备篇
第 1章 初识Flowable 3
1.1 流程、工作流及相关规范 3
1.1.1 流程的概念 3
1.1.2 工作流介绍 3
1.1.3 BPMN规范 6
1.2 Flowable介绍 13
1.2.1 工作流开源框架 13
1.2.2 Flowable的特点 13
1.3 Flowable之初体验 14
1.3.1 下载Flowable安装包 14
1.3.2 启动Flowable UI 14
1.3.3 Flowable初体验:运行Flowable UI 15
1.4 本章小结 20
第 2章 Flowable流程设计器集成与使用 21
2.1 使用IDEA集成Flowable流程设计器 21
2.1.1 在IDEA中安装Flowable BPMN visualizer流程设计器插件 21
2.1.2 使用IDEA绘制BPMN流程图 22
2.2 使用Eclipse集成Flowable流程设计器 25
2.2.1 在Eclipse中安装Flowable BPMN Designer插件 25
2.2.2 使用Eclipse绘制BPMN流程图 26
2.3 本章小结 30
第3章 Flowable工作流引擎配置 31
3.1 Flowable工作流引擎的配置 31
3.1.1 工作流引擎配置对象ProcessEngineConfiguration 31
3.1.2 工作流引擎对象ProcessEngine 35
3.2 Flowable工作流引擎配置文件 36
3.2.1 Flowable配置风格 37
3.2.2 Spring配置风格 37
3.3 数据库连接配置 38
3.3.1 数据库连接属性配置 38
3.3.2 数据库策略属性配置 40
3.4 其他属性配置 40
3.4.1 历史数据级别配置 40
3.4.2 异步执行器配置 41
3.4.3 邮件服务器配置 44
3.4.4 事件日志记录配置 44
3.5 编写第 一个Flowable程序 44
3.5.1 建立工程环境 44
3.5.2 创建配置文件 47
3.5.3 创建流程模型 47
3.5.4 加载流程模型与启动流程 48
3.6 本章小结 49
第4章 Flowable数据库设计 51
4.1 Flowable数据表设计概述 51
4.2 Flowable数据表结构说明 51
4.2.1 通用数据表 51
4.2.2 流程存储表 52
4.2.3 身份数据表 53
4.2.4 运行时数据表 56
4.2.5 历史数据表 64
4.3 Flowable数据库乐观锁 69
4.4 本章小结 69
第5章 Flowable核心概念和API 71
5.1 Flowable核心概念 71
5.1.1 流程定义 71
5.1.2 流程实例 71
5.1.3 执行实例 72
5.2 工作流引擎服务 72
5.3 存储服务API 73
5.3.1 部署流程定义 74
5.3.2 删除流程定义 74
5.3.3 挂起流程定义 75
5.3.4 激活流程定义 77
5.4 运行时服务API 78
5.4.1 发起流程实例 78
5.4.2 唤醒一个等待状态的执行 80
5.5 任务服务API 81
5.5.1 待办任务查询 81
5.5.2 任务办理及权限控制 83
5.5.3 评论和附件管理 86
5.6 历史服务API 88
5.7 管理服务API 89
5.7.1 数据库管理 89
5.7.2 异步任务管理 91
5.7.3 执行命令 93
5.8 身份服务API 95
5.9 利用Flowable Service API完成流程实例 96
5.9.1 Flowable工作流引擎工具类 96
5.9.2 综合使用示例 97
5.10 本章小结 99
常规应用篇
第6章 Flowable身份管理 103
6.1 身份管理引擎 103
6.2 用户管理 104
6.2.1 新建用户 105
6.2.2 查询用户 105
6.2.3 修改用户 111
6.2.4 删除用户 112
6.2.5 设置用户图片 113
6.3 用户组管理 113
6.3.1 新建用户组 114
6.3.2 查询用户组 114
6.3.3 修改用户组 117
6.3.4 删除用户组 117
6.4 用户与用户组关系管理 118
6.4.1 添加用户至用户组 118
6.4.2 从用户组中移除用户 119
6.4.3 查询用户组中的用户 119
6.4.4 查询用户所在的用户组 120
6.5 用户附加信息管理 120
6.6 本章小结 121
第7章 Flowable流程部署 123
7.1 流程资源 123
7.2 流程部署 123
7.2.1 DeploymentBuilder对象 123
7.2.2 执行流程部署 124
7.3 部署结果查询 127
7.3.1 部署记录查询 127
7.3.2 流程定义查询 131
7.3.3 流程资源查询 135
7.4 流程部署完整示例 136
7.4.1 示例代码 136
7.4.2 相关表的变更 137
7.5 本章小结 138
第8章 开始事件与结束事件 139
8.1 事件概述 139
8.2 事件定义 139
8.2.1 定时器事件定义 139
8.2.2 信号事件定义 141
8.2.3 消息事件定义 142
8.2.4 错误事件定义 143
8.2.5 取消事件定义 143
8.2.6 补偿事件定义 143
8.2.7 终止事件定义 143
8.2.8 升级事件定义 143
8.2.9 条件事件定义 144
8.2.10 变量监听器事件定义 144
8.3 开始事件 144
8.3.1 空开始事件 145
8.3.2 定时器开始事件 146
8.3.3 信号开始事件 147
8.3.4 消息开始事件 148
8.3.5 错误开始事件 150
8.3.6 升级开始事件 152
8.3.7 条件开始事件 153
8.3.8 变量监听器开始事件 153
8.4 结束事件 153
8.4.1 空结束事件 154
8.4.2 错误结束事件 154
8.4.3 取消结束事件 156
8.4.4 终止结束事件 159
8.4.5 升级结束事件 159
8.5 本章小结 159
第9章 边界事件与中间事件 161
9.1 边界事件 161
9.1.1 定时器边界事件 161
9.1.2 信号边界事件 163
9.1.3 消息边界事件 165
9.1.4 错误边界事件 166
9.1.5 取消边界事件 168
9.1.6 补偿边界事件 169
9.1.7 条件边界事件 170
9.1.8 变量监听器边界事件 171
9.1.9 升级边界事件 171
9.2 中间事件 172
9.2.1 定时器中间捕获事件 172
9.2.2 信号中间捕获事件和信号中间抛出事件 174
9.2.3 消息中间捕获事件 177
9.2.4 补偿中间抛出事件 177
9.2.5 空中间抛出事件 183
9.2.6 条件中间捕获事件 183
9.2.7 变量监听器中间捕获事件 187
9.2.8 升级中间抛出事件 189
9.3 本章小结 192
第 10章 用户任务、手动任务和接收任务 193
10.1 用户任务 193
10.1.1 用户任务介绍 193
10.1.2 用户任务分配给办理人 195
10.1.3 用户任务分配给候选人(组) 196
10.1.4 动态分配任务 197
10.2 手动任务 202
10.2.1 手动任务介绍 203
10.2.2 手动任务使用示例 203
10.3 接收任务 204
10.3.1 接收任务介绍 204
10.3.2 接收任务使用示例 205
10.4 本章小结 206
第 11章 服务任务、脚本任务和业务规则任务 207
11.1 服务任务 207
11.1.1 服务任务介绍 207
11.1.2 服务任务的属性注入 210
11.1.3 服务任务的可触发和异步执行 218
11.1.4 服务任务的执行结果 218
11.1.5 服务任务的异常处理 219
11.1.6 在JavaDelegate中使用Flowable服务 222
11.2 脚本任务 222
11.2.1 脚本任务介绍 222
11.2.2 脚本任务中流程变量的使用 223
11.2.3 脚本任务的执行结果 223
11.3 业务规则任务 223
11.3.1 业务规则任务介绍 224
11.3.2 业务规则任务使用示例 225
11.4 本章小结 228
第 12章 Flowable扩展的系列任务(一) 229
12.1 邮件任务 229
12.2 Camel任务 230
12.2.1 Camel任务介绍 230
12.2.2 Flowable与Camel集成 230
12.2.3 Camel任务使用示例 233
12.3 Mule任务 235
12.3.1 Mule任务介绍 236
12.3.2 Mule的集成与配置 236
12.3.3 Mule任务使用示例 240
12.4 Shell任务 242
12.4.1 Shell任务介绍 243
12.4.2 Shell任务使用示例 243
12.5 本章小结 244
第 13章 Flowable扩展的系列任务(二) 245
13.1 Http任务 245
13.2 外部工作者任务 250
13.3 Web Service任务 253
13.3.1 Web Service任务介绍 253
13.3.2 Web Service任务使用示例 255
13.4 决策任务 259
13.4.1 决策任务介绍 259
13.4.2 决策任务使用示例 260
13.5 本章小结 264
第 14章 顺序流与网关 265
14.1 顺序流 265
14.1.1 标准顺序流 265
14.1.2 条件顺序流 266
14.1.3 默认顺序流 268
14.2 网关 269
14.2.1 排他网关 269
14.2.2 并行网关 272
14.2.3 包容网关 274
14.2.4 事件网关 277
14.3 本章小结 279
第 15章 子流程、调用活动、泳池与泳道 281
15.1 子流程 281
15.1.1 内嵌子流程 281
15.1.2 事件子流程 285
15.1.3 事务子流程 292
15.2 调用活动 298
15.2.1 调用活动介绍 298
15.2.2 调用活动使用示例 300
15.2.3 内嵌子流程与调用活动的区别 304
15.3 泳池与泳道 304
15.4 本章小结 305
第 16章 监听器 307
16.1 执行监听器与任务监听器 307
16.1.1 执行监听器 307
16.1.2 任务监听器 314
16.2 全局事件监听器 318
16.2.1 全局事件监听器工作原理 319
16.2.2 支持的事件类型 319
16.2.3 事件监听器的实现 322
16.2.4 配置事件监听器 323
16.2.5 事件监听器使用示例 326
16.2.6 日志监听器 329
16.2.7 禁用事件监听器 329
16.3 本章小结 329
第 17章 多实例实战应用 331
17.1 多实例概述 331
17.1.1 多实例的概念 331
17.1.2 多实例的配置 332
17.1.3 多实例与其他流程元素的搭配使用 333
17.2 多实例用户任务应用 335
17.3 多实例服务任务应用 341
17.4 多实例子流程应用 343
17.5 本章小结 346
高级实战篇
第 18章 Flowable核心架构解析 349
18.1 Flowable工作流引擎架构概述 349
18.2 Flowable设计模式 350
18.2.1 Flowable命令模式 350
18.2.2 Flowable责任链模式 351
18.2.3 Flowable命令链模式 352
18.3 核心代码走读 353
18.3.1 流程模型部署 353
18.3.2 流程定义解析 356
18.3.3 流程启动 360
18.3.4 节点流转 363
18.3.5 网关控制 368
18.3.6 流程结束 373
18.4 本章小结 376
第 19章 Flowable集成Spring Boot 377
19.1 Spring Boot简介 377
19.1.1 Spring Boot特性 377
19.1.2 自定义starter 379
19.2 Spring Boot配置详解 381
19.2.1 配置文件读取 381
19.2.2 自定义配置属性 381
19.2.3 多环境配置 382
19.3 手动实现Spring Boot与Flowable 的集成 383
19.3.1 通过Spring Boot配置工作流引擎 384
19.3.2 Flowable、MyBatis与Spring Boot整合 385
19.3.3 通过Spring Boot管理工作流引擎 386
19.4 通过官方starter实现Spring Boot与Flowable的集成 387
19.5 本章小结 387
第 20章 集成外部表单设计器 389
20.1 Flowable支持的表单类型 389
20.1.1 内置表单 389
20.1.2 外置表单 389
20.2 表单数据存储方案简介 390
20.2.1 动态建表存储方案 390
20.2.2 数据宽表存储方案 390
20.2.3 使用Key/Value格式存储方案 391
20.2.4 文档型数据库存储方案 391
20.3 集成外部表单设计器 391
20.3.1 创建React工程 392
20.3.2 定义前后端交互接口 394
20.3.3 创建视图页面 395
20.3.4 配置页面路由 401
20.4 自定义表单引擎 402
20.4.1 创建Spring Boot工程 403
20.4.2 集成Flowable 403
20.4.3 集成自定义表单引擎 407
20.4.4 Web服务接口实现 410
20.5 运行示例 416
20.5.1 新建表单模型 416
20.5.2 新建流程定义并绑定表单模型 418
20.5.3 部署流程 418
20.5.4 发起流程实例 419
20.5.5 填写表单办理任务 419
20.6 本章小结 420
第 21章 集成在线流程设计器bpmn-js 421
21.1 bpmn-js简介 421
21.2 bpmn-js与React的集成 421
21.2.1 React开发环境搭建 421
21.2.2 React与bpmn-js的集成 423
21.2.3 bpmn-js的属性面板实现 425
21.2.4 bpmn-js的汉化 426
21.3 bpmn-js与Flowable的集成 427
21.3.1 bpmn-js扩展用户节点属性 427
21.3.2 保存Flowable流程模型 430
21.4 本章小结 433
第 22章 Flowable自定义扩展(一) 435
22.1 自定义ProcessEngineConfiguration扩展 435
22.1.1 自定义ProcessEngineConfiguration 435
22.1.2 编写工作流引擎配置文件 435
22.1.3 使用示例 436
22.2 自定义流程元素属性 437
22.2.1 使用ExtensionElement自定义流程元素属性 437
22.2.2 使用ExtensionAttribute自定义流程元素属性 438
22.2.3 使用示例 439
22.3 自定义流程活动行为 442
22.3.1 创建自定义流程活动行为类 444
22.3.2 创建自定义流程活动行为工厂 446
22.3.3 在工作流引擎中设置自定义流程活动行为工厂 446
22.3.4 使用示例 446
22.4 自定义事件 447
22.4.1 创建自定义事件类型 447
22.4.2 创建自定义事件 448
22.4.3 实现自定义事件监听器 448
22.4.4 使用示例 449
22.5 自定义流程校验 450
22.5.1 创建自定义校验规则 450
22.5.2 重写流程校验器 451
22.5.3 在工作流引擎中设置自定义流程校验器 451
22.5.4 使用示例 453
22.6 实现多租户动态切换多数据源 454
22.6.1 Flowable对多租户多数据源模式的支持 454
22.6.2 Flowable对多租户多数据源模式的实现 455
22.7 本章小结 460
第 23章 Flowable自定义扩展(二) 461
23.1 自定义Flowable身份管理引擎 461
23.1.1 自定义实体管理器和数据管理器 461
23.1.2 自定义身份管理引擎配置及配置器 466
23.1.3 在工作流引擎中注册自定义身份管理引擎 467
23.1.4 使用示例 469
23.2 适配国产数据库 470
23.2.1 修改SQL脚本模式 470
23.2.2 修改Liquibase模式 473
23.2.3 使用示例 474
23.3 自定义查询 477
23.3.1 使用NativeSql查询 477
23.3.2 使用CustomSql查询 480
23.4 本章小结 484
第 24章 Flowable自定义扩展(三) 485
24.1 自定义流程活动 485
24.1.1 流程定义XML文件解析原理 485
24.1.2 自定义Mq任务的实现 485
24.1.3 使用示例 490
24.2 更换默认Flowable流程定义缓存 491
24.2.1 Flowable流程定义缓存的用途 491
24.2.2 自定义Flowable流程定义缓存 492
24.3 手动创建定时器任务 500
24.3.1 创建自定义作业处理器 500
24.3.2 在工作流引擎中注册自定义作业处理器 501
24.3.3 使用示例 502
24.4 自定义业务日历 503
24.4.1 自定义业务日历的实现 503
24.4.2 使用示例 505
24.5 本章小结 507
第 25章 本土化业务流程场景的实现(一) 509
25.1 动态跳转 509
25.1.1 Flowable对动态跳转的支持 509
25.1.2 动态跳转的基础场景 511
25.1.3 动态跳转与网关结合场景 513
25.1.4 动态跳转与子流程结合场景 517
25.1.5 动态跳转与调用活动结合场景 521
25.2 任务撤回 525
25.2.1 任务撤回的扩展实现 525
25.2.2 任务撤回使用示例 529
25.3 流程撤销 530
25.3.1 流程撤销的扩展实现 531
25.3.2 流程撤销使用示例 533
25.4 本章小结 534
第 26章 本土化业务流程场景的实现(二) 535
26.1 通过代码创建流程模型 535
26.1.1 工具类实现 535
26.1.2 使用示例 538
26.2 为流程实例动态增加临时节点 539
26.2.1 动态增加临时节点的扩展实现 541
26.2.2 动态增加临时节点的使用示例 544
26.3 会签加签/减签 546
26.3.1 会签加签/减签的扩展实现 546
26.3.2 会签加签/减签的使用示例 549
26.4 本章小结 552
第 27章 本土化业务流程场景的实现(三) 553
27.1 流程复活 553
27.1.1 流程复活扩展实现 553
27.1.2 流程复活使用示例 555
27.2 任务知会 557
27.2.1 任务知会扩展实现 557
27.2.2 任务知会使用示例 559
27.3 流程节点自动跳过 561
27.4 流程实例跨版本迁移 562
27.4.1 Flowable对流程实例跨版本迁移的支持 562
27.4.2 流程实例跨版本迁移使用示例 563
27.5 动态修改流程定义元素属性 567
27.5.1 动态修改流程定义元素属性的思路 567
27.5.2 动态修改流程定义元素属性的使用示例 568
27.6 多语种支持 570
27.6.1 Flowable多语种的支持 570
27.6.2 流程多语种设置使用示例 571
27.7 本章小结 573
架构扩展篇
第 28章 Flowable性能与容量优化 577
28.1 ID生成器优化 577
28.1.1 数据库ID生成器DbIdGenerator 577
28.1.2 UUID生成器StrongUuidGenerator 578
28.1.3 自定义ID生成器 579
28.2 定时器优化 580
28.2.1 Flowable定时器执行过程 580
28.2.2 Flowable定时器优化 581
28.3 历史数据异步化 585
28.3.1 Flowable异步历史机制 585
28.3.2 基于RocketMQ的历史数据异步化 588
28.3.3 基于MongoDB的历史数据异步化 590
28.3.4 数据一致性保证 596
28.4 本章小结 598
第 29章 Flowable多引擎架构的初阶实现 599
29.1 多引擎架构分析 599
29.1.1 水平分库分表方案的局限性 599
29.1.2 多引擎架构方案设计 600
29.2 多引擎建模服务实现 601
29.2.1 建模服务搭建 601
29.2.2 工作流引擎服务缓存改造 602
29.3 工作流引擎路由 604
29.3.1 Pika与Spring Boot的整合 605
29.3.2 将路由信息写入Pika 606
29.4 建立服务网关 609
29.4.1 Spring Cloud Gateway简介 609
29.4.2 Spring Cloud Gateway服务搭建 609
29.4.3 新发起流程路由配置 610
29.4.4 已有流程路由配置 611
29.5 本章小结 613
第30章 Flowable多引擎架构的高阶实现 615
30.1 工作流引擎集群搭建 615
30.1.1 Nacos服务搭建 615
30.1.2 基于Nacos的引擎集群构建 616
30.1.3 引擎集群路由配置 618
30.2 网关动态路由配置 619
30.2.1 引擎信息动态配置 619
30.2.2 路由信息动态配置 620
30.3 流程查询服务搭建 623
30.3.1 Elasticsearch与Spring Boot的整合 623
30.3.2 将数据写入Elasticsearch 623
30.3.3 创建查询服务 626
30.4 本章小结 627
|
|