倪 曌 白利芳 董奧冬
1(國(guó)網(wǎng)孝感供電公司 湖北 孝感 432000)2(信息工程大學(xué) 河南 鄭州 450001)3(國(guó)網(wǎng)河南省電力公司焦作供電公司 河南 焦作 454000)
一種面向業(yè)務(wù)規(guī)則和流程的推理引擎架構(gòu)
倪 曌1白利芳2董奧冬3
1(國(guó)網(wǎng)孝感供電公司 湖北 孝感 432000)2(信息工程大學(xué) 河南 鄭州 450001)3(國(guó)網(wǎng)河南省電力公司焦作供電公司 河南 焦作 454000)
目前基于業(yè)務(wù)流程模型控制規(guī)則引擎的工作流引擎已經(jīng)開始提倡使用。針對(duì)這種情況, 基于BPMN業(yè)務(wù)流程模型的工作流引擎,提出一種適用于業(yè)務(wù)流程模型和規(guī)則集成與執(zhí)行的推理引擎架構(gòu)。該架構(gòu)引入XTT2的規(guī)則表示,集成了jBPM工作流管理系統(tǒng)和HeaRT規(guī)則引擎,由工作流引擎控制專用規(guī)則推理引擎執(zhí)行規(guī)則決策表運(yùn)行。原型實(shí)現(xiàn)表明了該架構(gòu)可實(shí)現(xiàn)規(guī)則任務(wù)的可視化設(shè)計(jì),并支持對(duì)得到的規(guī)則任務(wù)模型的形式驗(yàn)證。
BPMN 業(yè)務(wù)流程模型 規(guī)則
在業(yè)務(wù)處理程序中,業(yè)務(wù)規(guī)則是一種比較優(yōu)良的知識(shí)表示和處理方式,然而對(duì)規(guī)則推理而言在處理大型規(guī)則庫(kù)時(shí)仍有許多問題需要解決。大多數(shù)現(xiàn)有的推理引擎使用如Rete模式匹配算法進(jìn)行規(guī)則推理,但這種方法中規(guī)則搜索策略在給定環(huán)境下對(duì)規(guī)則選擇所掌握的信息不足,影響規(guī)則匹配效率。為了解決這一問題,已經(jīng)提出了多種不同的推理控制策略。例如文獻(xiàn)[1]針對(duì)疾病發(fā)展的推理引擎設(shè)計(jì)了一個(gè)基于規(guī)則的摘要決策推理策略,文獻(xiàn)[2]則針對(duì)XML數(shù)據(jù)庫(kù)引入推理樹概念,并提出相應(yīng)的動(dòng)態(tài)推理控制策略。但對(duì)普遍的業(yè)務(wù)系統(tǒng)的規(guī)則推理,一些業(yè)務(wù)處理程序則使用了業(yè)務(wù)流程BP(business process)模型來進(jìn)行設(shè)計(jì)開發(fā),其中的業(yè)務(wù)流程模型與標(biāo)注BPMN(Business Process Model and Notation)能夠建模更復(fù)雜的控制流程[3]。目前,基于BP模型控制規(guī)則引擎的工作流引擎已經(jīng)開始提倡使用,但是仍然缺少一個(gè)清晰的集成了規(guī)則和流程的推理引擎概念架構(gòu)。
本文提出了一個(gè)面向規(guī)則與業(yè)務(wù)流程模型的建模、集成和執(zhí)行的新推理引擎架構(gòu),該架構(gòu)主要面向基于BPMN業(yè)務(wù)流程模型的工作流引擎。工作流引擎進(jìn)行推理控制,底層的業(yè)務(wù)規(guī)則表示了業(yè)務(wù)邏輯的某些特定部分,在業(yè)務(wù)流程模型中所涉及相同工作內(nèi)容的規(guī)則被分到一個(gè)任務(wù)中,稱為一項(xiàng)規(guī)則任務(wù)。規(guī)則任務(wù)模型由定義好的決策表進(jìn)行建模得到,在運(yùn)行環(huán)境中,決策表的執(zhí)行由工作流引擎控制的專用規(guī)則推理引擎實(shí)現(xiàn)。在某些相關(guān)的開發(fā)工具(Drools)提供了類似方法的功能實(shí)現(xiàn)[4],然而本文提出的架構(gòu)具有更重要的優(yōu)勢(shì):一方面,規(guī)則模型的形式化定義可以實(shí)現(xiàn)對(duì)規(guī)則庫(kù)的質(zhì)量控制;另一方面,BPMN流程模型的某些控制部件可以轉(zhuǎn)化為規(guī)則。
復(fù)雜的業(yè)務(wù)智能處理程序需要先進(jìn)的建模方案,并且業(yè)務(wù)設(shè)計(jì)者、軟件工程師和普通程序員必須能夠容易地學(xué)習(xí)掌握這些建模方案。在業(yè)務(wù)流程建模中,UML語(yǔ)言對(duì)于一般的業(yè)務(wù)使用者而言非常難以理解[5],因此在業(yè)務(wù)流程建模中引入了BPMN標(biāo)注法。雖然這種標(biāo)注法可以很好地解決建模過程中工作流程的表示問題,但是只利用BPMN不能詳細(xì)地表達(dá)出流程中任務(wù)的邏輯。
業(yè)務(wù)規(guī)則BR(Business Rules)描述是一種能夠被用來具體地表示業(yè)務(wù)流程中任務(wù)邏輯的方法,其產(chǎn)生于已經(jīng)建立完善規(guī)則的系統(tǒng)。然而,對(duì)流程和規(guī)則的抽象是在不同層面上的,通常情況下規(guī)則在多數(shù)系統(tǒng)中用自然語(yǔ)言進(jìn)行描述,有時(shí)規(guī)則也會(huì)用結(jié)構(gòu)化形式表示。流程和規(guī)則之間的這種差異造成兩者語(yǔ)義不匹配的問題,表現(xiàn)在建模過程中的概念表示和執(zhí)行實(shí)現(xiàn)的困難。因此,研究出一種面向業(yè)務(wù)規(guī)則和業(yè)務(wù)流程建模的方法對(duì)未來確保高質(zhì)量的系統(tǒng)實(shí)現(xiàn)是非常重要的。
雖然BP和BR在抽象層次上具有差異,但是規(guī)則與流程在業(yè)務(wù)系統(tǒng)中是相互補(bǔ)充的關(guān)系。BPMN 2.0中也體現(xiàn)出規(guī)則和流程的這種差異[6],這說明現(xiàn)有的BPMN不適合用來建模這樣的規(guī)則流程。一個(gè)BPMN流程模型應(yīng)該既能定義上層的系統(tǒng)行為,又能用規(guī)則說明下層的流程邏輯。目前,有許多針對(duì)整合規(guī)則和流程的建模方法正在進(jìn)行的研究。文獻(xiàn)[7]引入了ECA(Event Condition Action)符號(hào)來對(duì)業(yè)務(wù)流程中進(jìn)行規(guī)則的一致化分解;文獻(xiàn)[8]實(shí)現(xiàn)了一個(gè)與任務(wù)一致的自包含子過程可擴(kuò)展庫(kù),能夠根據(jù)規(guī)則上下文進(jìn)行動(dòng)態(tài)決策;文獻(xiàn)[9] 提出了一種面向規(guī)則和流程相結(jié)合的建模語(yǔ)言rBPM,該語(yǔ)言集成了業(yè)務(wù)流程建模符號(hào)REWERSE。但由于現(xiàn)存的方法不能準(zhǔn)確地表示規(guī)則和流程進(jìn)行整合的細(xì)節(jié),不能很好地支持流程和規(guī)則的可視化建模,且沒有考慮質(zhì)量問題,此外能夠提供整合規(guī)則和流程建模環(huán)境的工具也不多,因此仍然缺少一種可用的、標(biāo)準(zhǔn)化的、一致化的方法。
本文提出了支持業(yè)務(wù)規(guī)則描述和BPMN流程模型二者結(jié)合的集成架構(gòu),采用了的XTT2的規(guī)則表示(如決策表或決策網(wǎng)絡(luò))用于定義流程中的任務(wù)邏輯。XTT2規(guī)則描述利用有限值集合的屬性邏輯ALSV(FD)(Attributive Logic with Set Values over Finite Domains),可以在過程中檢查規(guī)則的語(yǔ)法。此外,XTT2規(guī)則描述還具有可視化知識(shí)表示能力,使該方法在任務(wù)評(píng)估上占有很大優(yōu)勢(shì)。
本文中能夠整合BP和BR模型的集成架構(gòu)jBPM-HeaRT是在運(yùn)行基于BPMN的BP模型的開源jBPM工作流引擎的基礎(chǔ)上提出的,該工作流引擎能夠與運(yùn)行底層規(guī)則邏輯的HeaRT(HeKatE Run-Time Environment)規(guī)則引擎進(jìn)行通信。
JBoss jBPM是一個(gè)工作流管理系統(tǒng),能夠?yàn)楣ぷ髁鞯臉I(yè)務(wù)流程管理到流程編排提供可執(zhí)行流程語(yǔ)言的平臺(tái),該系統(tǒng)架構(gòu)是基于文獻(xiàn)[10]中的WfMC的參考模型發(fā)展而來。jBPM提供了一個(gè)執(zhí)行業(yè)務(wù)流程的流程引擎和兩個(gè)可選核心服務(wù),一是歷史日志記錄,能夠記錄所有流程實(shí)例的當(dāng)前和歷史狀態(tài)信息;二是當(dāng)有人工執(zhí)行者參與到流程中在其任務(wù)生命周期提供人工任務(wù)服務(wù)。jBPM具有可插入架構(gòu),能夠作為一個(gè)可擴(kuò)展的、可定制的工具集成到本文研究的運(yùn)行環(huán)境中。
jBPM工具提供BPMN 2.0 XML格式用于流程的定義。完整的BPMN 2.0規(guī)范包括流程編排和合作的細(xì)節(jié),但jBPM僅注重具體的執(zhí)行流程。jBPM已被應(yīng)用于文獻(xiàn)[11,12]中相關(guān)的工作流建模,本文只針對(duì)業(yè)務(wù)流程的建模應(yīng)用。
2.1 知識(shí)表示
本方案中,BPMN用于過程的工作流建模,業(yè)務(wù)規(guī)則即SKE(Semantic Knowledge Engineering)方法,用于規(guī)范描述流程任務(wù)中的具體邏輯。在SKE中,XTT2規(guī)則表示提供了規(guī)則的邏輯運(yùn)算表達(dá)式,并提供支持規(guī)則邏輯和可視化規(guī)范的結(jié)構(gòu)化知識(shí)表示[13]。XTT2支持高級(jí)控制推理和的生產(chǎn)系統(tǒng)的形式分析,提供了基于ALSV(FD)邏輯的規(guī)則描述語(yǔ)言,這樣的知識(shí)表示方法使XTT2語(yǔ)言比命題邏輯具有更強(qiáng)的表達(dá)能力。XTT2規(guī)則庫(kù)包含屬性和其相應(yīng)的值,每一對(duì)屬性-值視為一個(gè)事實(shí)(fact),所有屬性-值對(duì)的集合定義為系統(tǒng)狀態(tài)s:
s:(A1=V1)∧(A2=V2)∧…∧(An=Vn)
其中An指屬性,Vn是屬性對(duì)應(yīng)的值,屬性個(gè)數(shù)(事實(shí))在推理過程中是常數(shù),規(guī)則庫(kù)的職能由屬性值的改變而發(fā)生變化。XTT2將規(guī)則庫(kù)模塊化,涉及相同內(nèi)容的規(guī)則被放到同一個(gè)任務(wù)中,一個(gè)任務(wù)對(duì)應(yīng)一個(gè)決策表。因此,只有具有相同條件和決策屬性的規(guī)則可以被放置在一個(gè)決策表中,即在決策表中的每個(gè)規(guī)則確定同一組屬性的值。決策表連接在一起形成的類似網(wǎng)絡(luò)結(jié)構(gòu)的決策網(wǎng),XTT2將決策網(wǎng)絡(luò)和決策表混合進(jìn)行知識(shí)表示。
例如自動(dòng)取款機(jī)ATM中的XTT2行為決策表,如表1所示。表頭包含所有常見規(guī)則的屬性,表中每一條規(guī)則存儲(chǔ)為一行,包括5個(gè)標(biāo)記為(?)的條件列和標(biāo)記為(→)動(dòng)作列。條件即五種屬性,分別為是否具有權(quán)限(A,authorizated),密碼輸入失敗次數(shù)(F,failedAttempts),用戶請(qǐng)求(UR,userRequest),用戶金額變化(UAD,userAmountDifference),ATM金額變化(AAD,ATMAmountDifference),動(dòng)作(AA,ATMActivity)為ATM機(jī)的輸出反饋。
表1 ATM機(jī)中XTT2決策表
2.2 原型架構(gòu)
該模型在HeaRT推理引擎上運(yùn)行, HeaRT為其用HMR格式表示的業(yè)務(wù)規(guī)則提供了相應(yīng)的執(zhí)行環(huán)境。jBPM-HeaRT架構(gòu)使用本地工作流引擎BPMN 2.0 jBPM,它是一個(gè)基于流程虛擬機(jī)(PVM,Process Virtual Machine)的通用流程引擎,用BPMN 2.0來描述業(yè)務(wù)流程執(zhí)行。jBPM-HeaRT還需將jBPM流程引擎集成到HeaRT規(guī)則引擎上,jBPM與HeaRT的集成架構(gòu)的概要如圖1所示,除了說明該架構(gòu)中的執(zhí)行業(yè)務(wù)流程和規(guī)則的引擎,整個(gè)jBPM-HeaRT架構(gòu)還解釋了利用業(yè)務(wù)規(guī)則對(duì)業(yè)務(wù)流程模型進(jìn)行建模和驗(yàn)證的實(shí)現(xiàn)過程。
圖1 jBPM-HeaRT架構(gòu)
jBPM-HeaRT架構(gòu)分為業(yè)務(wù)流程和規(guī)則的建模、驗(yàn)證和執(zhí)行三個(gè)層次。
① 建模層:XTT2業(yè)務(wù)規(guī)則決策表通過網(wǎng)絡(luò)接口(TCP/IP)利用HQEd編輯器進(jìn)行可視化編輯,業(yè)務(wù)流程BPMN模型利用jBPM編輯器實(shí)現(xiàn);
② 驗(yàn)證層:XTT2規(guī)則表示法支持在HeaRT引擎和HeKatE的驗(yàn)證和分析架構(gòu)(HalVA,HeKatE Verification and Analysis framework)下對(duì)XTT2決策表進(jìn)行形式化驗(yàn)證,驗(yàn)證過程中可視化規(guī)則決策表自動(dòng)轉(zhuǎn)化為HMR表示規(guī)則;
③ 執(zhí)行層:在業(yè)務(wù)執(zhí)行中,BPMN流程模型運(yùn)行在jBPM引擎上,BR任務(wù)觸發(fā)選擇的XTT2決策表執(zhí)行規(guī)則,兩者之間的通信實(shí)現(xiàn)流程與規(guī)則的統(tǒng)一執(zhí)行,通信功能的實(shí)現(xiàn)見3.1節(jié)。
由上述可知,這個(gè)一般化的架構(gòu)可以實(shí)現(xiàn)對(duì)流程和規(guī)則的可視化建模,并能夠驗(yàn)證執(zhí)行一個(gè)完整的特定BPMN模型。
2.3 規(guī)則驗(yàn)證
1) 單一規(guī)則不一致
單一規(guī)則產(chǎn)生的矛盾有兩種可能:一是條件和結(jié)論的不一致,二是條件間不一致。規(guī)則的條件和結(jié)論部分存在同一屬性,則有可能產(chǎn)生矛盾。單一規(guī)則條件間不一致檢測(cè)方法:
① 一條規(guī)則的條件部分的創(chuàng)建屬性列表;
② 從屬性列表的第一個(gè)屬性開始,找出所有包含該屬性的條件,直到屬性列表中最后一個(gè)屬性;
③ 檢驗(yàn)所選屬性的條件集的交集是否為空,若為空集,則該規(guī)則矛盾。
2) 規(guī)則間不一致
兩條規(guī)則間矛盾,即當(dāng)兩條規(guī)則的動(dòng)作部分不一致時(shí),存在某一狀態(tài)這兩個(gè)規(guī)則都為真,驗(yàn)證方法如下:
① 將同一規(guī)則任務(wù)即XTT2決策表中兩條規(guī)則下的狀態(tài)集合作交集;
② 如果交集不為空,且兩條規(guī)則的動(dòng)作部分不相同,則兩條規(guī)則間矛盾。
3) 完整性檢測(cè)
為檢查系統(tǒng)完整性,必須將所有可能的輸入數(shù)據(jù)傳給系統(tǒng),并根據(jù)系統(tǒng)響應(yīng)判斷完整性,實(shí)現(xiàn)起來比較復(fù)雜。但是,對(duì)于一張XTT2決策表的完整性檢測(cè),則利用決策樹算法進(jìn)行檢驗(yàn)。決策樹算法檢測(cè)的思想是建立一個(gè)系統(tǒng)狀態(tài)樹,每個(gè)分支代表一個(gè)狀態(tài),樹的每一層代表狀態(tài)包含的屬性。完整性檢測(cè)基于深度優(yōu)先算法,對(duì)比分析XTT2決策表,當(dāng)發(fā)現(xiàn)某一分支沒有被任何規(guī)則所包含,則此分支及其所有的子分支都不用繼續(xù)檢測(cè)。
4) 規(guī)則包含
若一條規(guī)則的條件部分包含另一條規(guī)則的條件部分且動(dòng)作部分相同,對(duì)這種包含關(guān)系的測(cè)試方法如下:
① 將給定任務(wù)即XTT2決策表中規(guī)則下的狀態(tài)集合作交集;
② 若交集不為空,且規(guī)則的動(dòng)作部分相同,則規(guī)則間存在包含關(guān)系。
jBPM-HeaRT是一種能夠支持集成XTT2業(yè)務(wù)規(guī)則和BPMN流程的工具架構(gòu),相較于大多不支持高級(jí)規(guī)則表示的工具,該架構(gòu)利用了決策表來定義流程中的任務(wù)邏輯,決策表由HQEd編輯器進(jìn)行可視化編輯,表中的規(guī)則使用ALSV(FD)邏輯形式化表示,在設(shè)計(jì)定義過程中還可以進(jìn)行語(yǔ)法檢查。該架構(gòu)主要實(shí)現(xiàn)了jBPM和HeaRT的通信功能,使基于規(guī)則的系統(tǒng)能夠進(jìn)行流程和規(guī)則統(tǒng)一建模執(zhí)行。
3.1 jBPM與HeaRT通信
本架構(gòu)提供了執(zhí)行流程模型的集成環(huán)境,架構(gòu)原型使用了jBPM流程引擎集成HeaRT推理引擎實(shí)現(xiàn)。利用HeaRT套接字接口對(duì)具體規(guī)則任務(wù)實(shí)現(xiàn)的完整BP模型進(jìn)行jBPM建模,HeaRT引擎作為服務(wù)器運(yùn)行,當(dāng)處理與jBPM的通信時(shí)HeaRT則作為客戶端運(yùn)行,之所以能夠?qū)崿F(xiàn)這樣的工作模式是由于jBPM-HeaRT架構(gòu)實(shí)現(xiàn)了BPMN模型任務(wù)與相應(yīng)XTT2決策表的聯(lián)結(jié)。在jBPM-HeaRT架構(gòu)原型中,jBPM向HeaRT發(fā)送以下的消息:
① 以“H”開頭命名的規(guī)則任務(wù)用HeaRT執(zhí)行,每個(gè)規(guī)則任務(wù)對(duì)應(yīng)一個(gè)XTT2決策表。
② 在規(guī)則庫(kù)中規(guī)則流組與XTT2決策表的列表(或狀態(tài))相關(guān)聯(lián)。
③ 如果模型狀態(tài)不是特定的,則HeaRT引擎從當(dāng)前狀態(tài)開始。
④ HeaRT引擎推理出的狀態(tài)屬性結(jié)果作為過程實(shí)例的環(huán)境變量保存。
這些工具通過專用API進(jìn)行通信,HeaRT引入到執(zhí)行層可以支持多種常見的編程語(yǔ)言(如Java,PHP和Python)。該集成模塊的功能是實(shí)現(xiàn)多個(gè)客戶同時(shí)與一個(gè)作為推理服務(wù)器的HeaRT實(shí)例工作。 HeaRT與jBPM之間的通信通過網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn),并且由專門的HConnect類(調(diào)用JHeroic集成庫(kù))控制。jBPM提供了專門的接口API(Knowledge Builder類、KnowledgeBase類、KnowledgeAgent類等),這些API由Java編寫,提供了類和接口的操作。
在Drools的流程執(zhí)行過程中,與HeaRT的通信由jBPM引擎進(jìn)行初始化。Knowledge Builder類用于從文件中讀取并編譯知識(shí)庫(kù)(knowledge base),通過Knowledge Builder類向knowledge base中添加新知識(shí),HConnect類用于向HeaRT讀取和添加XTT2模型,并調(diào)用fireAllRules方法執(zhí)行模型。
3.2 實(shí)例說明
為驗(yàn)證jBPM和XTT2的轉(zhuǎn)換和集成關(guān)系,下面對(duì)ATM自動(dòng)取款機(jī)實(shí)例進(jìn)行說明。
1) BPMN模型和XTT2決策表
ATM機(jī)獲得客戶的儲(chǔ)蓄的決策過程:一個(gè)客戶通過插入卡并輸入正確的PIN碼獲得授權(quán),然后客戶可能會(huì)取款或要求打印憑條。圖2顯示了該例子的流程模型,可以看出規(guī)則任務(wù)和XTT2決策表與腳本任務(wù)和HeaRT輸出之間的依賴關(guān)系,該BPMN模型可在jBPM中可視化編輯得到。
圖2 jBPM對(duì)ATM機(jī)建模的BPMN模型
ATM機(jī)的XTT2決策表由HQEd編輯器可視化編輯得到,如表1所示。
2) 規(guī)則完整性驗(yàn)證
ATM機(jī)XTT2決策表的規(guī)則完整性利用決策樹算法進(jìn)行檢驗(yàn)。XTT2決策表在HeKatE上自動(dòng)轉(zhuǎn)化為HMR規(guī)則格式,如表1的第一條規(guī)則轉(zhuǎn)化為HMR形式:
[A eq false, F lt 3, UR eq any, UAD eq any]
==> [AA set (askForPIN)]
HalVA可以根據(jù)生成的HMR形式的規(guī)則構(gòu)建決策樹,樹的每一個(gè)分支代表ATM機(jī)系統(tǒng)的一個(gè)狀態(tài),利用深度優(yōu)先算法遍歷所有狀態(tài)。對(duì)比XTT2決策表,當(dāng)且僅當(dāng)對(duì)任意一個(gè)系統(tǒng)可能出現(xiàn)的狀態(tài),都存在一條規(guī)則包含該狀態(tài)時(shí),XTT2決策表具有規(guī)則完整性。
3) 模型執(zhí)行實(shí)現(xiàn)
以下代碼片段表示Knowledge API和HConnect庫(kù)在執(zhí)行自動(dòng)取款機(jī)ATM實(shí)例中實(shí)現(xiàn)jBPM和HeaRT通信的運(yùn)用:
public static final void main(String[] args) {
try {
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSessionksession =
kbase.newStateful KnowledgeSession();
KnowledgeRuntimeLogger logger =
KnowledgeRuntimeLoggerFactory.newConsole-
Logger(ksession);
//Read the HMR model from the filesystem and send it to HeaRT
HConnect.addModel(″ATM″, new File(″atm-rt.pl″));
ksession.startProcess(″HConnect Test″);
ksession.fireAllRules();
logger.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource(″H-ConnectTest.bpmn″), ResourceType.BPMN2);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size()>0) {
for (KnowledgeBuilderError error: errors)
System.err.println(error);
throw new IllegalArgumentException(″Could not parse knowledge.″);
}
KnowledgeBase kbase =
KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePacka-ges());
return kbase;
}
本文提出的這種流程規(guī)則一致性架構(gòu),使在下層的業(yè)務(wù)規(guī)則補(bǔ)充并完善了上層的流程模型。其流程模型支持業(yè)務(wù)邏輯的上下文驗(yàn)證,提供了一般推理流程,并可進(jìn)行可視化規(guī)則設(shè)計(jì)和對(duì)規(guī)則任務(wù)進(jìn)行規(guī)則的完整性的形式驗(yàn)證。
本文提出了一個(gè)在BPMN模型中使用XTT2標(biāo)注的業(yè)務(wù)規(guī)則來描述指定任務(wù)的框架結(jié)構(gòu)。 XTT2支持利用形式化表示的決策表進(jìn)行規(guī)則建模,該架構(gòu)則能夠?qū)χ付ǖ哪P瓦M(jìn)行整合執(zhí)行。本文給出了一個(gè)該架構(gòu)的原型實(shí)現(xiàn),其使用jBPM流程引擎集成HeaRT推理引擎實(shí)現(xiàn)。
這項(xiàng)研究以后可以從兩個(gè)方面進(jìn)一步深入,一是研究一種能夠有效地使用BPMN標(biāo)注對(duì)面向業(yè)務(wù)規(guī)則定義邏輯任務(wù)的業(yè)務(wù)流程進(jìn)行一致性建模的方法,通過理想的設(shè)計(jì)模式將消除流程規(guī)則建模中語(yǔ)義不一致等問題的方法;另一個(gè)重要的問題是集成模型的質(zhì)量,HeaRT的驗(yàn)證特性可以用來進(jìn)行某些BPMN模型和規(guī)則任務(wù)的形式驗(yàn)證,然而這只能對(duì)單獨(dú)的規(guī)則任務(wù)或簡(jiǎn)單結(jié)構(gòu)的BPMN模型進(jìn)行局部驗(yàn)證,完整模型的全局驗(yàn)證方法需要進(jìn)一步研究。
[1] Mitra S,Mitra M,Chaudhuri B B.A Rough-Set-Based Inference Engine for ECG Classification[J].IEEE Transactions on Instrumentation & Measurement,2006,55(6):2198-2206.
[2] 徐錚,陳恭亮,李建華.基于推理樹的XML推理控制研究[J].通信技術(shù),2015(2):208-213.
[3] Bisogno S.Combining modelling and simulation approaches[J].Business Process Management Journal,2016,22(1):56-74.
[4] Proctor M.Relational Declarative Programming with JBoss Drools[C]//Symbolic and Numeric Algorithms for Scientific Computing,2007.SYNASC.International Symposium on.IEEE,2007:5-5.
[5]ViewegI,WernerC,WagnerKP,etal.UnifiedModelingLanguage(UML)[M]//EinführungWirtschaftsinformatik.GablerVerlag,2012:367-377.
[6]AutiliM,RuscioDD,SalleAD,etal.AModel-BasedSynthesisProcessforChoreographyRealizabilityEnforcement[M]//FundamentalApproachestoSoftwareEngineering.SpringerBerlinHeidelberg,2013:37-52.
[7]KnolmayerG,EndlR,PfahrerM.ModelingProcessesandWorkflowsbyBusinessRules[M]//BusinessProcessManagement.SpringerBerlinHeidelberg,1999:16-29.
[8]AdamsM,HofstedeAHMT,EdmondD,etal.Worklets:AService-OrientedImplementationofDynamicFlexibilityinWorkflows[M]//OntheMovetoMeaningfulInternetSystems2006:CoopIS,DOA,GADA,andODBASE.SpringerBerlinHeidelberg,2006:291-308.
[9]MilanovicM,Ga?evicD.TowardsaLanguageforRule-EnhancedBusinessProcessModeling[C]//Proceedingsofthe13thIEEEinternationalconferenceonEnterpriseDistributedObjectComputing.IEEEPress,2009:59-68.
[10]ViriyasitavatW,MartinA.IntheRelationofWorkflowandTrustCharacteristics,andRequirementsinServiceWorkflows[J].CommunicationsinComputer&InformationScience,2011,251(3):492-506.
[11]HuangYY,JiangR,LiH.AReusableSystemArchitectureBasedonJBPMandItsApplication[M]//FutureCommunication,Computing,ControlandManagement.SpringerBerlinHeidelberg,2012:517-525.
[12]OstermayerL,SeipelD.KnowledgeEngineeringforBusinessRulesinPROLOG[C]//26thWorkshoponLogicProgramming,Bonn,Germany,September24-25,2012.2012.
[13]GrzegorzJNalepa,KrzysztofKluza.UMLRepresentationforRule-basedApplicationModelswithXTT2-basedBusinessRule[J].InternationalJournalofSoftwareEngineering&KnowledgeEngineering,2012,22(4):485-524.
AN INFERENCE ENGINE ARCHITECTURE FOR BUSINESS RULES AND PROCESSES
Ni Zhao1Bai Lifang2Dong Aodong3
1(StateGridXiaoganPowerSupplyCompany,Xiaogan432000,Hubei,China)2(InformationEngineeringUniversity,Zhengzhou450001,Henan,China)3(StateGridHenanElectricPowerCompanyJiaozuoPowerSupplyCompany,Jiaozuo454000,Henan,China)
At present, the workflow engine based on business process model controlling rule engine has been advocated. In view of this situation, an inference engine architecture for integrating and executing business process models with rules is proposed based on the workflow engine which runs BPMN business process model. The architecture introduces XTT2 rules and integrates jBPM workflow management system and HeaRT rule engine, making the rule decision tables executed by a dedicated rule inference engine which is controlled by workflow engine. The implementation of the prototype demonstrates that the architecture can realize visual design and formal verification of obtained rule tasks.
BPMN Business process models Rules
2016-03-22。倪曌,碩士生,主研領(lǐng)域:專家系統(tǒng)。白利芳,碩士生。董奧冬,工程師。
TP302.1
A
10.3969/j.issn.1000-386x.2017.03.017