張園田 龍洋

摘要
規則引擎是一個具有非常廣闊的應用前景的現代計算機技術。針對全國工程勘察設計大師評選系統中的復雜、易變業務邏輯的特殊需求,引入前向規則推理理論。在.net平臺下運用NxBRE規則引擎,實現了針對不同行業的評選流程邏輯的便捷控制,為.net平臺下復雜業務邏輯應用提供了一種高效的解決方案。
【關鍵詞】規則引擎 NxBRE 評選系統
全國工程勘察設計大師評選系統,即評選系統。將業務流程和規則引擎應用于評選系統,不僅僅是實現了信息化的評選流程,而且還可以依據勘察設計行業下不同專業組的不同需求,不需要經過程序設計人員,單由業務人員就可以靈活更改評選的規則。大大增強了系統的靈活性和可擴展性。
1 背景
NxBRE是.net平臺下的首款開源輕量級的業務規則引擎,它提供兩種不同的推理手段:流引擎(Flow Engine)和推論引擎(Inference Engine)。流引擎是程序的外部實體通過XML來控制進程流,它基本上是一個C#的封裝,提供所有的流控制命令Of/then/else,while,foreach等),再加上商業對象關系和規則;推理引擎是一個正向串行的演繹法(data driven)引擎,支持概念相似的論據,詢問和推斷(定義在RuleMI-Data10G)、相似規則的優先級,互斥和預處理(建立在眾多的商業引擎內),它的設計路線是鼓勵在專家設計的商業規則與程序員建立的商業對象之間進行分離。
評選系統的實質是由多人經過一整套流程按規則進行參評的過程行為。鑒于上述情況,評選系統的規則引擎的選取符合NxBRE規則引擎的特點,因此決定將NxBRE規則引擎應用于評選系統。
2 NxBRE規則引擎工作機制
傳統規則引擎系統中的規則處理模塊,主要是由三部分組成,即規則庫、工作內存和推理引擎。而NxBRE規則引擎處理模塊的核心是Working Memory(工作內存),它是由正在運行中的事實庫和一個潛在的空閑的事實庫組成,這個潛在的空閑事實庫是基于操作模式的,可以是全局的、局部的或隔離的。
3 基于NxBRE的評選系統設計業務流程
評選系統的目的是要最終評選出本年度的勘察工程設計大師,整個評選需要經過一整套縝密的評選流程,而且此流程是由多種角色共同協助完成。
與傳統的設計模式類似,基于規則引擎的評選系統的開發模式也包含企業服務的業務流程設計。由于引入了規則引擎,使得業務流程和業務規則分離,因此業務流程的設計大大簡化,不再需要繁瑣的和龐大的條件判斷,減輕業務程序的負擔。業務流程的設計遵從圖1的服務模型。
4 評選系統的實現
4.1 數據庫設計
針對本系統的業務規則,采用基于E-R模型的數據庫設計方法,具體實現的表結構部分如圖2所示。
這里我們列出了3個具有代表性的數據庫表,這3張表中列出的都是系統中的用戶信息,但其側重點各有不同。其中tbl_sysusers表存放的是當前系統中的全部用戶,側重區別用戶的類型;tbl_rptmaininto存放的則是參評的用戶詳細信息。
4.2 業務規則代碼化
代碼化的過程是將評選流程服務具體到實際應用過程,其實就是程序代碼的實現過程。在這個過程中,需要遵循不同的評選流程。重要部分的規則如下:
rulebase“special policies rulebase”
rule“special for architecture”
if
The APPlicant has made outstandingcontributions in the architecture industry
and
The Applicant hasnt Applied in the lastselect
thendeduct
The system will use the architectureselection progress on this Applicants selection
rule“special for energy source”
if
The Applicant has made outstandingcontributions in the energy source industry
and
The APPlicant hasnt Applied in the lastselect
then deduct
The system will use the energy sourceselection progress on this Applicant' s selection
上述規則表明如果是建筑行業的評選,需要滿足如下2個條件:
(1)申請人在建筑行業有過杰出貢獻。
(2)申請人沒有參加上一次的評選。
4.3 程序界面展示
按照上述邏輯,我們做出了全國工程勘察設計大師評選系統,如圖3所示。
5 結束語
從前面的討論可以看出,采用規則引擎可以有效地將業務規則和業務邏輯進行分離,非常適合業務邏輯比較復雜的應用系統,能夠快速完成規則匹配,提高系統的性能。
參考文獻
[1]熊智,徐江燕,王高舉,李江,蔡偉鴻.基于角色和規則引擎的UCON應用模型[J].計算機工程與設計,2013,34(03):831-836.
[2]余文姣,黃夢醒,朱東海.基于改進規則引擎的農業知識推薦系統[J].計算機工程與設計,2012,33(06):2295-2299.
[3]陶曉俊,朱敏.基于規則引擎的業務服務開發模式[J].計算機技術與發展,2008,18(02):115-118.