jBPM4工作流套用開發指南

jBPM4工作流套用開發指南

《jBPM4工作流套用開發指南》是2010年電子工業出版社出版的圖書,作者是胡奇

基本介紹

  • 書名:jBPM4工作流套用開發指南
  • 作者胡奇
  • ISBN:978-7-121-11791-6
  • 定價:59.00元
  • 出版社:電子工業出版社
  • 出版時間:2010年10月
  • 開本:16開
宣傳語,內 容 簡 介,目 錄,前 言,

宣傳語

完全解析jBPM4套用開發技術
9位工作流業內專家聯袂推薦

內 容 簡 介

隨著在現代企業管理中對於信息化、流程化的深度挖掘,具有業務流程管理的技術和思想已經成為致力於全面掌控企業級套用系統人士“日常生活、居家旅行”的必備素質。
本書分兩篇。第一篇介紹工作流管理技術的概念、起源和發展歷程,開源工作流選型,以及jBPM——這個迄今為止最成功的Java開源工作流項目的“前世今生”。此外,本篇還可以幫助讀者快速上手jBPM4、使用jBPM4開發企業流程套用,包括安裝和配置jBPM4、使用jBPM圖形化流程設計器(GPD)設計流程、把流程部署到伺服器上去、使用jBPM4 Service API控制流程、掌握jBPM流程定義語言、流程變數、流程腳本。第二篇主要涉及基於jBPM4這個強大的應用程式框架打造屬於自己獨特業務的“企業流程管理平台”,包括jBPM4擴展研發先決條件、深入jPDL和jBPM Service API、升級jBPM3到jBPM4、流程虛擬機原理、jBPM4的設計思想、隨需而配jBPM4、異步工作執行器、深入jBPM4電子郵件支持、系統日誌、jBPM4與Spring框架集成、jBPM4與JBoss套用伺服器集成、中國特色工作流的jBPM實現。
本書結構條理清晰,實踐例程與理論思想緊密結合,翔實易懂,由淺入深,具有很強的參考性和實用性。本書適合所有掌握JavaEE(Java企業級版本)開發技術的人員——無論您是技術開發者、項目實施者、系統架構師,還是流程分析師、業務方案顧問,本書都適合您。

目 錄

第一篇 jBPM工作流開發基礎 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.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 HelloWorld 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 流程定義、流程實例和執行的概念 62
5.2 流程引擎API 64
5.3 利用API部署流程 67
5.4 通過API刪除已部署的流程 69
5.5 使用API發起新的流程實例 69
5.5.1 發起流程實例的常規方法 70
5.5.2 指定業務鍵發起流程實例 70
5.5.3 指定變數發起流程實例 71
5.6 喚醒一個等待狀態的執行 71
5.7 任務服務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
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章 流程變數 171
7.1 變數作用域 173
7.2 變數類型 174
7.3 變數的自動更新和序列化 175
7.4 例程:用變數去控制一個流程的運行 177
7.5 小結 179
第8章 流程腳本 182
8.1 Java統一表達式語言 182
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
第二篇 定製屬於自己的流程——深入jBPM4擴展研發 195
第9章 jBPM4擴展研發先決條件 196
9.1 深入套用jBPM4所需要知道的 196
9.1.1 如果您的業務基於複雜的規則,在jBPM中加入Drools吧 196
9.1.2 抉擇,是否使用BPEL 197
9.2 Maven倉庫和Java依賴庫 199
9.3 小結 200
第10章 深入jPDL和jBPM Service API 201
10.1 timer(定時器)能為您做什麼 201
10.1.1 持續時間表達式 202
10.1.2 工作日曆 202
10.1.3 定時轉移 204
10.1.4 定時事件 205
10.1.5 工作日曆定時 207
10.1.6 定時重複 208
10.2 使用group活動編組流程 209
10.3 如何在活動中調用EJB方法 214
10.4 使用jms活動 215
10.4.1 模擬JMS服務 217
10.4.2 JMS文本訊息 219
10.4.3 JMS Object訊息 220
10.4.4 JMS Map訊息 222
10.5 歷史會話監聽鏈 223
10.6 自定義Web任務表單 225
10.6.1 基本思路 225
10.6.2 表單格式 226
10.7 流程實例的自動遷移 228
10.7.1 簡單的流程實例遷移 230
10.7.2 終止流程實例運行的遷移 232
10.7.3 套用活動映射的遷移 234
10.7.4 自定義遷移處理器 236
10.8 小結 239
第11章 升級jBPM3到jBPM4 240
11.1 你所要知道的升級局限性 241
11.2 流程定義轉換工具 242
11.2.1 命令行執行 242
11.2.2 Java編碼執行 243
11.3 jBPM3到jBPM4的語義變更及翻譯 244
11.4 小結 246
第12章 流程虛擬機原理 247
12.1 PVM的架構 247
12.2 PVM的實現 250
12.3 小結 253
第13章 jBPM4的設計思想 254
13.1 API設計 254
13.1.1 活動API 256
13.1.2 事件監聽API 256
13.2 執行環境設計 257
13.3 命令設計 258
13.4 服務設計 259
13.5 歷史流程處理原理 262
13.6 數據持久化設計 263
13.6.1 jBPM4流程定義資源和實例運行時數據表 264
13.6.2 jBPM4流程歷史數據表 265
13.6.3 jBPM4身份認證數據表 266
13.6.4 jBPM4引擎屬性數據表 267
13.7 例程:擴展jBPM4的API滿足客戶化的需求 268
13.8 小結 270
第14章 隨需而配jBPM4 272
14.1 配置檔案設計概要 273
14.2 配置工作日曆 274
14.3 配置身份認證組件(組織適配器) 274
14.4 小結 277
第15章 異步工作執行器 278
15.1 設計原理 278
15.2 配置使用 280
15.3 小結 281
第16章 深入jBPM4電子郵件支持 282
16.1 電子郵件的產生 282
16.3 電子郵件擴展 287
16.4 小結 289
第17章 系統日誌 290
17.1 配置日誌 290
17.2 日誌輸出級別 292
17.3 Java Logging API日誌 292
17.4 利用持久化層日誌進行調試 294
17.5 小結 295
第18章 jBPM4與Spring框架集成 296
18.1 集成的目標 297
18.2 為集成配置jBPM4 297
18.3 為集成配置Spring 299
18.4 使用 301
18.5 測試 302
18.6 小結 302
第19章 jBPM4與JBoss套用伺服器集成 303
19.1 流程定義打包部署 303
19.2 在JBoss企業級編程模型中使用jBPM4 304
19.3 小結 306
第20章 中國特色工作流的jBPM實現 307
20.1 退回 308
20.2 取回 313
20.3 會簽 318
20.4 委派 326
20.5 自由流 331
20.6 小結 332
附錄A jBPM術語 334

前 言

本書作者從2005年即開始在國內最大的企業套用軟體集團之一負責工作流引擎核心及其周邊系統的創造性研發工作,並因此獲得了2006年度北京市中關村科技園經濟技術創新標兵等榮譽。
隨著對工作流管理系統研究開發和實踐套用的深入,不僅從自主研發的工作流管理系統中獲得了大量“深入骨髓”的第一手體驗,而且由於工作原因從多個國內、國外的工作流產品中吸取、借鑑了眾多的第一線套用實戰經驗,這不僅涵蓋了多種商業工作流產品,也包括眾多開源工作流產品。
因為工作的機會,作者曾作為RedHat JBoss產品套用架構師有幸深入地“解剖”了jBPM系列產品並且為國內多個jBPM套用項目提供諮詢、培訓等服務。作者發現在許多優秀的工作流產品中已經實現了的設計、計畫實現的創意以及許多讓人忍不住“擊節叫好”的思想,都已經被jBPM系列產品做到了!當前,在Red Hat JBoss項目組工程師、架構師們的不懈努力下,jBPM已經發布了第4個大版本,最新的jBPM4進一步克服了jBPM3的固有缺陷(這在書中會多次提到),並且更加“變本加厲”地增強和最佳化了jBPM——這個世界上首屈一指的開源工作流產品的功能。
因此,作者“忍不住”、也“不得不”將jBPM4這個優秀工作流產品的套用、開發技巧以及自己對工作流技術的經驗、體會編寫成書。從某種程度上來說,本書也是作者多年“工作流職業生涯”的一個里程碑和總結。
 對於想快速入門的企業流程開發人員來說:
 本書將使您快速了解什麼是工作流、BPM和jBPM,以及它們的發展歷程。當然,重要的是使您明白它們能為企業信息化做什麼,開發人員該如何抉擇。
 本書內容從下載、安裝、配置jBPM4到流程設計、程式開發、單元測試、套用部署、調試運行,直至管理、監控、最佳化、擴展,使您掌握利用jBPM4開發企業流程的全生命周期過程。
 本書全面系統地為您介紹jBPM4的Service API、活動和支持行為,通過手把手的實例練習把jBPM4企業流程架構的思維植入您的腦中。
 對於已經在使用jBPM(包括jBPM3)開發的、並渴望把jBPM4“玩弄於股掌之間”的研發者來說:
 拋棄不盡如人意的、稍顯囉唆的jBPM3,來盡情擁抱架構更為優雅、更為易用、更適於擴展的jBPM4吧!為什麼不呢?
 本書為您精選了近年來眾多企業在“實際”使用jBPM過程中遇到的最棘手、最糾結的問題,這包括業內人士所謂的“中國特色工作流”的經典問題,根據作者的經驗,這些問題導致了大量jBPM項目選型、實施的流產乃至失敗……本書將以jBPM4設計者的理論思想為前提,提出解決思路、方法乃至實戰例程。
 本書不失為一條企業級套用架構師的進階之路,因為jBPM4不僅僅是一個平台(Platform),更是一個框架(Framework),它的代碼、它的設計無處不蘊含著世界頂級企業套用架構大師的精華思想。同樣,因為作者對jBPM設計理念的認同、優雅架構的努力追求,所以將力求在介紹中為您起到拋磚引玉的效果。
 本書亦可作為jBPM4的工具手冊在您的計算機旁伴隨您進行企業流程研發之旅。
需要強調的是,本書中作者在介紹jBPM4的新功能時,會經常性地提到jBPM3與jBPM4的差異,以幫助廣大jBPM3的“鐵桿用戶”消除思維定勢,快速把握新版本的變化、從根本思想上“升級”到jBPM4。同時也能讓第一次使用jBPM4的用戶體會到jBPM系列產品發展的“滄桑歷程”,知其然(新功能)亦知其所以然(為什麼要變更或加強以前的功能)。
本書由胡奇編著,參與具體工作的還包括王斌、萬雷、趙楠、周華樟、朱誠、劉利平、李偉、袁學東、劉浩、楊建平、於洪丹、黃勝、田洪銘、陳培帥、黃北軍。業內專家PCCW Solutions,senior consultant,Cyril;盛大線上公司架構師,胡長城;搜狐福州分公司Java架構師,林良益;中通軟聯信息科技有限公司創始人兼首席架構師,馬越;GrapeCity集團技術管理組高級架構師,王瑜;北京天大天科科技發展有限公司首席架構師,吳俊;百度公司軟體工程師,徐會生;TIBCO中國開發中心開發部門經理,趙亮;上述8位同志對本書提出了非常誠懇的意見和建議,本書能夠面世與他們的辛勤工作和專業建議密不可分。同時我還要感謝我的太太王少玲女士,她在本書的寫作過程中給了我極大的支持和鼓勵,並參與了第一章的校稿工作。最後將本書獻給我剛出生的女兒胡清揚小朋友,願她健康成長,好好學習,天天向上。
如果您對本書的內容有任何問題或反饋,歡迎通過電子郵件聯繫我們。
檔案使用說明
讀者可以先去下面這個地址下載一個壓縮檔案jbpm-4.3.zip:
這個jbpm-4.3.zip解壓縮後有137.9MB大小,這是jBPM4.3的原始碼、文檔、依賴庫、示例代碼等所有官方的東西。因為是遵循LGPL開源協定的,讀者可以直接下載該檔案。解壓之後,我們可以看到檔案中有個examples目錄,為官方的示例代碼,結構如下(左)圖所示。
本書第6章的大部分示例代碼來自於此,而上(左)圖中的6-5.txt和6-2-8.txt正是加入的用來表明此代碼是第幾章節所引用的。我們再通過網址下載本書的配書檔案,解壓縮到本地電腦。從檔案目錄結構可以看出,我們對examples目錄做了擴充(因為要依賴官方examples的環境),在配書代碼中我們還加入了本書其他章節的示例代碼,如上(右)圖所示。n2_2_10表示第2章第10節的代碼。n3_cn_delegate表示中國特色工作流“代理人”部分的代碼,為了方便起見,我們直接以面對的問題來命名,這樣讀者可以有針對性地查找並解決問題。
提示:本書涉及代碼可到博文視點公司網站下載。
書 評
(按評論者姓名字母順序排序)
許久不曾買書,這本《jBPM4工作流套用開發指南》是我迄今為止最期待的一本書。本書循序漸進地介紹了jBPM,從工作流的基礎知識開始,到最後的中國特色工作流的jBPM實現,讓人不睹不快。可以說,它是一本很好的jBPM參考手冊,能夠幫助更多的人來學習和掌握jBPM。
陳勇
就職於北京拓爾思信息技術股份有限公司,java開發工程師
本人從六七年前就開始接觸工作流系統的設計與開發,一共參與過三套工作流系統的設計與開發過程,套用涵蓋了OA系統、行政審批系統、ERP系統。在這么多年的工作流系統的設計與開發過程中,感觸頗多,其中有如下兩點是體會最深的:
1. 從最開始只關注一個個具體業務流程在自己設計的工作流系統中怎么實現,到後來漸漸關注工作流系統對企業整個業務流程重組(BPR)的巨大推動效應和對企業套用集成(EIP)的強有力支持,這個過程我用了五六年。《jBPM4工作流套用開發指南》的作者在第1章就對這點進行了深入的闡述,讓讀者在十來分鐘的時間內快速完成了這個認識的轉變,可以使後續的工作流系統的設計與開發者站在更高的起點去設計與開發適合於自己項目的工作流管理系統。
2. 在中國進行工作流系統的開發尤其不易,特別是政府與國企使用的工作流系統。用戶提出的許多“非常有理”的特色功能往往會讓工作流系統的設計與開發者焦頭爛額,難以在工作流系統的規範性與用戶要求的“靈活性”之間加以取捨。很顯然《jBPM4工作流套用開發指南》作者的實戰經驗非常豐富,明確地在本書中對中國特色工作流的jBPM實現進行了詳細的說明。
所以《jBPM4工作流套用開發指南》這本書在理論認識與設計思想、具體分析與細節實現這兩點上有比較好的平衡,充分體現了作者在工作流管理系統設計與開發上的功力。
Cyril
就職於PCCW Solutions,senior consultant
終於盼來胡奇的新作《jBPM4工作流套用開發指南》出版上市。在作者剛剛著手開始寫書的時候,我們倆就針對大綱內容有過探討,當時定的基調就是“實用”。
“實用”的本質就是“實戰經驗的總結和抽象”。特別對於工作流套用來講,看似就是幾個節點的連線和組合,但是實際卻是變化多樣的,不同的行業領域或套用場景之間的差異性太大,而需求又特別繁雜。這也是為什麼很少有一款工作流產品能夠適應所有行業。有的工作流產品主要面向政務辦公中的公文處理流程;有的則面向電信業務的高性能處理流程;有的則面向套用系統過程集成的處理流程;有的則面向製造業中高度自動化控制流程……
在這種情況下,工作流產品要想在“簡單易用”和“靈活擴展”之間找到平衡就非常難。但Tom先生(jBPM的創造者之一)卻完成了這個壯舉,締造了精美小巧的jBPM。在jBPM中,除了過程調度這一核心模組無法擴展以外,幾乎流程相關的所有點都可以擴展活動類型、活動執行方式、事件行為、Spring整合、存儲等。所以開發者可以很容易基於jBPM構建出有自己特色的流程框架,以滿足特殊業務領域模式。本書中,胡奇用了幾個章節的內容,為讀者詮釋了如何基於jBPM構建屬於自己的工作流平台。
提到jBPM4,就不能不提到PVM(Process Virtual Machine, 流程虛擬機)。PVM是新一代流程引擎架構設計理念,而這是由Tom先生在jBPM4中首創的,這種PVM設計理念在越來越多的開源和商業工作流或BPM產品中體現出來,比如Orchestra BPM,Oralce BPM Suite 11g,Activiti BPM等。在書中,胡奇為大家詳細詮釋了PVM的原理和jBPM4的實現,值得參考閱讀。
jBPM本身是一款開源的工作流和BPM組件,但如何真正結合實際套用需求和場景,把jBPM運用好卻是個很大的挑戰。在現實中,開發人員的實施經驗不足、jBPM專業開發人員稀少、指導參考資源匱乏,對項目實施質量和進度影響頗多,甚至導致部分項目失敗。而在本書中,胡奇不僅對jBPM做了深入透徹的介紹,並分享了自己多年的jBPM成功實施經驗,為大家的工作流套用項目實施提供了寶貴經驗借鑑,很值得參考學習。
胡長城
就職於盛大線上公司,負責盛大開放平台的整體架構,近十年的工作流研發實施諮詢經驗
翻開這本書的目錄,從對工作流理論發展的理解到jBPM4的設計思想,從Step By Step的圖示化安裝指南到特定的“中國式企業套用”場景案例,從簡單的基於Web頁面設計器的流程定製,到與Spring,JMS的複雜整合。對讀者而言,該書做到了一步一步帶入門,而後逐漸展開視野、深入機理,使人“知jBPM然,也知其所以然”。
作者對工作流模型,尤其是BPM的理解,功力十分深厚。他以適合於中國學生理解的思維方式,為讀者解讀了jBPM設計,展現了jBPM4的API的全景視圖。更難得的是,書中的“中國特色工作流的jBPM實現”這一章非常精準地直擊中國企業信息化過程中在工作流系統上經常遇到的老大難問題,讓人讀後拍手稱快。
不是所有的書籍都能從工作流的基礎概念講述到開發中遇到的現實問題的,這本書做到了。它既適合剛剛接觸流程引擎的初學者入門,又適合於對jBPM3/4有一定使用基礎、需要深入學習的在職從業人員。它是本人所讀到的國內相關書籍中對jBPM4描述最為全面、最為深入的作品之一。
林良益
就職於搜狐福州分公司,Java架構師,負責網路搜尋與SNS底層框架設計
開源項目《IKAnalyzer中文分詞器》《IKExpression表達式解析器》作者
jBPM作為歷史最悠久,功能最強大的開源工作流引擎一直擁有著國內外廣泛的使用群體。2005年我在美國時因為第一次在大型企業套用中使用了jBPM與Seam技術,還得到了jBPM團隊所在的JBoss公司2006年度世界創新獎。2007年回國與本書作者成為同事後我們一起為國內大量客戶進行了有關工作流引擎的諮詢工作。那時候本書作者就開始不斷總結客戶所面對的問題與需求,並一直想把jBPM真正結合本土業務特色發揚光大。如今本書終於問世,過去一直纏繞著眾多國內程式設計師的一些如回退、會簽、自由流等“中國特色”的問題都通過jBPM4有了明快的解決之道。多年來jBPM工作組與本書作者共同的厚積薄發恰如其時地為國內程式設計師在實際工作中快速套用開源技術又提供了一個寶貴的武器。
馬越
就職於中通軟聯信息科技有限公司,創始人兼首席架構師
社區創始人;2006年Red Hat/JBoss世界創新大獎獲得者
美國10年大型商業軟體構架經驗;第一個將Seam及jBPM框架引入大型企業套用的開拓者
熟悉企業套用開發的人都知道,工作流是企業套用開發中的一個核心概念。從辦公自動化領域的公文審批到跨企業的異構系統集成,背後都可以見到工作流的身影。jBPM作為一套開源工作流產品,已在各個行業得到了廣泛深入的套用,其工業標準的品質也已成為開源世界中的範例之一。
本書作者具有堅實的工作流理論基礎, 同時又具備豐富的基於jBPM的系統設計和開發經驗。更難能可貴的是,作者能夠很好地將理論知識與軟體開發實踐結合起來,通過對理論的講述切入實踐,然後通過對實踐的講解進一步鞏固理論,進而引發讀者思考如何根據理論進一步擴展實踐。與此同時,本書還就國內工作流套用的特點,結合jBPM產品給出了自己的解決方案。這些來自開發一線的實踐積累和經驗總結,對於讀者來說無疑具有寶貴的價值。
另一方面,針對某一軟體產品的介紹性書籍往往容易被寫成一本介紹如何使用該產品的操作指南,冷冰凍的操作步驟描述,再加上直接從外文資料上截取下來的翻譯內容,讓人閱讀起來覺得了無生趣。而本書作者可以說在提高閱讀體驗方面花了很大心力。語言樸實,描述準確,包括設計演示場景和示例的時候,也是儘量考慮到讀者的知識背景和閱讀體驗。介紹理論的時候不顯得枯燥,描述操作的時候不覺得煩瑣,無論是初次涉及工作流概念的新手,還是有一定工作流經驗的設計師,都能從本書中有所收穫。
王瑜
就職於GrapeCity集團技術管理組,高級架構師
首先十分感謝作者給我這個機會在他的作品即將問世之前做一些感想,也正好讓我能在忙碌中抽空回顧一下這么多年在技術平台方面走過的路以及在Workflow方面的點點滴滴。因為本書是介紹jBPM的專業書籍,所以我談不上給些什麼評論,只是將對作者的印象和對書中內容引發的一些思考和回味分享給大家。
首先就要從我跟作者如何相識的初次合作談起了。記得那應該是2005年,我們經歷了兩年多搭建面向ERP項目的研發平台初具規模,正在10多個大型項目中服務。當時從底層技術框架、代碼生成工具、組織許可權等諸多技術問題都得到了充分的考慮和解決。當然肯定少不了對Workflow業務的解決。當時我們選用的WfMC的XPDL語法,從引擎、設計器、監控器、模擬器、組織模型全套都實現了。最初因某些項目原因採用的.NET,後遷移到Java平台下,並且以Hibernate做存儲,也是採用的微核心和狀態機的設計思路。提供了一整套的API(類似jBPM等主流工作流引擎提供的方式)。但在幾個大項目實際使用中發現這種純粹API二次開發的方式,基於封閉工作流系統無法高效地支撐業務快速開發及流程仿真重組。
對業務系統快速實施有價值的是整合了組織定義、流程定義、業務表單定義、業務數據許可權定義工具等全集成的定製系統,不用通過編寫代碼業務需求人員通過拖曳即可完成各種層級集團套用的定義,並適當設定一定的業務腳本即可完成業務系統的定義。所以我們在2005年6月啟動了這件事情,基於已有的組織許可權、工作流基礎上加入業務表單定義及整合的設計定義功能。然後在公司內部到處挖人,我習慣於以技術geek的方式在公司內部到處引誘人,都是先通過非正式的方式從技術角度找到有想法感興趣的人,然後再用各種手段搞到這個人加入。
記得那個時候一個意氣風發、滿懷抱負的年輕小伙子給我留下了深刻的印象。他剛剛做完一個電信的項目,愛好非常廣泛,JS很好,也會Flash,想法特別多,手特別快。所以我就通過各種手段搞到這個傢伙加入我們,那就是年輕時的作者。很快他先搞定了業務表單定義的技術攻關,可能當時我們是最早使用XmlHttpRequest的(Ajax的核心),然後基於Workflow如何接收表單傳遞過來的數據,然後接手了整個Workflow的最佳化及實現各種變態的中國特色的工作流需求。我們在10月左右發布了一個完整的版本,支持了上面講到的那些功能。回頭看看大家都很神奇,10個人不到3個月就搞定了這么複雜的東西,也許換到今天開源技術如此成熟可能都未必能做到。之後這個傢伙就一定要堅持在專業上堅持以Workflow為方向不斷成為專家。
再一晃就是多年以後的事情了,我也從搭建ERP研發平台到網際網路SNS大型數據平台又轉回到專屬行業ERP產品平台。不論管理大型團隊多少年,始終秉承著對技術的痴迷,從未放棄對任何技術細節的關注,也越來越推崇中庸、推崇妥協。
這期間我們有過斷斷續續的聯繫,也曾經為一些點子一起瘋狂、一起興奮,不過終究沒有找到合適的機會再次合作。收到作者的邀請時,十分地受寵若驚,當時手頭的事情也特別多。而且類似的書我也見得特別多,不外乎就是英翻中,所以就根本沒放在心上。直到後來拿到作品仔細閱讀了一番,漸漸地能體會和重現這個傢伙幾年的歷程——一直在專業(Workflow)的道路上滋滋以求。
當然文中難免有大量資料的複製,但是能花大量心血組織起來,如此翔實全面地介紹已實屬不易。而且加上了這傢伙從當年我們一起做流程系統時的經驗和他在jBPM系列產品套用實施上多年的諮詢經歷。
最近我也在平台中的多處集成了jBPM用於解決傳統審批流,跨業務域集成BPM,以及ETL流等,當然不會孤立使用Workflow,肯定是結合ESB、MDA、規則引擎等一起使用。一直想給大家從概念到Workflow的歷史、再到如何運用jBPM解決各種問題等進行一個全面的講解,正好拿到這本書,省了我很大的力氣。
這幾年IT業內浮躁風氣、快餐文化盛行,用過Spring、Struts、jBPM就敢說自己是架構師。而很少有人能夠踏踏實實潛心研究各種技術的根源,為什麼要這么設計,如何擴展更為有效。從我們做平台的人的角度來看簡單會用沒什麼,關鍵是能理解精髓並擴展或改造才是本事。
像作者這樣致力於在國內傳播Workflow的模型,讓更多的人少走彎路,快速上手,並不斷將多年研究的心得和成果同大家分享的人太少了,國內太少這種人了。也許這本書可以為不少人提供了解jBPM的素食套餐。尤其本書中“第20章 中國特色工作流的jBPM實現”十分具有實戰意義,是特別值得國內使用jBPM做套用的人們參考的最佳實踐。
筆觸於此,抬眼已很晚了,一氣呵成就先寫這么多。讓我們一起讀完全書後再回來一起思考和回味下面這兩個問題吧!
 有想法、專注、願意分享的年輕人,我們應該有怎樣的IT人生?
 業內規範的演化進步,我們又會遭遇怎樣的IT進程?
吳俊
就職於北京天大天科科技發展有限公司,首席架構師
很高興向大家推薦《jBPM4工作流套用開發指南》這本書,jBPM是國內公司使用最多的開源工作流引擎,不過雖然越來越多公司選擇將jBPM加入自己的項目或產品中,卻發現總是被同樣的問題絆住手腳。這本書為尚未接觸過工作流領域的同仁們開啟了大門,它以淺顯易懂的文字,循序漸進地介紹了流程領域的套用知識,並提供了實例輔助大家學習,最後還特別針對國內的特殊流程需求提出了對應的解決方案,幫助大家快速越過這些障礙。
徐會生
就職於百度公司,軟體工程師
站長
對於企業級IT套用系統而言重要的內容是業務活動流程、人員組織架構、業務數據標準定義。工作流軟體幫助企業套用開發者方便地處理實現以上三個部分的內容,可以使用圖形化流程編排的方式定義業務流程,定義企業內部組織結構,人員角色和角色關聯的工作任務,在流程中連線企業內部的其他系統,讓標準的業務數據流在企業內部的各個系統中流轉,完成企業運作的各項工作。
類比編程實現函式的數據處理流程,使用工作流軟體工具編排實現業務處理流程是企業套用開發者必須具備的一項技能。隨著企業套用系統複雜度的不斷提升,只提三尺編程之劍,是無法縱橫於軟體江湖的。每一個在企業套用領域的技術工作者都需要更先進、更強大的技術來武裝自己。工作流是企業套用中非常重要的技術,學習了解這門技術,包括概念、功能、發展過程、基本原理、技術標準、產品工具的使用、開發技能和經驗共享等,就是一項緊迫的任務了。
學習需要深入本質,舉一反三。我們不需要學習所有主流工作流軟體, 選擇一個規模適度(不要像IBM軟體套件那么讓人生畏)、套用廣泛、代碼開源的產品來切入,這是個明智的選擇。本書適合於想學習工作流技術,並且將使用jBPM來做套用開發的讀者閱讀學習。對於從事工作流產品開發工作的開發者來說也可以從第1、第12、第13、第20章讀到一些自己感興趣的內容。如果說jBPM是開發企業工作流系統的利器,那么只有開發者熟練掌握了這個工具才真正有用。本書就是個很好的選擇,它可以幫助你了解學習和掌握這門技術及相關工具。不只局限於對工具使用的介紹,本書將會告訴你這項技術的方方面面,開啟一扇步入工作流領域的大門,引導你獲悉內功本質,熟練操作招式,在之後的企業套用開發過程中把這項技術用好、用準。
趙亮
就職於TIBCO中國開發中心,開發部門經理

相關詞條

熱門詞條

聯絡我們