1. 程式人生 > >規則引擎的應用發展

規則引擎的應用發展

過程 運行 leader 通用 模塊 我們 engine nbsp 加載

前言

最傳統的軟件是揉雜在一起的,1970年代為了更好的方便開發,程序員將數據庫份離出來,方便信息的存儲。1980年代,應用層分離出展示層,使得產品更加優化,人性化,而1990年代後,使用規則引擎將業務規則分離單獨管理,使得業務系統能夠更加靈活變動,響應速度更加快速,旗正商業規則管理平臺正式業務規則的管理專家

規則引擎由推理引擎發展而來,是一種嵌入在應用程序中的組件,實現了將業務決策從應用程序代碼中分離出來,並使用預定義的語義模塊寫業務決策。接受數據輸入,解釋業務規則,並根據業務規則做出業務決策。

應用背景

企業級管理者對企業IT系統的開發有著如下的要求:

1.為提高效率,管理流程必須自動化,即使現代商業規則異常復雜。

2.市場要求業務規則經常變化,IT系統必須依據業務規則的變化快速、低成本的更新。

3.為了快速、低成本的更新,業務人員應能直接管理IT系統中的規則,不需要程序開發人員參與。

目前國外大多數企業在信息管理上已經使用到了BRMS的架構來保證公司更加迅速準確的完成任務。我們國內,大多數企業BRMS處理方面並不盡人意,多數人甚至不知道規則引擎是做什麽的。規則引擎實現了將業務決策從應用程序代碼中分離出來,並使用預定義的語義模塊編寫業務決策。使得BRMS構架更加明顯,使非技術業務人員能直接參與到業務規則管理工作中,使受限於復雜多變且不斷發展的業務規則的應用程序和流程實現靈活的決策自動化。

規則引擎執行原理

以旗正規則引擎(Visual Rules solution)為例規則引擎會根據規則包名稱,取得對應規則包編譯後的RSC文件。然後將RSC加載到內存中,生成規則包執行上下文。同時規則引擎將傳遞的參數傳遞到規則包執行上下文中,然後開始執行規則包。執行完畢後,再將規則包執行上下文中的數據,傳回給調用規則包的應用程序。整個執行原理非常簡單,因此最大限度的保證了規則運行平臺的穩定以及最佳的性能。

數據庫接口

規則包的對象庫中,定義了以下一些數據庫對象接口Database、Table、Select、View、Procedure。旗正規則引擎直接用JDBC來實現這些接口,最大限度的保證了數據庫對象調用的性能。當然用戶可以根據自己的需要,重新來實現這些數據庫接口。

一 Excel接口

規則包需要調用的Excel接口主要是I Excel Book、I ExcelSheet、I Excel Table Sheet、I Excel X Y Sheet。旗正規則引擎采用POI來實現Excel接口。

二 內存表格接口

規則包需要調用的內存表格接口為Sheet,旗正規則引擎采用Object[][]來實現內存表格接口的實現。

三Xml接口

規則包需要調用的XML接口為Node。目前旗正規則引擎采用JDOM來實現。

如何調用

規則引擎是外部Java程序調用規則包的一組Java類,其包含在engine.jar中。 外部Java程序調用規則包時只需要用到兩個類。一個是 com. Flagleader .Engine .Rule Engine 。另一個是 com. Flagleader .engine .Rule Engine Factory 。

Rule Engine Factory是得到規則引擎實例的工廠類。 通常代碼為

Rule Engine rule Engine = Rule Engine Factory .new Instance().get Rule Engine();

得到規則引擎實例後,可以調用規則引擎中的方法,主要是put、excute和get這三個方法。 put用於傳入需要傳入的值,excute 用於運行指定的規則包,get用於得到傳出的值。 一般的調用代碼為:

Rule Engine .put(傳入對象);

Rule Engine .excute("規則包調用名");

傳出對象 = rule Engine .get("傳出對象名");

使用規則引擎的優點

使用規則引擎可以通過降低實現復雜業務邏輯的組件的復雜性,降低應用程序的維護和可擴展性成本,其優點如下:

1.分離商業決策者的商業決策邏輯和應用開發者的技術決策;

2.能有效的提高實現復雜邏輯代碼的可維護性;

3.在開發期間或部署後修復代碼缺陷;

4.應付特殊狀況,即客戶一開始沒有提到要將業務邏輯考慮在內;

5.符合組織對敏捷或叠代開發過程的使用;

6.大多數規則引擎都支持規則的次序和規則沖突檢驗,支持簡單腳本語言的規則實現,支持通用開發語言的嵌入開發。

規則引擎供應商

目前業內有多個規則引擎可供使用,其中包括國內和國外。

1.國外的代表是:Drools(開放源代碼)和Ilog(IBM收購)

2.國內的代表是:旗正規則引擎(Visual rules solution)

規則引擎的應用發展