深入 Activiti 流程引擎:核心原理與高階實戰

賀波 胡海琴 劉曉鵬

  • 出版商: 人民郵電
  • 出版日期: 2023-04-01
  • 定價: $839
  • 售價: 8.5$713
  • 語言: 簡體中文
  • 頁數: 581
  • ISBN: 711560004X
  • ISBN-13: 9787115600042
  • 相關分類: Java 相關技術
  • 立即出貨

  • 深入 Activiti 流程引擎:核心原理與高階實戰-preview-1
  • 深入 Activiti 流程引擎:核心原理與高階實戰-preview-2
深入 Activiti 流程引擎:核心原理與高階實戰-preview-1

買這商品的人也買了...

相關主題

商品描述

本書主要介紹業務流程管理的實戰落地應用,全書分為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