余軍陽
(浙江出入境檢驗(yàn)檢疫局,浙江 杭州 310012)
隨著各類信息管理系統(tǒng)在各行各業(yè)的不斷普及深化,業(yè)務(wù)數(shù)據(jù)量越來越多時(shí),很多待處理的業(yè)務(wù)信息僅按照一定的業(yè)務(wù)規(guī)則,機(jī)械地由人工操作來完成會(huì)成為一項(xiàng)費(fèi)時(shí)費(fèi)力的任務(wù)[1].如何充分利用信息自動(dòng)化技術(shù),對(duì)機(jī)械人工操作的業(yè)務(wù)處理工作,通過共性分析設(shè)置科學(xué)的業(yè)務(wù)規(guī)則引擎由計(jì)算機(jī)處理,這樣既能提高業(yè)務(wù)工作效能,又能解放業(yè)務(wù)人員生產(chǎn)力,降低人力成本.因此該文提出了一種基于業(yè)務(wù)規(guī)則引擎的管理系統(tǒng)的應(yīng)用設(shè)計(jì)方案,根據(jù)業(yè)務(wù)處理流程情況,事先設(shè)置業(yè)務(wù)規(guī)則引擎,通過業(yè)務(wù)規(guī)則的校驗(yàn),把符合規(guī)則的數(shù)據(jù)交由計(jì)算機(jī)后臺(tái)高效處理,而且業(yè)務(wù)規(guī)則引擎可隨著實(shí)際業(yè)務(wù)的改變而優(yōu)化以適應(yīng)業(yè)務(wù)的變化,增強(qiáng)應(yīng)用系統(tǒng)的適用性和重用性,提高業(yè)務(wù)處理的效能,為企業(yè)實(shí)現(xiàn)節(jié)省時(shí)間、人力成本等目標(biāo).
1.1 業(yè)務(wù)需求分析
分析各類業(yè)務(wù)處理流程,需要實(shí)現(xiàn)以下幾方面:1) 數(shù)據(jù)的采集,通過各類業(yè)務(wù)應(yīng)用管理系統(tǒng)采集各類業(yè)務(wù)的電子信息;2) 業(yè)務(wù)規(guī)則的制訂,通過對(duì)簡(jiǎn)單機(jī)械的人工業(yè)務(wù)操作分析,提取其共性的業(yè)務(wù)規(guī)則;3) 業(yè)務(wù)規(guī)則的抽象化,通過對(duì)業(yè)務(wù)規(guī)則的分析,抽象出計(jì)算機(jī)能處理的判斷規(guī)則;4) 業(yè)務(wù)規(guī)則引擎,采集的數(shù)據(jù)根據(jù)業(yè)務(wù)規(guī)則引擎判斷是否存儲(chǔ)到符合規(guī)則數(shù)據(jù)庫;5) 信息的處理,對(duì)符合業(yè)務(wù)規(guī)則引擎的數(shù)據(jù),交由后臺(tái)業(yè)務(wù)服務(wù)端程序高效處理[2].
針對(duì)上述需求,進(jìn)行基于業(yè)務(wù)規(guī)則引擎的管理系統(tǒng)的應(yīng)用研究,應(yīng)用研究的目標(biāo)是通過計(jì)算機(jī)根據(jù)業(yè)務(wù)規(guī)則引擎快速地校驗(yàn)符合規(guī)則的數(shù)據(jù),然后利用后臺(tái)計(jì)算機(jī)高效處理業(yè)務(wù)信息.如圖1所示,主要涉及兩大部分:用戶端和業(yè)務(wù)端.其中業(yè)務(wù)端包括業(yè)務(wù)應(yīng)用服務(wù)器、業(yè)務(wù)數(shù)據(jù)庫、業(yè)務(wù)規(guī)則引擎應(yīng)用服務(wù)器、符合規(guī)則數(shù)據(jù)庫和后臺(tái)業(yè)務(wù)服務(wù)端群組成[3];其中用戶端包括用戶的臺(tái)式電腦、筆記本電腦等終端設(shè)備.
圖1 系統(tǒng)框架圖
1.2 各模塊功能和流程
圖2 總體業(yè)務(wù)流程圖
基于業(yè)務(wù)規(guī)則引擎的管理系統(tǒng)各模塊的功能和流程如下:1) 用戶端:主要由各類應(yīng)用管理系統(tǒng)提供用戶信息交互的功能,如業(yè)務(wù)數(shù)據(jù)提交、信息查詢等;2) 業(yè)務(wù)應(yīng)用服務(wù)器:接受用戶通過應(yīng)用管理系統(tǒng)提交的各類業(yè)務(wù)數(shù)據(jù)或請(qǐng)求,提供各類業(yè)務(wù)服務(wù)的平臺(tái);3) 業(yè)務(wù)數(shù)據(jù)庫:通過業(yè)務(wù)應(yīng)用服務(wù)器提交的各類業(yè)務(wù)數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)倉庫;4) 業(yè)務(wù)規(guī)則引擎應(yīng)用服務(wù)器:企業(yè)管理員根據(jù)實(shí)際業(yè)務(wù)情況,事先設(shè)置業(yè)務(wù)規(guī)則,并根據(jù)實(shí)際業(yè)務(wù)的需求,調(diào)整相應(yīng)的業(yè)務(wù)規(guī)則引擎.通過對(duì)業(yè)務(wù)數(shù)據(jù)庫數(shù)據(jù)的篩選,符合業(yè)務(wù)規(guī)則引擎的數(shù)據(jù)提交到符合規(guī)則數(shù)據(jù)庫,如果不符合業(yè)務(wù)規(guī)則的數(shù)據(jù)通過業(yè)務(wù)提醒助手交由人工處理,然后回寫到業(yè)務(wù)數(shù)據(jù)庫[4];5) 后臺(tái)業(yè)務(wù)服務(wù)端群:主要并發(fā)處理符合業(yè)務(wù)規(guī)則的數(shù)據(jù),然后回寫到業(yè)務(wù)數(shù)據(jù)庫.
1.3 業(yè)務(wù)流程
根據(jù)業(yè)務(wù)規(guī)則引擎需求的總體分析,業(yè)務(wù)端主要由業(yè)務(wù)規(guī)則引擎和后臺(tái)業(yè)務(wù)處理端群組成(見圖2).
業(yè)務(wù)規(guī)則引擎主要用于數(shù)據(jù)校驗(yàn)功能,然后由后臺(tái)業(yè)務(wù)處理端群根據(jù)不同業(yè)務(wù)規(guī)則引擎執(zhí)行不同的業(yè)務(wù)操作.
通過用戶端提交業(yè)務(wù)數(shù)據(jù)到業(yè)務(wù)數(shù)據(jù)庫,各類業(yè)務(wù)規(guī)則引擎對(duì)各類數(shù)據(jù)進(jìn)行校驗(yàn)后存儲(chǔ)到符合業(yè)務(wù)規(guī)則數(shù)據(jù)庫.為了防止后臺(tái)業(yè)務(wù)處理端同時(shí)爭(zhēng)搶同一個(gè)業(yè)務(wù)號(hào),引入數(shù)據(jù)緩沖池技術(shù)解決資源爭(zhēng)搶問題.各類后臺(tái)業(yè)務(wù)處理端定時(shí)掃描數(shù)據(jù)緩沖池,定時(shí)掃描的時(shí)間間隔可以動(dòng)態(tài)設(shè)置,這樣設(shè)計(jì)可以根據(jù)實(shí)際業(yè)務(wù)量情況動(dòng)態(tài)調(diào)優(yōu).當(dāng)數(shù)據(jù)緩沖池有數(shù)據(jù),后臺(tái)業(yè)務(wù)處理端就取走一批數(shù)據(jù),而不是每次只取走一個(gè)業(yè)務(wù)號(hào),這樣可以防止多個(gè)后臺(tái)業(yè)務(wù)處理端不停地掃描數(shù)據(jù)緩沖池,后臺(tái)業(yè)務(wù)端取到一批數(shù)據(jù)后,判斷該業(yè)務(wù)是否已經(jīng)被處理,如果沒有就進(jìn)行業(yè)務(wù)操作,接著取下一個(gè)業(yè)務(wù)號(hào),直到當(dāng)前批次業(yè)務(wù)被處理結(jié)束.
如圖2所示,業(yè)務(wù)規(guī)則引擎在整個(gè)系統(tǒng)中具有非常重要的作用,因此,在設(shè)計(jì)該部分的時(shí)候,要做到業(yè)務(wù)數(shù)據(jù)校驗(yàn)的快速和高效,業(yè)務(wù)規(guī)則設(shè)置和調(diào)整的靈活方便.
2.1 業(yè)務(wù)規(guī)則引擎設(shè)置
圖3 業(yè)務(wù)規(guī)則引擎結(jié)構(gòu)圖
1) 業(yè)務(wù)規(guī)則引擎由一條或多條子業(yè)務(wù)規(guī)則組成,具有類似樹形目錄結(jié)構(gòu)的上下級(jí)關(guān)系.每一條子規(guī)則包含有以下元素(如圖3所示).
【規(guī)則名稱和描述】:定義規(guī)則的名稱和規(guī)則的含義;【表達(dá)式】:用于設(shè)置各條件的邏輯關(guān)系.例如:()、||,&&等運(yùn)算符;【順序號(hào)】:用于設(shè)置同一級(jí)規(guī)則執(zhí)行的先后次序;【是否有效】:用于設(shè)置當(dāng)前規(guī)則是否有效;【依賴】:用于說明當(dāng)前規(guī)則設(shè)置的依據(jù);【正向跳轉(zhuǎn)】:當(dāng)滿足表達(dá)式時(shí),跳轉(zhuǎn)到設(shè)置的規(guī)則處開始執(zhí)行;【反向跳轉(zhuǎn)】:當(dāng)不滿足表達(dá)時(shí),跳轉(zhuǎn)到設(shè)置的規(guī)則處開始執(zhí)行;【有效開始時(shí)間】:設(shè)置規(guī)則生效的時(shí)間;【有效結(jié)束時(shí)間】:設(shè)置規(guī)則失效的時(shí)間;【條件維護(hù)】:設(shè)置規(guī)則的條件,可添加多個(gè)條件;【結(jié)論】:分正結(jié)論和反結(jié)論兩種,滿足表達(dá)式時(shí),執(zhí)行正結(jié)論,不滿足表達(dá)式時(shí),執(zhí)行反結(jié)論;【子規(guī)則集合】:用于包含子規(guī)則的集合.
2) 業(yè)務(wù)規(guī)則引擎的執(zhí)行總是從父目錄開始執(zhí)行起,當(dāng)父規(guī)則條件不滿足,子規(guī)則不會(huì)執(zhí)行;
3) 結(jié)論優(yōu)先原則,正結(jié)論優(yōu)先指當(dāng)滿足該條件的時(shí)候,就繼續(xù)校驗(yàn)下條規(guī)則,直到符合所有的子規(guī)則,就結(jié)束該次校驗(yàn),并把數(shù)據(jù)放入符合規(guī)則數(shù)據(jù)庫,反之就結(jié)束;反結(jié)論優(yōu)先指不滿足該條件時(shí),就繼續(xù)校驗(yàn)下條規(guī)則,所有的反結(jié)論都不符合,就結(jié)束該次校驗(yàn),并把數(shù)據(jù)放入符合規(guī)則數(shù)據(jù)庫,反之就結(jié)束.
2.2 規(guī)則表達(dá)式
表達(dá)式可以由一條或多條語句組成,當(dāng)多條語句組成時(shí),語句間的連接由以下幾類運(yùn)算表示.
1) 括號(hào)運(yùn)算:“()”表示括號(hào)內(nèi)的為一個(gè)整體;2) 和運(yùn)算:“&&”表示“并且”;3) 或運(yùn)算:“‖”表示“或者”.例如:A&&((B‖C)&&(D‖E))組成一個(gè)完整的表達(dá)式.
2.3 規(guī)則的條件
表1 字段類型的操作符關(guān)系
條件設(shè)置主要是描述語句中的判斷依據(jù)、范圍選擇、數(shù)值比較等常規(guī)的條件判別.
條件設(shè)置的結(jié)構(gòu)由3部分組成:左邊項(xiàng)、操作符、右邊項(xiàng).
1) 左邊項(xiàng):根據(jù)各個(gè)業(yè)務(wù)應(yīng)用的實(shí)際情況設(shè)置,該部分主要來源于各類業(yè)務(wù)表的元素.
2) 操作符:用于判斷左邊項(xiàng)和右邊項(xiàng)的邏輯關(guān)系,主要包括:= =、< >、<、>、>=、<=、Between、Not between、Match、No match、Contains、Not contains等邏輯關(guān)系,主要字段類型的操作符關(guān)系,如表1所示,打“√”表示支持,打“×”表示不支持.
3) 右邊項(xiàng):根據(jù)左邊項(xiàng)的業(yè)務(wù)表元素設(shè)置,主要包括:靜態(tài)字符串、靜態(tài)字符串集、靜態(tài)別名結(jié)果集、動(dòng)態(tài)SQL查詢結(jié)果集.
2.4 規(guī)則判斷后的結(jié)論
結(jié)論用于業(yè)務(wù)規(guī)則判斷后的結(jié)果描述,如果當(dāng)前批次業(yè)務(wù)不滿足業(yè)務(wù)規(guī)則時(shí),就自動(dòng)記錄不滿足的原因,然后跳出業(yè)務(wù)規(guī)則引擎,管理員事后可追查某一單業(yè)務(wù)為何不滿足業(yè)務(wù)規(guī)則的依據(jù).結(jié)論分為固定結(jié)論和自定義結(jié)論.固定結(jié)論是事先定義的處理邏輯描述.自定義結(jié)論根據(jù)業(yè)務(wù)需求動(dòng)態(tài)設(shè)置并使用.
2.5 效能分析
業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)量越大,采用業(yè)務(wù)規(guī)則引擎的管理系統(tǒng)效能就越高,相應(yīng)節(jié)省人力勞動(dòng)成本就越多.業(yè)務(wù)規(guī)則引擎制定的越細(xì)化、越規(guī)范,處理效率就越高,相應(yīng)的后臺(tái)業(yè)務(wù)端執(zhí)行的效能也越快.業(yè)務(wù)規(guī)則引擎的制定應(yīng)盡量科學(xué),避免子規(guī)則引擎層數(shù)太多,因?yàn)槊繂螛I(yè)務(wù)都需要執(zhí)行判斷,如子規(guī)則數(shù)目和層數(shù)太多勢(shì)必會(huì)降低系統(tǒng)的判斷執(zhí)行效率.應(yīng)該根據(jù)實(shí)際業(yè)務(wù)量情況,科學(xué)設(shè)計(jì)數(shù)據(jù)緩沖池的大小以及后臺(tái)業(yè)務(wù)端群的數(shù)目及定時(shí)掃描的頻率.該研究已應(yīng)用于多家大型企業(yè)的計(jì)費(fèi)和業(yè)務(wù)處理系統(tǒng),達(dá)到了提高業(yè)務(wù)處理效率和準(zhǔn)確率,減少前臺(tái)業(yè)務(wù)人員數(shù)量,節(jié)省相應(yīng)人員辦公開支等目的.
文章闡述了基于業(yè)務(wù)規(guī)則引擎的管理系統(tǒng)的應(yīng)用研究,給出了系統(tǒng)結(jié)構(gòu)框架,進(jìn)行了具體的業(yè)務(wù)流程的分析,并詳細(xì)解釋了業(yè)務(wù)規(guī)則引擎的設(shè)置結(jié)構(gòu).采用業(yè)務(wù)規(guī)則引擎的管理系統(tǒng)有助于降低人工成本,減少人為操作誤差,規(guī)范業(yè)務(wù)處理過程,提高業(yè)務(wù)處理效能,增強(qiáng)管理系統(tǒng)的業(yè)務(wù)安全性、系統(tǒng)的重用性和適用性.該模式適用于日常業(yè)務(wù)信息量大、流程規(guī)范的企業(yè)應(yīng)用,例如:電信、銀行、醫(yī)院、電力、金融等需要大量人工處理業(yè)務(wù)的單位.下一步將重點(diǎn)研究:1) 業(yè)務(wù)規(guī)則引擎的性能調(diào)優(yōu),進(jìn)而提高整體系統(tǒng)的效能;2) 引入智能業(yè)務(wù)引擎庫,在調(diào)優(yōu)的基礎(chǔ)上實(shí)現(xiàn)智能的給決策或管理人員科學(xué)的業(yè)務(wù)優(yōu)化方案.
[1] 王李軍,陶明亮,張曙,等.面向業(yè)務(wù)規(guī)則引擎研究[J].計(jì)算機(jī)工程,2007(24):52-56.
[2] 林峰,嚴(yán)雋薇.工作流引擎規(guī)范接口的設(shè)計(jì)與實(shí)現(xiàn)[J].成組技術(shù)與生產(chǎn)現(xiàn)代化,2006(4):8-11.
[3] 黃皞,潘正運(yùn),梁冰,等.業(yè)務(wù)規(guī)則引擎Ilog JRules工作引擎的工作機(jī)制分析[J].微計(jì)算機(jī)信息,2006(24):112-114.
[4] 孫勇強(qiáng),鄧詠梅,李續(xù)武.基于EJB的業(yè)務(wù)規(guī)則引擎的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005(20):220-222.