目 錄 | 1
目 錄
第1 章 工作流基礎......................................................................................................2
1.1 工作流概念......................................................................................................... 2
1.1.1 工作流管理思想之於企業現代化管理......................................................... 2
1.1.2 工作流技術在企業中的應用....................................................................... 5
1.1.3 如何從一個開發者的角度看工作流技術...................................................... 6
1.2 工作流管理係統的發展曆程................................................................................. 9
1.2.1 工作流管理係統參考模型.........................................................................11
1.2.2 BPM ...................................................................................................... 15
1.3 開源工作流選型................................................................................................ 16
1.4 jBPM ................................................................................................................ 19
1.4.1 jBPM 前世今生....................................................................................... 19
1.4.2 關於jBPM4 您需要知道的....................................................................... 19
1.5 小結................................................................................................................. 23
第2 章 安裝和配置jBPM4 ...........................................................................................24
2.1 jBPM4 安裝先決條件......................................................................................... 24
2.2 快速開始吧....................................................................................................... 26
2.3 安裝腳本詳解.................................................................................................... 27
2.3.1 關於配置文件......................................................................................... 30
2.3.2 關於依賴庫............................................................................................. 31
2.4 安裝到JBoss ..................................................................................................... 31
2.5 安裝到Tomcat ................................................................................................... 32
2.6 基於Web 的Signavio 流程設計器....................................................................... 33
2.6.1 jBPM Web 流程設計器簡介...................................................................... 33
2.6.2 獨立安裝Signavio ................................................................................... 34
2.6.3 配置Signavio.......................................................................................... 34
2.7 用戶自定義jBPM Web 應用程序......................................................................... 35
2.8 安裝jBPM 數據庫............................................................................................. 35
2.8.1 新數據庫安裝......................................................................................... 36
2.8.2 升級舊的數據庫...................................................................................... 36
2 | jBPM 工作流應用開發指南
2.9 安裝圖形化流程設計器(GPD) ........................................................................ 37
2.9.1 獲取Eclipse ............................................................................................ 37
2.9.2 在Eclipse 中安裝GPD 插件..................................................................... 37
2.9.3 配置jBPM 運行環境............................................................................... 38
2.9.4 添加jPDL4 Schema 校驗.......................................................................... 41
2.9.5 導入和使用範例...................................................................................... 41
2.10 例程:jBPM Hello World........................................................................... 43
2.11 小結................................................................................................................ 45
第3 章 使用jBPM 圖形化流程設計器(GPD)設計流程....................................................46
3.1 創建一個新流程................................................................................................ 47
3.2 編輯流程定義源................................................................................................ 49
3.3 例程:設計一個“復雜的”業務流程.................................................................. 49
3.4 小結................................................................................................................. 53
第4 章 把流程部署到服務器上去..................................................................................54
4.1 部署流程定義和資源文件................................................................................... 54
4.2 部署流程Java 類的3 個方法.............................................................................. 57
4.3 例程:部署業務流程定義................................................................................... 58
4.4 小結................................................................................................................. 61
第5 章 使用jBPM4 Service API 控製流程......................................................................62
5.1 流程定義、流程實例和執行(executions)的概念................................................ 62
5.2 流程引擎API .................................................................................................... 64
5.3 利用API 部署流程............................................................................................. 67
5.4 通過API 刪除已部署的流程............................................................................... 69
5.5 使用API 發起新的流程實例............................................................................... 69
5.5.1 發起流程實例的常規方法........................................................................ 70
5.5.2 指定業務鍵(ProcessInstance Key)發起流程實例..................................... 70
5.5.3 指定變量(variables)發起流程實例........................................................ 71
5.6 喚醒一個等待狀態的執行(executions) ............................................................. 71
5.7 任務(task)服務API........................................................................................ 72
5.8 曆史服務API .................................................................................................... 75
5.9 管理服務API .................................................................................................... 76
5.10 查詢服務API................................................................................................... 77
5.11 例程:利用jBPM Service API 完成流程實例...................................................... 78
5.12 小結................................................................................................................ 80
第6 章 掌握jBPM 流程定義語言...................................................................................81
目 錄 | 3
6.1 process(流程) ................................................................................................ 82
6.2 流轉控製活動.................................................................................................... 84
6.2.1 start(開始活動) ................................................................................... 85
6.2.2 state(狀態活動) ................................................................................... 86
6.2.3 decision(判斷活動).............................................................................. 89
6.2.4 fork – join(分支/聚閤活動) ................................................................... 97
6.2.5 end(結束活動) .................................................................................. 102
6.2.6 task(人工任務活動)........................................................................... 107
6.2.7 sub-process(子流程活動).................................................................... 120
6.2.8 自定義活動........................................................................................... 132
6.3 自動活動......................................................................................................... 134
6.3.1 java(Java 程序活動)........................................................................... 135
6.3.2 script(腳本活動)................................................................................ 139
6.3.3 hql(Hibernate 查詢語言活動).............................................................. 144
6.3.4 sql(結構化查詢語言活動) .................................................................. 147
6.3.5 mail(郵件活動) ................................................................................. 149
6.4 事件............................................................................................................... 153
6.4.1 事件監聽.............................................................................................. 155
6.4.2 事件傳播.............................................................................................. 157
6.4.3 處理異常事件....................................................................................... 159
6.5 異步執行......................................................................................................... 160
6.5.1 異步活動.............................................................................................. 162
6.5.2 異步分支/聚閤...................................................................................... 164
6.6 用戶代碼......................................................................................................... 166
6.6.1 用戶代碼的定義.................................................................................... 166
6.6.2 用戶代碼的類加載................................................................................ 168
6.7 小結............................................................................................................... 170
第7 章 流程變量(variables) ...................................................................................171
7.1 變量作用域..................................................................................................... 173
7.2 變量類型......................................................................................................... 174
7.3 變量的自動更新和序列化................................................................................. 175
7.4 例程:用變量去控製一個流程的運行................................................................ 177
7.5 小結............................................................................................................... 179
第8 章 流程腳本......................................................................................................182
8.1 Java 統一錶達式語言(jUEL) ......................................................................... 182
4 | jBPM 工作流應用開發指南
8.1.1 語法特點.............................................................................................. 183
8.1.2 值和方法錶達式.................................................................................... 184
8.1.3 隱式對象.............................................................................................. 187
8.1.4 運算符和保留字.................................................................................... 188
8.1.5 一些經典EL 錶達式的例子.................................................................... 190
8.2 例程:用腳本去控製一個流程的運行................................................................ 192
8.3 小結............................................................................................................... 194
第9 章 jBPM4 擴展研發先決條件................................................................................195
9.1 深入應用jBPM4 所需要知道的......................................................................... 195
9.1.1 如果您的業務基於復雜的規則,在jBPM 中加入Drools 吧...................... 195
9.1.2 抉擇,是否使用BPEL........................................................................... 196
9.2 Maven 倉庫和Java 依賴庫................................................................................ 198
9.3 小結............................................................................................................... 199
第10 章 深入jPDL 和jBPM Service API ......................................................................200
10.1 timer(定時器)能為您做什麼........................................................................ 200
10.1.1 持續時間錶達式.................................................................................. 201
10.1.2 工作日曆............................................................................................ 201
10.1.3 定時轉移............................................................................................ 203
10.1.4 定時事件............................................................................................ 204
10.1.5 工作日曆定時...................................................................................... 206
10.1.6 定時重復............................................................................................ 207
10.2 使用group 活動編組流程................................................................................ 208
10.3 如何在活動中調用EJB 方法........................................................................... 213
10.4 使用jms 活動................................................................................................ 214
10.4.1 模擬JMS 服務.................................................................................... 216
10.4.2 JMS 文本消息..................................................................................... 218
10.4.3 JMS Object 消息.................................................................................. 219
10.4.4 JMS Map 消息..................................................................................... 221
10.5 曆史會話監聽鏈............................................................................................. 222
10.6 自定義Web 任務錶單..................................................................................... 224
10.6.1 基本思路............................................................................................ 224
10.6.2 錶單格式............................................................................................ 225
10.7 流程實例的自動遷移...................................................................................... 227
10.7.1 簡單的流程實例遷移........................................................................... 229
10.7.2 終止流程實例運行的遷移.................................................................... 231
目 錄 | 5
10.7.3 應用活動映射的遷移........................................................................... 233
10.7.4 自定義遷移處理器............................................................................... 235
10.8 小結.............................................................................................................. 238
第11 章 升級jBPM3 到jBPM4 ...................................................................................239
11.1 你所要知道的升級局限性............................................................................... 240
11.2 流程定義轉換工具......................................................................................... 241
11.2.1 命令行執行......................................................................................... 241
11.2.2 Java 編碼執行...................................................................................... 242
11.3 jBPM3 到jBPM4 的語義變更及翻譯................................................................ 243
11.4 小結.............................................................................................................. 245
第12 章 流程虛擬機原理...........................................................................................246
12.1 PVM 的架構.................................................................................................. 246
12.2 PVM 的實現.................................................................................................. 249
12.3 小結.............................................................................................................. 252
第13 章 jBPM4 的設計思想.......................................................................................253
13.1 API 設計....................................................................................................... 253
13.1.1 活動API............................................................................................. 255
13.1.2 事件監聽API ...................................................................................... 255
13.2 執行環境設計................................................................................................ 256
13.3 命令設計....................................................................................................... 257
13.4 服務設計....................................................................................................... 258
13.5 曆史流程處理原理......................................................................................... 261
13.6 數據持久化設計............................................................................................. 262
13.6.1 jBPM4 流程定義資源和實例運行時數據錶............................................ 263
13.6.2 jBPM4 流程曆史數據錶....................................................................... 264
13.6.3 jBPM4 身份認證數據錶....................................................................... 265
13.6.4 jBPM4 引擎屬性數據錶....................................................................... 266
13.7 例程:擴展jBPM4 的API 滿足客戶化的需求.................................................. 267
13.8 小結.............................................................................................................. 269
第14 章 隨需而配jBPM4 ..........................................................................................271
14.1 配置文件設計概要......................................................................................... 272
14.2 配置工作日曆................................................................................................ 273
14.3 配置身份認證組件(組織適配器) ................................................................. 273
14.4 小結.............................................................................................................. 276
6 | jBPM 工作流應用開發指南
第15 章 異步工作執行器(JobExecutor)....................................................................277
15.1 設計原理....................................................................................................... 277
15.2 配置使用....................................................................................................... 279
15.3 小結.............................................................................................................. 280
第16 章 深入jBPM4 電子郵件支持.............................................................................281
16.1 電子郵件的産生............................................................................................. 281
16.2 電子郵件服務器............................................................................................. 284
16.3 電子郵件擴展................................................................................................ 286
16.4 小結.............................................................................................................. 288
第17 章 係統日誌....................................................................................................289
17.1 配置日誌....................................................................................................... 289
17.2 日誌輸齣級彆................................................................................................ 291
17.3 Java Logging API 日誌.................................................................................... 291
17.4 利用持久化層日誌進行調試............................................................................ 293
17.5 小結.............................................................................................................. 294
第18 章 jBPM4 與Spring 框架集成.............................................................................295
18.1 集成的目標................................................................................................... 296
18.2 為集成配置jBPM4......................................................................................... 296
18.3 為集成配置Spring.......................................................................................... 298
18.4 使用.............................................................................................................. 300
18.5 測試.............................................................................................................. 301
18.6 小結.............................................................................................................. 301
第19 章 jBPM4 與JBoss 應用服務器集成....................................................................302
19.1 流程定義打包部署......................................................................................... 302
19.2 在JBoss 企業級編程模型中使用jBPM4........................................................... 303
19.3 小結.............................................................................................................. 305
第20 章 中國特色工作流的jBPM 實現.........................................................................306
20.1 退迴.............................................................................................................. 307
20.2 取迴.............................................................................................................. 312
20.3 會簽.............................................................................................................. 317
20.4 委派.............................................................................................................. 325
20.5 自由流.......................................................................................................... 330
20.6 小結.............................................................................................................. 331
附錄A jBPM 術語....................................................................................................333
· · · · · · (
收起)