規則引擎特點

完整規則管理系統

規則引擎以規則庫爲基礎,規則編輯器爲規則錄入窗口,規則引擎爲動力,輔以規則協同管理、遠程項目與服務管理、集羣規則同步等功能模塊。幫助企業打造一套完整的商業規則定製與管理平臺。


執行速度快

  規則引擎產品有三種執行方式:基於Rete算法推理式、順序執行、靜態順序執行。基於Rete算法推理式是絕大多數產品採用的一種方式。此種方式基於Rete算法進行模式匹配,在規則運行過程中耗費大量資源進行推理式解析。規則執行速度和效率低下。

  規則引擎採用靜態順序執行方式,將規則完全編譯成可執行的代碼進行執行。這樣就最大限度的保證了規則執行的速度。同時由於所有的業務規則全部對應的生成了可執行代碼,這樣使得用於加載和調用規則的服務程序非常簡單。只需要實現註冊、查找、調用等工作,極其精簡的規則引擎除了可以保證單次調用規則的性能之外,還使得系統不再受限於同時在線數,規則引擎不會因爲同時調用的負載高,而影響性能。


獨立編輯器,全中文配置

規則引擎採用獨立編輯器,全中文配置的方式進行業務邏輯的編寫。規則配置界面使用表格來定義業務數據對象(BOM),這些業務數據對象包括單個數據,表格數據,Excel數據,數據庫表數據,XML數據,SOAP數據等。同時提供類自然語言來描述操作這些數據邏輯。這些類自然語言和平時業務人員使用的業務語言及其類似,使得業務人員可以直接配置這些邏輯。


數據庫對象動態ORMapping技術

    傳統規則引擎產品採用一般的ORMapping技術(如Hibernate),將數據庫的表等映射成java類等。這種方式可以對象化的方式來操作數據庫,但是這種方式卻使得當變動數據庫結構時,必須改動類,這樣操作數據庫的邏輯不能像其他的業務邏輯一樣可以動態變化。採用動態的ORMapping技術,數據庫的表映射到一個統一的接口類。這樣操作數據庫的邏輯就和其他的業務邏輯沒有區別,同時數據結構的變化也可以像業務邏輯一樣可以動態變化。動態ORMapping技術,解放了數據庫表結構變化導致需要修改程序並重啓服務器的問題,使得數據庫表結構的變更就像規則引擎應用業務邏輯的變更一樣,實現了完全的動態。



數據對象動態可變    

規則引擎採用map的方式來傳遞規則包的數據對象,這樣就保證了對象結構的可變性。一般的規則引擎採用類對象的方式來傳遞需要處理的數據,這樣如果改變對象的類型或者結構,就需要改動變量傳遞類的結構。採用map方式規避了這方面的問題,使得數據對象的結構也是可變的。

這是爲了解決當業務需求變更時,除了只是調整邏輯之外,還相應需要變更數據結構這類需求。比如某個規則服務,提供給外部的系統調用,採用可變參數對象接口,就可以使得後期可以根據需要,變更數據結構。



安全考慮,版本控制

   規則引擎配置器由於大量開發人員與業務人員同時參與使用,處於安全考慮,所有使用人員必須經過用戶名和密碼的身份認證。這種身份認證可以和業務系統結合,並且通過規則的權限分配,用戶只能查看和修改自己具有權限的規則,從而最大限度的保證規則修改的安全性。

同時集中統一的管理也爲規則包的整體版本控制提供了可能。很多實際業務要求,同一規則服務,會在不同的時間段或者不同的條件下,會調用不同的版本(也就是具體其中某幾個規則會有所不同),而這幾個版本可能是同時都要有效的。因此需要針對規則包進行統一的版本控制。

編輯、修改、測試自行完成

        規則引擎可以在編輯環境下,直接對規則包進行整體測試。測試時只需輸入所需的參數的值,就可以查看到輸出結果,以及可以看到整個規則執行路徑以及對應的數據變化情況。這樣就可以非常方便的對規則包進行測試檢查,或者對下面的某個規則或者規則集單獨進行檢查。

   當規則包被調用時,有時候用戶需要知道這次調用到底激活了那些規則,他們的先後執行順序,以及調用此規則時,對業務對象的修改情況(進規則之前,業務對象什麼狀態,經過規則執行之後,業務對象變成了什麼狀態)。VisualRules可以將所有當次運行的這些規則執行軌跡記錄下來,供用戶進行查閱,或者存儲在數據庫中,供以後查閱。這在用戶進行規則的查錯時非常有用,可以馬上定位到底是運行到那個規則時,發生了錯誤。

標準接口,輕鬆集成

規則引擎提供完整的標準化接口,集成工作彈指之間:

•       Socket接口:socket通訊方式接口,傳輸性能好、安全性高;

•       Servlet接口:通過HttpRequest提交等方式來訪問VRS中的規則包,返回的數據結構以及xml結構方式來存取數據,實現以Json結構來返回數據;

•       Soap接口:外部程序只需要引用engine.dll以及配置規則服務器的ip地址,就可以直接調用VRS中的規則包;

•       本地Java接口:外部java程序只需引用engine.jar包,就可以訪問。



獨有內存表設計

  伴隨着各行各業IT建設的不段深入,“大數據量”這個我們曾經認爲很遙遠的事物,現如今時刻出現在我們日常業務中。這些業務數據處理的過程實際上會產生大量的中間數據,數據量大且邏輯複雜不透明。傳統的處理方式無外乎在數據庫中建大量臨時表或編寫高效的批處理代碼,這兩種方式都存在對人員要求高,系統影響大的弊端。

規則引擎獨有的計算表格(內存表)功能,在內存中模擬數據庫表,以直觀高效的方式處理和存儲中間數據。讓業務人員也不再懼怕大數據量,坦然面對。



多種樣式決策表

規則引擎針對國內決策表的特殊情況,設計了多種決策表,包括表格類決策表、多維決策表、關聯決策表。當然也可以根據業務系統的實際需要進行擴展。這些不同類型的決策表,使得業務人員可以更加簡單方便的表述業務邏輯


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章