首先上一段話:
為提高效率,管理流程必須自動化,即使現代商業規則異常複雜。 市場要求業務規則經常變化,系統必須依據業務規則的變化快速、低成本的更新。 為了快速、低成本的更新,業務人員應能直接管系統中的規則,不需要程式開發人員參與。
作為一名java程式員,我是這麼了解的。在現代社會中,很多事情的處理都需要一個流程。哈哈,比如你戶口本丢了,你得求爺爺,告奶奶,找這個簽字,找那個蓋章,最終把問題解決。這叫程式,也就是流程。

這是我昨天畫的請假流程。如果通過引擎來做,就有個什麼好處呢,就是自動流轉,引擎驅動。本來我們需要考慮每一個任務task的執行人,執行資料,然後它的下一步,如果有可能的話,記錄它的曆史執行資訊。現在我們activiti這個平台來實作這些基本的功能需求,對有個平台化的基本概念。
恩,這個思想很強大。
-------------------------------------------
引擎不是架構
架構本質上說還是一段一段的代碼,沒有一個驅動流轉的概念。
為什麼呢?
因為架構不連接配接資料庫,而引擎需要資料庫。往往自己也帶有資料庫中的表。
---------------------------------------------
接着上面說到,我們需要引擎來做自動化的工作,可是引擎隻是實作了一個api結構。沒有定義規則。
可是什麼是規則呢,舉個例子:工資的算法=f(稅前,稅率,五險一金)
一般就是這幾個參數,但是算法 f 本身會變化的。f 就是規則。
f怎麼來做呢?
寫死到activiti的xml代碼中嗎?改起來麻煩,而且部署以後比較麻煩。
至于寫到其他的地方,然後讀取-解析-配置的流程,則完全可以指定一個規則了。是以,drools屬于一個規則标準。
spring是用來取代 new關鍵字;
hibernate 是為了取代各種繁雜的jdbc代碼;
struts是為了減少與httpservlet的互動。
流程引擎或者說規則引擎是用來幹嘛的呢?
我們的業務邏輯從本質上說,還是if-else,各種各樣的分支結構。而引擎的功能就是為了來管理業務邏輯。
--------------------------------------------
昨晚睡了一夜,回來看自己寫的東西,都是狗屁。
沒做過幾個工作流,就在這裡瞎比比,真是傻逼。
整個工作流體系是什麼樣子的,現在有哪些現成的、流行的工作流引擎,
牽涉到哪些标準+規範,我知道嗎?
我還是多學學再說吧。
------------------------------------------
貼幾本書:
----------------------------------------
本文轉自二郎三郎部落格園部落格,原文連結:http://www.cnblogs.com/haore147/p/4728958.html,如需轉載請自行聯系原作者