商品详情
_ 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 31.1 流程、工作流及相关规范 31.1.1 流程的概念 31.1.2 工作流介绍 31.1.3 BPMN规范 61.2 Flowable介绍 131.2.1 工作流开源框架 131.2.2 Flowable的特点 131.3 Flowable之初体验 141.3.1 下载Flowable安装包 141.3.2 启动Flowable UI 141.3.3 Flowable初体验:运行Flowable UI 151.4 本章小结 20第 2章 Flowable流程设计器集成与使用 212.1 使用IDEA集成Flowable流程设计器 212.1.1 在IDEA中安装Flowable BPMN visualizer流程设计器插件 212.1.2 使用IDEA绘制BPMN流程图 222.2 使用Eclipse集成Flowable流程设计器 252.2.1 在Eclipse中安装Flowable BPMN Designer插件 252.2.2 使用Eclipse绘制BPMN流程图 262.3 本章小结 30第3章 Flowable工作流引擎配置 313.1 Flowable工作流引擎的配置 313.1.1 工作流引擎配置对象ProcessEngineConfiguration 313.1.2 工作流引擎对象ProcessEngine 353.2 Flowable工作流引擎配置文件 363.2.1 Flowable配置风格 373.2.2 Spring配置风格 373.3 数据库连接配置 383.3.1 数据库连接属性配置 383.3.2 数据库策略属性配置 403.4 其他属性配置 403.4.1 历史数据级别配置 403.4.2 异步执行器配置 413.4.3 邮件服务器配置 443.4.4 事件日志记录配置 443.5 编写第 一个Flowable程序 443.5.1 建立工程环境 443.5.2 创建配置文件 473.5.3 创建流程模型 473.5.4 加载流程模型与启动流程 483.6 本章小结 49第4章 Flowable数据库设计 514.1 Flowable数据表设计概述 514.2 Flowable数据表结构说明 514.2.1 通用数据表 514.2.2 流程存储表 524.2.3 身份数据表 534.2.4 运行时数据表 564.2.5 历史数据表 644.3 Flowable数据库乐观锁 694.4 本章小结 69第5章 Flowable核心概念和API 715.1 Flowable核心概念 715.1.1 流程定义 715.1.2 流程实例 715.1.3 执行实例 725.2 工作流引擎服务 725.3 存储服务API 735.3.1 部署流程定义 745.3.2 删除流程定义 745.3.3 挂起流程定义 755.3.4 激活流程定义 775.4 运行时服务API 785.4.1 发起流程实例 785.4.2 唤醒一个等待状态的执行 805.5 任务服务API 815.5.1 待办任务查询 815.5.2 任务办理及权限控制 835.5.3 评论和附件管理 865.6 历史服务API 885.7 管理服务API 895.7.1 数据库管理 895.7.2 异步任务管理 915.7.3 执行命令 935.8 身份服务API 955.9 利用Flowable Service API完成流程实例 965.9.1 Flowable工作流引擎工具类 965.9.2 综合使用示例 975.10 本章小结 99常规应用篇第6章 Flowable身份管理 1036.1 身份管理引擎 1036.2 用户管理 1046.2.1 新建用户 1056.2.2 查询用户 1056.2.3 修改用户 1116.2.4 删除用户 1126.2.5 设置用户图片 1136.3 用户组管理 1136.3.1 新建用户组 1146.3.2 查询用户组 1146.3.3 修改用户组 1176.3.4 删除用户组 1176.4 用户与用户组关系管理 1186.4.1 添加用户至用户组 1186.4.2 从用户组中移除用户 1196.4.3 查询用户组中的用户 1196.4.4 查询用户所在的用户组 1206.5 用户附加信息管理 1206.6 本章小结 121第7章 Flowable流程部署 1237.1 流程资源 1237.2 流程部署 1237.2.1 DeploymentBuilder对象 1237.2.2 执行流程部署 1247.3 部署结果查询 1277.3.1 部署记录查询 1277.3.2 流程定义查询 1317.3.3 流程资源查询 1357.4 流程部署完整示例 1367.4.1 示例代码 1367.4.2 相关表的变更 1377.5 本章小结 138第8章 开始事件与结束事件 1398.1 事件概述 1398.2 事件定义 1398.2.1 定时器事件定义 1398.2.2 信号事件定义 1418.2.3 消息事件定义 1428.2.4 错误事件定义 1438.2.5 取消事件定义 1438.2.6 补偿事件定义 1438.2.7 终止事件定义 1438.2.8 升级事件定义 1438.2.9 条件事件定义 1448.2.10 变量监听器事件定义 1448.3 开始事件 1448.3.1 空开始事件 1458.3.2 定时器开始事件 1468.3.3 信号开始事件 1478.3.4 消息开始事件 1488.3.5 错误开始事件 1508.3.6 升级开始事件 1528.3.7 条件开始事件 1538.3.8 变量监听器开始事件 1538.4 结束事件 1538.4.1 空结束事件 1548.4.2 错误结束事件 1548.4.3 取消结束事件 1568.4.4 终止结束事件 1598.4.5 升级结束事件 1598.5 本章小结 159第9章 边界事件与中间事件 1619.1 边界事件 1619.1.1 定时器边界事件 1619.1.2 信号边界事件 1639.1.3 消息边界事件 1659.1.4 错误边界事件 1669.1.5 取消边界事件 1689.1.6 补偿边界事件 1699.1.7 条件边界事件 1709.1.8 变量监听器边界事件 1719.1.9 升级边界事件 1719.2 中间事件 1729.2.1 定时器中间捕获事件 1729.2.2 信号中间捕获事件和信号中间抛出事件 1749.2.3 消息中间捕获事件 1779.2.4 补偿中间抛出事件 1779.2.5 空中间抛出事件 1839.2.6 条件中间捕获事件 1839.2.7 变量监听器中间捕获事件 1879.2.8 升级中间抛出事件 1899.3 本章小结 192第 10章 用户任务、手动任务和接收任务 19310.1 用户任务 19310.1.1 用户任务介绍 19310.1.2 用户任务分配给办理人 19510.1.3 用户任务分配给候选人(组) 19610.1.4 动态分配任务 19710.2 手动任务 20210.2.1 手动任务介绍 20310.2.2 手动任务使用示例 20310.3 接收任务 20410.3.1 接收任务介绍 20410.3.2 接收任务使用示例 20510.4 本章小结 206第 11章 服务任务、脚本任务和业务规则任务 20711.1 服务任务 20711.1.1 服务任务介绍 20711.1.2 服务任务的属性注入 21011.1.3 服务任务的可触发和异步执行 21811.1.4 服务任务的执行结果 21811.1.5 服务任务的异常处理 21911.1.6 在JavaDelegate中使用Flowable服务 22211.2 脚本任务 22211.2.1 脚本任务介绍 22211.2.2 脚本任务中流程变量的使用 22311.2.3 脚本任务的执行结果 22311.3 业务规则任务 22311.3.1 业务规则任务介绍 22411.3.2 业务规则任务使用示例 22511.4 本章小结 228第 12章 Flowable扩展的系列任务(一) 22912.1 邮件任务 22912.2 Camel任务 23012.2.1 Camel任务介绍 23012.2.2 Flowable与Camel集成 23012.2.3 Camel任务使用示例 23312.3 Mule任务 23512.3.1 Mule任务介绍 23612.3.2 Mule的集成与配置 23612.3.3 Mule任务使用示例 24012.4 Shell任务 24212.4.1 Shell任务介绍 24312.4.2 Shell任务使用示例 24312.5 本章小结 244第 13章 Flowable扩展的系列任务(二) 24513.1 Http任务 24513.2 外部工作者任务 25013.3 Web Service任务 25313.3.1 Web Service任务介绍 25313.3.2 Web Service任务使用示例 25513.4 决策任务 25913.4.1 决策任务介绍 25913.4.2 决策任务使用示例 26013.5 本章小结 264第 14章 顺序流与网关 26514.1 顺序流 26514.1.1 标准顺序流 26514.1.2 条件顺序流 26614.1.3 默认顺序流 26814.2 网关 26914.2.1 排他网关 26914.2.2 并行网关 27214.2.3 包容网关 27414.2.4 事件网关 27714.3 本章小结 279第 15章 子流程、调用活动、泳池与泳道 28115.1 子流程 28115.1.1 内嵌子流程 28115.1.2 事件子流程 28515.1.3 事务子流程 29215.2 调用活动 29815.2.1 调用活动介绍 29815.2.2 调用活动使用示例 30015.2.3 内嵌子流程与调用活动的区别 30415.3 泳池与泳道 30415.4 本章小结 305第 16章 监听器 30716.1 执行监听器与任务监听器 30716.1.1 执行监听器 30716.1.2 任务监听器 31416.2 全局事件监听器 31816.2.1 全局事件监听器工作原理 31916.2.2 支持的事件类型 31916.2.3 事件监听器的实现 32216.2.4 配置事件监听器 32316.2.5 事件监听器使用示例 32616.2.6 日志监听器 32916.2.7 禁用事件监听器 32916.3 本章小结 329第 17章 多实例实战应用 33117.1 多实例概述 33117.1.1 多实例的概念 33117.1.2 多实例的配置 33217.1.3 多实例与其他流程元素的搭配使用 33317.2 多实例用户任务应用 33517.3 多实例服务任务应用 34117.4 多实例子流程应用 34317.5 本章小结 346高级实战篇第 18章 Flowable核心架构解析 34918.1 Flowable工作流引擎架构概述 34918.2 Flowable设计模式 35018.2.1 Flowable命令模式 35018.2.2 Flowable责任链模式 35118.2.3 Flowable命令链模式 35218.3 核心代码走读 35318.3.1 流程模型部署 35318.3.2 流程定义解析 35618.3.3 流程启动 36018.3.4 节点流转 36318.3.5 网关控制 36818.3.6 流程结束 37318.4 本章小结 376第 19章 Flowable集成Spring Boot 37719.1 Spring Boot简介 37719.1.1 Spring Boot特性 37719.1.2 自定义starter 37919.2 Spring Boot配置详解 38119.2.1 配置文件读取 38119.2.2 自定义配置属性 38119.2.3 多环境配置 38219.3 手动实现Spring Boot与Flowable 的集成 38319.3.1 通过Spring Boot配置工作流引擎 38419.3.2 Flowable、MyBatis与Spring Boot整合 38519.3.3 通过Spring Boot管理工作流引擎 38619.4 通过官方starter实现Spring Boot与Flowable的集成 38719.5 本章小结 387第 20章 集成外部表单设计器 38920.1 Flowable支持的表单类型 38920.1.1 内置表单 38920.1.2 外置表单 38920.2 表单数据存储方案简介 39020.2.1 动态建表存储方案 39020.2.2 数据宽表存储方案 39020.2.3 使用Key/Value格式存储方案 39120.2.4 文档型数据库存储方案 39120.3 集成外部表单设计器 39120.3.1 创建React工程 39220.3.2 定义前后端交互接口 39420.3.3 创建视图页面 39520.3.4 配置页面路由 40120.4 自定义表单引擎 40220.4.1 创建Spring Boot工程 40320.4.2 集成Flowable 40320.4.3 集成自定义表单引擎 40720.4.4 Web服务接口实现 41020.5 运行示例 41620.5.1 新建表单模型 41620.5.2 新建流程定义并绑定表单模型 41820.5.3 部署流程 41820.5.4 发起流程实例 41920.5.5 填写表单办理任务 41920.6 本章小结 420第 21章 集成在线流程设计器bpmn_js 42121.1 bpmn_js简介 42121.2 bpmn_js与React的集成 42121.2.1 React开发环境搭建 42121.2.2 React与bpmn_js的集成 42321.2.3 bpmn_js的属性面板实现 42521.2.4 bpmn_js的汉化 42621.3 bpmn_js与Flowable的集成 42721.3.1 bpmn_js扩展用户节点属性 42721.3.2 保存Flowable流程模型 43021.4 本章小结 433第 22章 Flowable自定义扩展(一) 43522.1 自定义ProcessEngineConfiguration扩展 43522.1.1 自定义ProcessEngineConfiguration 43522.1.2 编写工作流引擎配置文件 43522.1.3 使用示例 43622.2 自定义流程元素属性 43722.2.1 使用ExtensionElement自定义流程元素属性 43722.2.2 使用ExtensionAttribute自定义流程元素属性 43822.2.3 使用示例 43922.3 自定义流程活动行为 44222.3.1 创建自定义流程活动行为类 44422.3.2 创建自定义流程活动行为工厂 44622.3.3 在工作流引擎中设置自定义流程活动行为工厂 44622.3.4 使用示例 44622.4 自定义事件 44722.4.1 创建自定义事件类型 44722.4.2 创建自定义事件 44822.4.3 实现自定义事件监听器 44822.4.4 使用示例 44922.5 自定义流程校验 45022.5.1 创建自定义校验规则 45022.5.2 重写流程校验器 45122.5.3 在工作流引擎中设置自定义流程校验器 45122.5.4 使用示例 45322.6 实现多租户动态切换多数据源 45422.6.1 Flowable对多租户多数据源模式的支持 45422.6.2 Flowable对多租户多数据源模式的实现 45522.7 本章小结 460第 23章 Flowable自定义扩展(二) 46123.1 自定义Flowable身份管理引擎 46123.1.1 自定义实体管理器和数据管理器 46123.1.2 自定义身份管理引擎配置及配置器 46623.1.3 在工作流引擎中注册自定义身份管理引擎 46723.1.4 使用示例 46923.2 适配国产数据库 47023.2.1 修改SQL脚本模式 47023.2.2 修改Liquibase模式 47323.2.3 使用示例 47423.3 自定义查询 47723.3.1 使用NativeSql查询 47723.3.2 使用CustomSql查询 48023.4 本章小结 484第 24章 Flowable自定义扩展(三) 48524.1 自定义流程活动 48524.1.1 流程定义XML文件解析原理 48524.1.2 自定义Mq任务的实现 48524.1.3 使用示例 49024.2 更换默认Flowable流程定义缓存 49124.2.1 Flowable流程定义缓存的用途 49124.2.2 自定义Flowable流程定义缓存 49224.3 手动创建定时器任务 50024.3.1 创建自定义作业处理器 50024.3.2 在工作流引擎中注册自定义作业处理器 50124.3.3 使用示例 50224.4 自定义业务日历 50324.4.1 自定义业务日历的实现 50324.4.2 使用示例 50524.5 本章小结 507第 25章 本土化业务流程场景的实现(一) 50925.1 动态跳转 50925.1.1 Flowable对动态跳转的支持 50925.1.2 动态跳转的基础场景 51125.1.3 动态跳转与网关结合场景 51325.1.4 动态跳转与子流程结合场景 51725.1.5 动态跳转与调用活动结合场景 52125.2 任务撤回 52525.2.1 任务撤回的扩展实现 52525.2.2 任务撤回使用示例 52925.3 流程撤销 53025.3.1 流程撤销的扩展实现 53125.3.2 流程撤销使用示例 53325.4 本章小结 534第 26章 本土化业务流程场景的实现(二) 53526.1 通过代码创建流程模型 53526.1.1 工具类实现 53526.1.2 使用示例 53826.2 为流程实例动态增加临时节点 53926.2.1 动态增加临时节点的扩展实现 54126.2.2 动态增加临时节点的使用示例 54426.3 会签加签/减签 54626.3.1 会签加签/减签的扩展实现 54626.3.2 会签加签/减签的使用示例 54926.4 本章小结 552第 27章 本土化业务流程场景的实现(三) 55327.1 流程复活 55327.1.1 流程复活扩展实现 55327.1.2 流程复活使用示例 55527.2 任务知会 55727.2.1 任务知会扩展实现 55727.2.2 任务知会使用示例 55927.3 流程节点自动跳过 56127.4 流程实例跨版本迁移 56227.4.1 Flowable对流程实例跨版本迁移的支持 56227.4.2 流程实例跨版本迁移使用示例 56327.5 动态修改流程定义元素属性 56727.5.1 动态修改流程定义元素属性的思路 56727.5.2 动态修改流程定义元素属性的使用示例 56827.6 多语种支持 57027.6.1 Flowable多语种的支持 57027.6.2 流程多语种设置使用示例 57127.7 本章小结 573架构扩展篇第 28章 Flowable性能与容量优化 57728.1 ID生成器优化 57728.1.1 数据库ID生成器DbIdGenerator 57728.1.2 UUID生成器StrongUuidGenerator 57828.1.3 自定义ID生成器 57928.2 定时器优化 58028.2.1 Flowable定时器执行过程 58028.2.2 Flowable定时器优化 58128.3 历史数据异步化 58528.3.1 Flowable异步历史机制 58528.3.2 基于RocketMQ的历史数据异步化 58828.3.3 基于MongoDB的历史数据异步化 59028.3.4 数据一致性保证 59628.4 本章小结 598第 29章 Flowable多引擎架构的初阶实现 59929.1 多引擎架构分析 59929.1.1 水平分库分表方案的局限性 59929.1.2 多引擎架构方案设计 60029.2 多引擎建模服务实现 60129.2.1 建模服务搭建 60129.2.2 工作流引擎服务缓存改造 60229.3 工作流引擎路由 60429.3.1 Pika与Spring Boot的整合 60529.3.2 将路由信息写入Pika 60629.4 建立服务网关 60929.4.1 Spring Cloud Gateway简介 60929.4.2 Spring Cloud Gateway服务搭建 60929.4.3 新发起流程路由配置 61029.4.4 已有流程路由配置 61129.5 本章小结 613第30章 Flowable多引擎架构的高阶实现 61530.1 工作流引擎集群搭建 61530.1.1 Nacos服务搭建 61530.1.2 基于Nacos的引擎集群构建 61630.1.3 引擎集群路由配置 61830.2 网关动态路由配置 61930.2.1 引擎信息动态配置 61930.2.2 路由信息动态配置 62030.3 流程查询服务搭建 62330.3.1 Elasticsearch与Spring Boot的整合 62330.3.2 将数据写入Elasticsearch 62330.3.3 创建查询服务 62630.4 本章小结 627
- 新华一城书集 (微信公众号认证)
- 上海新华书店官方微信书店
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...