天天看點

Drools引擎學習

首先上一段話:

為提高效率,管理流程必須自動化,即使現代商業規則異常複雜。 市場要求業務規則經常變化,系統必須依據業務規則的變化快速、低成本的更新。 為了快速、低成本的更新,業務人員應能直接管系統中的規則,不需要程式開發人員參與。

作為一名java程式員,我是這麼了解的。在現代社會中,很多事情的處理都需要一個流程。哈哈,比如你戶口本丢了,你得求爺爺,告奶奶,找這個簽字,找那個蓋章,最終把問題解決。這叫程式,也就是流程。

Drools引擎學習

這是我昨天畫的請假流程。如果通過引擎來做,就有個什麼好處呢,就是自動流轉,引擎驅動。本來我們需要考慮每一個任務task的執行人,執行資料,然後它的下一步,如果有可能的話,記錄它的曆史執行資訊。現在我們activiti這個平台來實作這些基本的功能需求,對有個平台化的基本概念。

恩,這個思想很強大。

-------------------------------------------

引擎不是架構

架構本質上說還是一段一段的代碼,沒有一個驅動流轉的概念。

為什麼呢?

因為架構不連接配接資料庫,而引擎需要資料庫。往往自己也帶有資料庫中的表。

---------------------------------------------

接着上面說到,我們需要引擎來做自動化的工作,可是引擎隻是實作了一個api結構。沒有定義規則。

可是什麼是規則呢,舉個例子:工資的算法=f(稅前,稅率,五險一金)

一般就是這幾個參數,但是算法 f 本身會變化的。f 就是規則。

f怎麼來做呢?

寫死到activiti的xml代碼中嗎?改起來麻煩,而且部署以後比較麻煩。

至于寫到其他的地方,然後讀取-解析-配置的流程,則完全可以指定一個規則了。是以,drools屬于一個規則标準。

spring是用來取代 new關鍵字;

hibernate 是為了取代各種繁雜的jdbc代碼;

struts是為了減少與httpservlet的互動。

流程引擎或者說規則引擎是用來幹嘛的呢?

我們的業務邏輯從本質上說,還是if-else,各種各樣的分支結構。而引擎的功能就是為了來管理業務邏輯。

--------------------------------------------

昨晚睡了一夜,回來看自己寫的東西,都是狗屁。

沒做過幾個工作流,就在這裡瞎比比,真是傻逼。

整個工作流體系是什麼樣子的,現在有哪些現成的、流行的工作流引擎,

牽涉到哪些标準+規範,我知道嗎?

我還是多學學再說吧。

------------------------------------------

貼幾本書:

Drools引擎學習
Drools引擎學習

----------------------------------------

本文轉自二郎三郎部落格園部落格,原文連結:http://www.cnblogs.com/haore147/p/4728958.html,如需轉載請自行聯系原作者