周里程++熊碧輝++裘瑞清++周后盤
摘 要在現階段下,Drools規(guī)則引擎技術發(fā)展的已經相對成熟,且非常具有吸引力,并廣泛應用于制造業(yè)、娛樂業(yè)等各個行業(yè)。本文主要是對Drools規(guī)則引擎的研究背景、現狀、概念以及其核心算法Rete及其實現原理等多方面進行闡述,旨在促進其技術應用的更加廣泛。
【關鍵詞】規(guī)則引擎 DroolsRete算法
1 規(guī)則引擎的產生背景
隨著世界經濟形勢變化,市場競爭日趨激烈,為不斷適應市場的各種變化,企業(yè)需要不斷調整產品設計、生產制造、市場營銷、內部管理等各個環(huán)節(jié)的管控方式和規(guī)則制度。故而支撐企業(yè)運作的管理系統(tǒng)亦應該予以隨之調整,定期地維護并且更新程序的業(yè)務邏輯。在以往的系統(tǒng)設計架構里面,對每一回業(yè)務邏輯進行變更操作的時候,均需修改程序的源代碼,重新予以編譯并部署,容易導致系統(tǒng)不穩(wěn)定,同時維護工作量大,維護成本居高不下。迫切需要將管理系統(tǒng)中內含的業(yè)務規(guī)則、業(yè)務邏輯獨立出來,例如生產計劃排程、風險控制規(guī)則、市場定價策略等,以解除其程序代碼與業(yè)務規(guī)則的耦合性,通過調整修改業(yè)務規(guī)則來適應市場的變化。規(guī)則引擎就是解決此問題的方式之一。
2 Drools規(guī)則引擎的應用現狀及分析
正因為Drools規(guī)則引擎技有著如此多優(yōu)勢特點,現今在許多行業(yè)都有著其身影。
2.1 Drools規(guī)則引擎在生產制造和產品設計中的應用
在傳統(tǒng)的制造行業(yè)上,規(guī)則引擎就有著很好的應用。華中科技大學的閆歡,張宜生等在《規(guī)則引擎在制造企業(yè)MES中的研究與應用》一文中,提出了在MES中引入業(yè)務規(guī)則管理系統(tǒng)(Business Rule Management System),借助規(guī)則引擎Drools和其對應的規(guī)則語言,并契合企業(yè)的實際需求來制定業(yè)務規(guī)則,把程序代碼和業(yè)務規(guī)則分離開來,使企業(yè)根據市場需求隨時對企業(yè)的生產方針予以優(yōu)化調整,從而能夠加速MES系統(tǒng)的開發(fā)、升級與維護的過程,最終可大大增強了MES系統(tǒng)的靈活性、適應性。同時在基于BRMS和規(guī)則引擎的MES系統(tǒng)原型中,實現了生產計劃的自動安排和生產計劃調整過程中的設備負荷均衡處理。伴隨工件的工序以及機床數量的增加,以Drools的規(guī)則為基礎去定義文件的復雜性亦隨之明顯升高。Drools這些有關的問題均可運用Hadoop Map/Reduce的辦法加以解決。Map/Reduce其實為一個處理并且生成超級數據集的算法模型,它可以借助較為低廉的計算資源達到大規(guī)模的并行運算,在解決大規(guī)模作業(yè)調試的方面有著非常大的潛力。不僅如此,浙江大學電氣工程學院的鄭春團隊利用Drools規(guī)則引擎技術設計了一個絲綢輔助設計專家系統(tǒng),用戶可以通過Web訪問本系統(tǒng),輸入需求信息,結合知識庫中存儲的模糊規(guī)則處理得到創(chuàng)意圖。系統(tǒng)實現了絲綢產品設計的智能化和自動化,提高了產品設計效率。從而能夠看出Drools規(guī)則引擎應用于傳統(tǒng)制造行業(yè),提高了工廠資源整體的利用率。
2.2 Drools規(guī)則引擎在政務服務中的應用
Drools規(guī)則引擎同樣應用在政務服務當中,江蘇大學的夏平平就將其應用于征稅系統(tǒng)當中,在征稅系統(tǒng)開發(fā)過程中,需要定義匹配的業(yè)務規(guī)則,比如企業(yè)名稱的長度、合伙納稅人比例情況、外資企業(yè)比重情況等,雖然可以通過源代碼的方式實現這些業(yè)務規(guī)則,但是隨著國家稅制的改革和完善,征稅方面的業(yè)務規(guī)則勢必會經常變化,必然導致程序需要二次修改和重新部署,給維護工作帶來非常大的不便,使用Drools規(guī)則引擎很好的解決了上述問題。
2.3 Drools規(guī)則引擎在企業(yè)管理中的應用
Drools規(guī)則引擎在企業(yè)管理中也有應用,上海復旦大學的祝志飛團隊設計了一套基于Drools規(guī)則引擎的自主管理會計系統(tǒng),通過Drools Guvnor管理會計業(yè)務規(guī)則,以及通過Drools Expert將業(yè)務系統(tǒng)實時產生的單筆交易數據或歷史批量數據轉換成會計憑證和分錄產生會計報表等核心內容,并將其應用在了志飛天下公司的管理會計系統(tǒng)中,徹底解決了志飛天下公司交易量大、需要適時自動記賬的功能需求,解放了會計人員繁雜的手工記賬,實時提供會計報表給公司管理人員,幫助管理人員及早做出商業(yè)決策。
2.4 Drools規(guī)則引擎在娛樂業(yè)的應用
在娛樂產業(yè),Drools規(guī)則引擎也發(fā)揮了不小的作用。當今市場十分火熱的桌游三國殺就運用到了規(guī)則引擎Drools,它選擇游戲腳本的開發(fā)模式,將游戲的邏輯規(guī)則相關的部分放進腳本中來減少游戲各模塊間的耦合度,方便游戲的測試、修改以及內容的升級與更新。這是未來游戲開發(fā)的一個全新的方向。Drools規(guī)則引擎在游戲中的引入,給其網絡桌游的開發(fā)和維護帶來了事半功倍的效果。
2.5 Drools規(guī)則引擎在電力行業(yè)的應用
在電力部門,Drools規(guī)則引擎同樣有著很好的應用。國網電力科學研究院的李穆,文正其等針對變電站現有的變壓器故障診斷系統(tǒng)普遍存在知識固化的問題,提出了一種基于Drools規(guī)則引擎的變壓器故障診斷專家系統(tǒng)。利用Drools框架搭建變壓器故障診斷專家系統(tǒng)的架構,實現規(guī)則文件與邏輯文件的分離;結合真實案例與權威專家的經驗,確定故障模式,利用規(guī)則庫實現變壓器的故障診斷。并于2014年8月份開始在武漢某750kv變壓器應用了此Drools規(guī)則引擎。實踐證明,系統(tǒng)具有較快的反應能力和準確的診斷能力,具備很好的工程推廣價值。
2.6 Drools規(guī)則引擎在數據清洗中的應用
當今大數據的年代,Drools規(guī)則引擎為以動態(tài)可配置規(guī)則為基礎的數據清洗打下了堅實的技術基礎。武漢理工大學的曹永亮團隊通過實例測試得出結論為:規(guī)則數量變化對Drools規(guī)則引擎性能的影響不是非常明顯;在記錄數很大的時候,運用Drools規(guī)則引擎跟運用硬編碼清洗的時間的比值接近恒定。運用Drools規(guī)則引擎的清洗時長僅有運用硬編碼的2/5左右,在性能方面的損失換來的是系統(tǒng)的通用性以及規(guī)則的動態(tài)可配置性上的提升。但規(guī)則引擎用于數據清洗技術發(fā)展的空間還很大,還有許多的工作要做,比如當前存在的一個突出問題,即是清洗規(guī)則是依賴于一些清洗算法的,因而嵌入進Drools規(guī)則引擎技術并沒有降低數據清洗的算法復雜性,所以將Drools規(guī)則引擎的Rete算法與清洗算法整合,達到算法優(yōu)化便是當前應用的一個發(fā)展方向。endprint