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