Activiti实战. 导读
實 戰
Activiti實戰
閆洪磊 著
?
為什么要寫這本書
2011年年末,公司承接了一個保險類的業務系統,包含處理核心業務的ERP系統以及日常辦公的OA系統,很明顯這兩種類型的系統都離不開工作流引擎的支持。我用一周時間對比了幾個開源的工作流引擎,最后決定使用Activiti作為整套系統的工作流引擎。
現在回想起來,當初的學習過程是多么的“痛苦”啊!當時Activiti才剛滿周歲,除了官方提供的尚能看得過去的用戶手冊之外,再無其他資料可供參考,這對于國內開發者來說尤為痛苦。僅有的用戶手冊全部都是英文的,為了學習Activiti只能打開翻譯軟件硬著頭皮把手冊看了一遍,當然也離不開打入引擎內部的利器—Javadocs。幸運的是,我的第一份工作(3年時間)是為政府單位開發OA系統,這有助于理解在學習Activiti過程中遇到的一些概念性的內容,在此基礎上前后花了一周時間寫出了第一個在本書中被講“爛”掉的請假流程。
國內很多技術愛好者都會使用IM軟件或論壇建立技術交流社區,也有一些人開設博客撰寫相關技術文章。在開始學習Activiti時,很多人都嘗試著去尋找這樣的社區,結果由于社區規模小、熱度不高,常聽到學習資料匱乏以及沒有成熟的Demo可供參考這樣的聲音。我喜歡研究技術也樂于分享,從08年就開始以博客的形式分享一些技術學習心得,在基本掌握Activiti的使用方法后就響應社區的號召在GitHub上公開了Activiti入門Demo項目—kft-activiti-demo,并在個人博客上發布了幾篇與Activiti有關的博文。隨著國內使用Activiti的企業越來越多,使得Activiti中文社區活躍度大大增加。最初我要花不少時間回答社區中提出的有關Activiti的問題,長此以往,同一個問題每天要回答多次,而且kft-activiti-demo也太過簡單,只能作為入門參考,為了能系統地介紹Activiti,就萌發了撰寫一本關于Activiti的書籍的想法。
在2012年6月,機械工業出版社華章公司的首席策劃楊福川聯系我,表示有意向出版一本Activiti方面的書籍。我們一拍即合,于是就有了這本書,這也讓我相信機會是留給有準備的人的。這本書原本預計一年完成,不過由于工作與家庭的原因,在2013年一度中斷了大半年,導致這本書的難產。在此也對期待已久的讀者說聲對不起,同時也是因為你們給予的支持與壓力促使我最終完成這本書。
在學習和使用Activiti的過程中也遇到了一些Bug或功能缺陷,例如基本上每個初學者都會遇到的流程圖中文亂碼問題。對于這些問題最初會通過Bug跟蹤系統向官方提交問題,在Activiti的源碼從SVN切換到GitHub后就可以很方便地讓全球的開發者參與進來。筆者也借助GitHub這個平臺為Activiti貢獻了一些代碼,借此機會也呼吁技術愛好者多多參與開源。
讀者對象
本書以“理論+實戰”的方式引導讀者學習,不僅介紹如何使用Activiti,還詳細介紹了其遵循的BPMN 2.0規范,所以無論讀者是以技術為主還是以業務需求為主,都適合閱讀本書。雖然本書中大部分示例都是B/S架構,但不表示Activiti不能在C/S架構中使用。另外,Activiti也不是只針對Java語言的,被其官方定義為BPM平臺,借助REST也可以讓非Java語言的系統使用Activiti。
適合閱讀本書的讀者有以下幾類:
Activiti用戶和愛好者
Activiti代碼貢獻者
流程引擎相關的項目經理或者需求人員
Activiti開發者,或運維人員
使用Activiti開發流程平臺的公司
如何閱讀本書
本書分為四大部分:
第一部分(第1、2章)為準備篇,介紹整個體系結構及其特點,并為后面的內容配置開發環境。
第二部分(第3、4章)為基礎篇,介紹兩種流程設計器的使用,以及BPMN 2.0規范。
第三部分(第5~14章)為實戰篇,本書中內容最多的部分,該部分以實戰為主,包括流程定義、流程實例、任務、子流程、多實例、事件以及監聽器等。
第四部分(第15~21章)為高級篇,通過集成各種服務、中間件來闡述Activiti不僅是引擎,更是一個BPM平臺,最后還深入源碼內部剖析Activiti的設計模式及PVM。
勘誤和支持
由于筆者的水平有限,加之編寫時間倉促,書中難免會出現一些錯誤或不準確的地方,懇請讀者批評指正。為此,特意創建一個在線支持與應急方案的站點http://www.kafeitu.me/activiti-in-action.html。大家可以將書中的錯誤發布在Bug勘誤表頁面中,同時,在遇到任何問題時,你可以訪問其Q&A頁面,筆者將盡量在線上為你提供最滿意的解答。書中的全部源文件除可以從華章網站下載外,還可以從筆者提供的這個網址下載,筆者也會將相應的功能更新及時更正出來。如果你有更多的寶貴意見,也歡迎發送郵件至郵箱yanhonglei@gmail.com,期待能夠得到你們的真摯反饋。
致謝
首先要感謝Tom Beayens發起了這么優秀的開源項目,以及Alfresco公司Tijs Rademakers帶領的Activiti團隊對此項目的無償貢獻與支持。
感謝Activiti中文社區中每一位充滿激情的朋友—袁啟勛、臨遠、翔子、姜維、王壘、于廣岳、第二少、小股東、陳浩、jackyrong、賣字母為生,以及名單之外的更多朋友,感謝他們長期以來對社區的支持和貢獻。
感謝機械工業出版社華章公司的編輯楊福川和姜影,我始終堅信專業的事找專業的人做,兩位在這兩年的時間中從各個方面支持我的寫作,他們的鼓勵和幫助引導我順利完成全部書稿。
感謝我的驢友們,和他們一起登山探險讓我精神得以放松,希望以后的空余時間我們繼續用雙腳丈量大地。
最后感謝我的家人,感謝他們對我的支持和鼓勵。
謹以此書獻給我最親愛的家人,以及眾多熱愛Activiti的朋友們!
?
閆洪磊(咖啡兔)
于上海
第一部分 準 備 篇
第1章 認識Activiti2
1.1 什么是Activiti2
1.2 工作流基礎3
1.2.1 什么是BPM3
1.2.2 工作流生命周期4
1.2.3 什么是BPMN5
1.3 Activiti的特點5
1.4 Activiti的應用6
1.5 Activiti架構與組件7
1.6 Activiti與jBPM5比較8
1.7 本章小結9
第2章 搭建Activiti開發環境10
2.1 下載Activiti10
2.1.1 目錄結構10
2.1.2 Javadocs12
2.2 環境配置檢查14
2.2.1 檢查并安裝JDK14
2.2.2 檢查并安裝Ant14
2.2.3 檢查并安裝Maven15
2.3 配置文件介紹16
2.3.1 Activiti配置文件16
2.3.2 Maven配置文件17
2.4 Hello World18
2.4.1 最簡單的流程定義18
2.4.2 創建單元測試類20
2.4.3 運行Hello World21
2.4.4 添加業務節點21
2.5 Activiti Explorer25
2.5.1 配置并運行Activiti Explorer25
2.5.2 使用Activiti Explorer26
2.6 本章小結29
第二部分 基 礎 篇
第3章 流程設計工具32
3.1 基于B/S架構的流程設計器Activiti Modeler32
3.1.1 Activiti Modeler特點32
3.1.2 下載signavio-core-components33
3.1.3 配置打包與運行33
3.1.4 Windows用戶打包36
3.1.5 設計請假流程37
3.1.6 導出bpmn2.0.xml41
3.2 在Activiti Explorer中使用Activiti Modeler41
3.3 基于Eclipse插件的流程設計器Activiti Designer44
3.3.1 Activiti Designer特點44
3.3.2 安裝Activiti Designer45
3.3.3 設計流程46
3.3.4 自動化51
3.3.5 升級歷史遺留的流程設計55
3.3.6 導入Activiti Modeler設計56
3.3.7 泳池與泳道57
3.3.8 在Activiti Designer中使用泳道與泳池58
?
總結
以上是生活随笔為你收集整理的Activiti实战. 导读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《编写高质量代码:改善c程序代码的125
- 下一篇: 《Ruby程序员修炼之道》(第2版)—第