您好,欢迎来到聚文网。 登录 免费注册
深入Activiti流程引擎:核心原理与高阶实战

深入Activiti流程引擎:核心原理与高阶实战

  • 字数: 1236
  • 出版社: 人民邮电
  • 作者: 贺波 胡海琴 刘晓鹏
  • 商品条码: 9787115600042
  • 版次: 1
  • 开本: 16开
  • 页数: 581
  • 出版年份: 2023
  • 印次: 1
定价:¥139.8 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书主要介绍业务流程管理的实战落地应用,全书分为4篇:基础理论篇,包含流程的基本概念、业务流程管理的历史、业务流程管理体系;常规应用篇,包含Activiti开发环境准备、使用IDEA和Eclipse开发Activiti工作流、流程设计工具,以及Activiti核心架构、工作流引擎配置、用户管理、流程部署、表单管理等内容;高级实战篇,包含Spring Boot和 Activiti的其他实践和应用;架构扩展篇,包含多引擎架构、性能优化、流程稳定性保障。 本书适合从事业务流程管理的技术人员阅读。
作者简介
贺波 本硕均毕业于北京科技大学。国内资深的工作流及BPM领域专家,专注于流程领域十余年,长期致力于BPM技术及相关产品的研发、应用和推广,擅长为国内外中大型企业提供以流程为导向的数字化解决方案。职业生涯中组织领导了多个大型软件平台项目的设计、开发与落地,具备全面的解决方案能力、分析及设计能力、组织实施能力。曾任东华软件股份公司技术总监,从零到一研发的BPM平台广泛应用于政府、银行、学校和企业等各种不同类型的商业化应用场景。现任滴滴出行高级企业信息化技术专家,流程平台部负责人,从无到有搭建BPM平台,实现了大型互联网综合平台各类差异化业务和复杂流程场景的落地,开创了同类互联网需求的BPM实施先例,对业界BPM平台建设具有非常重要的实际参考价值。 胡海琴 本硕均毕业于北京科技大学,从事十多年Java EE企业应用开发,曾经参与多个大型企业级项目的设计与开发工作,具有丰富的软件系统设计和开发经验。现任职于滴滴,资深软件开发工程师,担任BPM功能设计与研发,积累了丰富的BPM开发的实战经验,对BPM技术的应用以及Activiti开源技术有着较为深刻的理解与认识。 刘晓鹏 硕士毕业于中国科学院院研究生院计算机专业,拥有10年互联网系统研发、架构设计经验,对高并发、高性能、高可用等方面有丰富的设计经验。现就职于滴滴,任专家工程师,专注于流程领域,具有5年流程引擎研发和架构设计经验,对Activiti的源码和设计原理有深入的了解,负责BPM平台的研发。
目录
第 一篇 基础理论篇 第 1章 流程基本概念 3 1.1 流程与流程管理 3 1.1.1 流程的由来与定义 3 1.1.2 企业流程管理的目的 4 1.1.3 流程构成要素及特征 4 1.2 流程分类 5 1.2.1 安东尼模型 5 1.2.2 APQC流程分类框架 6 1.2.3 IBM的流程分类 7 1.3 流程层级 8 1.3.1 按APQC流程分类框架 分级 8 1.3.2 按组织职能分级 8 1.3.3 按企业管理层级分级 9 1.4 企业战略、流程与组织的关系 9 1.4.1 战略决定业务流程 9 1.4.2 业务流程决定流程组织 9 1.4.3 企业战略、业务流程与组织的 关系 9 1.5 业务流程管理现状 10 1.5.1 业务流程管理 10 1.5.2 业务流程优化 10 1.6 本章小结 11 第 2章 BPM的“前世今生” 13 2.1 工作流基础 13 2.1.1 基本定义 13 2.1.2 发展历程 13 2.2 工作流技术概述 14 2.2.1 工作流参考模型 14 2.2.2 工作流管理系统 15 2.2.3 工作流开源框架 16 2.3 BPM相关标准 17 2.3.1 BPMN 2.0概述 17 2.3.2 BPMN 2.0结构 20 2.4 BPM技术的应用 24 2.4.1 应用现状概述 24 2.4.2 国内应用概况 24 2.5 本章小结 24 第3章 BPM管理体系 25 3.1 BPM方法论 25 3.1.1 三步走的实践路径 25 3.1.2 三大管理原则 25 3.1.3 两大核心理论 26 3.2 BPM产品架构概述 26 3.2.1 工作流开发环境 27 3.2.2 工作流引擎 27 3.2.3 工作流客户端 27 3.2.4 工作流管理端 28 3.2.5 模拟仿真工具 28 3.2.6 报表分析工具 28 3.3 BPM流程梳理方法概述 28 3.3.1 流程体系框架介绍 28 3.3.2 流程的分类和分级 29 3.3.3 流程定义方法 30 3.3.4 业务流程优化方法 31 3.4 BPM体系流程开发步骤与原则 31 3.4.1 业务需求收集和转化 31 3.4.2 定义业务数据结构 31 3.4.3 定义泳道和流程图 31 3.4.4 定义流程路由逻辑 31 3.4.5 定义流程环节属性 32 3.4.6 设置流程绩效 33 3.4.7 流程仿真 33 3.5 BPM端到端流程管理模式 34 3.5.1 为什么需要端到端流程 管理 34 3.5.2 端到端流程管理概述 35 3.5.3 端到端流程管理的原则 35 3.5.4 端到端流程管理的实施 36 3.6 BPM流程优化策略 37 3.6.1 优化流程顺序 37 3.6.2 剔除非增值环节 37 3.6.3 整合工作 37 3.6.4 工作模板化 37 3.6.5 流程自动化与信息化 38 3.6.6 流程型组织变革 38 3.6.7 资源配置优化 38 3.6.8 合理授权 38 3.7 本章小结 38 第二篇 常规应用篇 第4章 Activiti开发环境准备 41 4.1 JDK的安装与配置 41 4.1.1 JDK下载与安装 41 4.1.2 环境变量的配置 41 4.2 MySQL的安装与配置 43 4.3 Tomcat的安装与配置 43 4.4 Activiti的安装与配置 44 4.4.1 Activiti下载 45 4.4.2 Activiti安装与配置 45 4.4.3 Activiti初体验:运行官方 Activiti示例 46 4.5 本章小结 50 第5章 Activiti流程设计器集成与使用 51 5.1 使用IDEA集成Activiti流程 设计器 51 5.1.1 在IDEA中安装actiBPM 流程设计器插件 51 5.1.2 使用IDEA绘制BPMN 流程图 53 5.2 使用Eclipse集成Activiti流程 设计器 55 5.2.1 在Eclipse中安装Activiti Designer插件 55 5.2.2 使用Eclipse绘制BPMN 流程图 56 5.3 本章小结 59 第6章 Activiti核心架构解析 61 6.1 Activiti工作流引擎架构概述 61 6.2 Activiti数据库设计和模型映射 62 6.2.1 通用数据表 62 6.2.2 流程存储表 63 6.2.3 身份数据表 64 6.2.4 运行时数据表 65 6.2.5 历史数据表 70 6.3 Activiti设计模式 74 6.3.1 Activiti命令模式 74 6.3.2 Activiti责任链模式 75 6.3.3 Activiti命令链模式 75 6.4 核心代码走读 77 6.4.1 流程模型部署 77 6.4.2 流程定义解析 79 6.4.3 流程启动 84 6.4.4 节点流转 87 6.4.5 网关控制 91 6.4.6 流程结束 96 6.4.7 乐观锁实现 99 6.5 本章小结 99 第7章 Activiti工作流引擎配置 101 7.1 Activiti工作流引擎的配置 101 7.1.1 工作流引擎配置对象 ProcessEngineConfiguration 101 7.1.2 工作流引擎对象 ProcessEngine 105 7.2 Activiti工作流引擎配置文件 106 7.2.1 Activiti配置风格 106 7.2.2 Spring配置风格 107 7.3 数据库连接配置 108 7.3.1 数据库连接配置 108 7.3.2 数据库策略属性配置 110 7.4 其他属性配置 110 7.4.1 历史数据级别配置 110 7.4.2 作业执行器配置 111 7.4.3 邮件服务器配置 113 7.4.4 事件日志记录配置 113 7.5 编写第 一个Activiti程序 113 7.5.1 建立工程环境 113 7.5.2 创建配置文件 116 7.5.3 创建流程模型 117 7.5.4 加载流程模型与 启动流程 118 7.6 本章小结 119 第8章 Activiti核心概念和API 121 8.1 Activiti核心概念 121 8.1.1 流程定义 121 8.1.2 流程实例 121 8.1.3 执行实例 122 8.2 工作流引擎服务 122 8.3 存储服务API 123 8.3.1 部署流程定义 124 8.3.2 删除流程定义 124 8.3.3 挂起流程定义 125 8.3.4 激活流程定义 127 8.4 运行时服务API 128 8.4.1 发起流程实例 128 8.4.2 唤醒一个等待状态的 执行 130 8.5 任务服务API 131 8.5.1 待办任务查询 132 8.5.2 任务办理及权限控制 134 8.6 历史服务API 137 8.7 管理服务API 138 8.7.1 数据库管理 138 8.7.2 异步任务管理 140 8.7.3 执行命令 142 8.8 身份服务API 143 8.9 利用Activiti Service API完成 流程实例 145 8.9.1 Activiti工作流引擎 工具类 145 8.9.2 综合使用示例 147 8.10 本章小结 149 第9章 Activiti身份管理 151 9.1 用户管理 151 9.1.1 新建用户 151 9.1.2 查询用户 152 9.1.3 修改用户 158 9.1.4 删除用户 159 9.1.5 设置用户图片 160 9.2 用户组管理 161 9.2.1 新建用户组 161 9.2.2 查询用户组 162 9.2.3 修改用户组 165 9.2.4 删除用户组 165 9.3 用户与用户组关系管理 166 9.3.1 添加用户至用户组 166 9.3.2 从用户组中移除用户 166 9.3.3 查询用户组中的用户 167 9.3.4 查询用户所在的用户组 168 9.4 用户附加信息管理 168 9.5 本章小结 169 第 10章 Activiti流程部署 171 10.1 流程资源 171 10.2 流程部署 171 10.2.1 DeploymentBuilder对象 171 10.2.2 执行流程部署 172 10.3 部署结果查询 175 10.3.1 部署记录查询 175 10.3.2 流程定义查询 178 10.3.3 流程资源查询 182 10.4 流程部署完整示例 183 10.4.1 示例代码 183 10.4.2 相关表的变更 184 10.5 本章小结 185 第 11章 开始事件与结束事件 187 11.1 事件概述 187 11.2 事件定义 187 11.2.1 定时器事件定义 187 11.2.2 信号事件定义 189 11.2.3 消息事件定义 190 11.2.4 错误事件定义 190 11.2.5 取消事件定义 191 11.2.6 补偿事件定义 191 11.2.7 终止事件定义 191 11.3 开始事件 191 11.3.1 空开始事件 191 11.3.2 定时器开始事件 192 11.3.3 信号开始事件 194 11.3.4 消息开始事件 194 11.3.5 错误开始事件 197 11.4 结束事件 199 11.4.1 空结束事件 199 11.4.2 错误结束事件 199 11.4.3 取消结束事件 202 11.4.4 终止结束事件 204 11.5 本章小结 205 第 12章 边界事件与中间事件 207 12.1 边界事件 207 12.1.1 定时器边界事件 207 12.1.2 信号边界事件 209 12.1.3 消息边界事件 212 12.1.4 错误边界事件 212 12.1.5 取消边界事件 215 12.1.6 补偿边界事件 216 12.2 中间事件 217 12.2.1 定时器中间捕获事件 217 12.2.2 信号中间捕获事件和 信号中间抛出事件 219 12.2.3 消息中间事件 222 12.2.4 补偿中间抛出事件 223 12.2.5 空中间抛出事件 230 12.3 本章小结 230 第 13章 用户任务、手动任务和 接收任务 231 13.1 用户任务 231 13.1.1 用户任务介绍 231 13.1.2 用户任务分配给办理人 233 13.1.3 用户任务分配给 候选人(组) 234 13.1.4 动态分配任务 236 13.2 手动任务 242 13.2.1 手动任务介绍 242 13.2.2 手动任务使用示例 242 13.3 接收任务 244 13.3.1 接收任务介绍 244 13.3.2 接收任务使用示例 244 13.4 本章小结 246 第 14章 服务任务、脚本任务和 业务规则任务 247 14.1 服务任务 247 14.1.1 服务任务介绍 247 14.1.2 服务任务的属性注入 249 14.1.3 服务任务的执行结果 257 14.1.4 服务任务的异常处理 257 14.1.5 在JavaDelegate中使用 Activiti服务 260 14.2 脚本任务 261 14.2.1 脚本任务介绍 261 14.2.2 脚本任务中流程变量的 使用 261 14.2.3 脚本任务的执行结果 262 14.3 业务规则任务 262 14.3.1 业务规则任务介绍 262 14.3.2 业务规则任务使用示例 264 14.4 本章小结 267 第 15章 Activiti扩展的系列任务 269 15.1 邮件任务 269 15.2 Web Service任务 270 15.2.1 Web Service任务介绍 270 15.2.2 Web Service任务使用 示例 271 15.3 Camel任务 276 15.3.1 Camel任务介绍 276 15.3.2 Activiti与Camel集成 276 15.3.3 Camel任务使用示例 279 15.4 Mule任务 282 15.4.1 Mule任务介绍 283 15.4.2 Mule的集成与配置 283 15.4.3 Mule任务使用示例 287 15.5 Shell任务 290 15.5.1 Shell任务介绍 290 15.5.2 Shell任务使用示例 291 15.6 本章小结 292 第 16章 顺序流与网关 293 16.1 顺序流 293 16.1.1 标准顺序流 293 16.1.2 条件顺序流 294 16.1.3 默认顺序流 296 16.2 网关 297 16.2.1 排他网关 297 16.2.2 并行网关 300 16.2.3 包容网关 303 16.2.4 事件网关 306 16.3 本章小结 308 第 17章 子流程、调用活动和 泳池泳道 309 17.1 子流程 309 17.1.1 内嵌子流程 309 17.1.2 事件子流程 314 17.1.3 事务子流程 321 17.2 调用活动 328 17.2.1 调用活动介绍 328 17.2.2 调用活动使用示例 329 17.2.3 内嵌子流程与调用活动的 区别 333 17.3 泳池与泳道 333 17.4 本章小结 334 第 18章 监听器 335 18.1 执行监听器与任务监听器 335 18.1.1 执行监听器 335 18.1.2 任务监听器 343 18.2 全局事件监听器 347 18.2.1 全局事件监听器 工作原理 347 18.2.2 支持的事件类型 348 18.2.3 事件监听器的实现 349 18.2.4 配置事件监听器 350 18.2.5 事件监听器使用示例 353 18.2.6 日志监听器 356 18.2.7 禁用事件监听器 356 18.3 本章小结 357 第 19章 Activiti表单管理 359 19.1 Activiti支持的表单类型 359 19.2 前期准备工作 359 19.3 内置表单 361 19.3.1 内置表单介绍与应用 361 19.3.2 自定义内置表单 数据类型 369 19.4 外置表单 370 19.4.1 外置表单介绍与应用 370 19.4.2 外置表单扩展 376 19.5 本章小结 378 第 20章 多实例实战应用 379 20.1 多实例概述 379 20.1.1 多实例的概念 379 20.1.2 多实例的配置 380 20.1.3 多实例与其他流程元素的 搭配使用 382 20.2 多实例用户任务应用 383 20.3 多实例服务任务应用 390 20.4 多实例子流程应用 392 20.5 本章小结 395 第三篇 高级实战篇 第 21章 Activiti集成Spring Boot 399 21.1 Spring Boot简介 399 21.1.1 Spring Boot特性 399 21.1.2 自定义starter 401 21.2 Spring Boot配置详解 403 21.2.1 配置文件读取 403 21.2.2 自定义配置属性 404 21.2.3 多环境配置 405 21.3 Spring Boot与Activiti的集成 406 21.3.1 通过Spring Boot配置工作 流引擎 406 21.3.2 Activiti、MyBatis与 Spring Boot整合 407 21.3.3 通过Spring Boot管理工作 流引擎 408 21.4 本章小结 409 第 22章 集成在线流程设计器 Activiti Modeler 411 22.1 集成Acitiviti Modeler 411 22.1.1 集成Activiti Modeler 前置条件 411 22.1.2 集成Activiti Modeler 411 22.2 汉化Activiti Modeler 426 22.3 本章小结 426 第 23章 Activiti自定义扩展(一) 427 23.1 自定义ProcessEngineConfiguration 扩展 427 23.1.1 自定义ProcessEngineConfiguration 427 23.1.2 编写工作流引擎 配置文件 427 23.1.3 使用示例 428 23.2 自定义流程元素属性 429 23.2.1 修改Activiti Modeler增加 自定义属性配置 429 23.2.2 自定义属性解析处理 431 23.2.3 读取自定义属性 433 23.3 自定义流程活动行为 434 23.3.1 创建自定义流程活动 行为类 435 23.3.2 创建自定义流程活动 行为工厂 437 23.3.3 在工作流引擎中设置自定义 流程活动行为工厂 437 23.3.4 使用示例 438 23.4 自定义事件 439 23.4.1 创建自定义事件类型 439 23.4.2 创建自定义事件 439 23.4.3 实现自定义事件监听器 440 23.4.4 使用示例 440 23.5 自定义流程校验 441 23.5.1 创建自定义校验规则 442 23.5.2 重写流程校验器 443 23.5.3 在工作流引擎中设置 自定义流程校验器 443 23.5.4 使用示例 444 23.6 本章小结 445 第 24章 Activiti自定义扩展(二) 447 24.1 替换Activiti身份认证服务 447 24.1.1 禁用Activiti自带的 用户身份模块 447 24.1.2 自定义身份认证服务 448 24.1.3 使用示例 461 24.2 适配国产数据库 462 24.2.1 准备工作 462 24.2.2 修改Activiti源码适配 国产数据库 464 24.3 自定义查询 466 24.3.1 使用NativeSql查询 466 24.3.2 使用CustomSql查询 469 24.4 本章小结 474 第 25章 Activiti自定义扩展(三) 475 25.1 自定义流程活动 475 25.1.1 流程定义XML文件 解析原理 475 25.1.2 自定义RestCall任务的 实现 476 25.1.3 使用示例 480 25.2 更换默认Activiti流程 定义缓存 482 25.2.1 Activiti流程定义缓存的 用途 482 25.2.2 Activiti流程定义缓存 源码解读 482 25.2.3 使用Redis替换Activiti 默认流程定义缓存 485 25.3 手动创建定时任务 492 25.3.1 创建自定义作业处理器 492 25.3.2 在工作流引擎中注册 自定义作业处理器 493 25.3.3 使用示例 493 25.4 本章小结 495 第 26章 本土化业务流程场景的 实现(一) 497 26.1 动态跳转 497 26.1.1 动态跳转的扩展实现 497 26.1.2 动态跳转使用示例 499 26.2 任务撤回 500 26.2.1 任务撤回的扩展实现 500 26.2.2 任务撤回使用示例 505 26.3 流程撤销 506 26.3.1 流程撤销的扩展实现 507 26.3.2 流程撤销使用示例 512 26.4 本章小结 514 第 27章 本土化业务流程场景的 实现(二) 515 27.1 通过代码创建流程模型 515 27.1.1 工具类实现 516 27.1.2 使用示例 518 27.2 流程实例动态增加临时节点 520 27.3 流程节点自动跳过 521 27.4 会签加签 522 27.4.1 会签加签的扩展实现 522 27.4.2 会签加签使用示例 525 27.5 会签减签 526 27.5.1 会签减签的扩展实现 527 27.5.2 会签减签使用示例 529 27.6 本章小结 530 第四篇 架构扩展篇 第 28章 Activiti性能与容量优化 533 28.1 历史数据异步化 533 28.1.1 Activiti数据存储机制 533 28.1.2 基于已有数据库表的 历史数据异步化 535 28.1.3 基于MongoDB的 历史数据异步化 536 28.1.4 数据一致性保证 542 28.2 ID生成器优化 544 28.2.1 数据库ID生成器(DbIdGenerator) 544 28.2.2 UUID生成器 545 28.2.3 自定义ID生成器 546 28.3 定时器优化 547 28.3.1 Activiti定时器 执行过程 547 28.3.2 Activiti定时器优化 548 28.4 本章小结 552 第 29章 Activiti多引擎架构的初阶实现 553 29.1 多引擎架构分析 553 29.1.1 水平分库分表方案的 局限性 553 29.1.2 多引擎架构方案设计 554 29.2 多引擎建模服务实现 555 29.2.1 建模服务搭建 555 29.2.2 工作流引擎服务 缓存改造 556 29.3 工作流引擎路由 558 29.3.1 Pika与Spring Boot的 整合 559 29.3.2 将路由信息写入Pika 560 29.4 建立服务网关 562 29.4.1 Spring Cloud Gateway 简介 563 29.4.2 Spring Cloud Gateway 服务搭建 563 29.4.3 新发起流程路由配置 564 29.4.4 已有流程路由配置 565 29.5 本章小结 567 第30章 Activiti多引擎架构的高阶实现 569 30.1 工作流引擎集群搭建 569 30.1.1 Nacos服务搭建 569 30.1.2 基于Nacos的 引擎集群构建 570 30.1.3 引擎集群路由配置 572 30.2 网关动态路由配置 573 30.2.1 引擎信息动态配置 573 30.2.2 路由信息动态配置 574 30.3 流程查询服务搭建 577 30.3.1 Elasticsearch与 Spring Boot的整合 577 30.3.2 将数据写入 Elasticsearch 578 30.3.3 创建查询服务 581 30.4 本章小结 581

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网