倪 曌 白利芳 董奧冬
1(國網(wǎng)孝感供電公司 湖北 孝感 432000)2(信息工程大學(xué) 河南 鄭州 450001)3(國網(wǎng)河南省電力公司焦作供電公司 河南 焦作 454000)
一種面向業(yè)務(wù)規(guī)則和流程的推理引擎架構(gòu)
倪 曌1白利芳2董奧冬3
1(國網(wǎng)孝感供電公司 湖北 孝感 432000)2(信息工程大學(xué) 河南 鄭州 450001)3(國網(wǎng)河南省電力公司焦作供電公司 河南 焦作 454000)
目前基于業(yè)務(wù)流程模型控制規(guī)則引擎的工作流引擎已經(jīng)開始提倡使用。針對這種情況, 基于BPMN業(yè)務(wù)流程模型的工作流引擎,提出一種適用于業(yè)務(wù)流程模型和規(guī)則集成與執(zhí)行的推理引擎架構(gòu)。該架構(gòu)引入XTT2的規(guī)則表示,集成了jBPM工作流管理系統(tǒng)和HeaRT規(guī)則引擎,由工作流引擎控制專用規(guī)則推理引擎執(zhí)行規(guī)則決策表運行。原型實現(xiàn)表明了該架構(gòu)可實現(xiàn)規(guī)則任務(wù)的可視化設(shè)計,并支持對得到的規(guī)則任務(wù)模型的形式驗證。
BPMN 業(yè)務(wù)流程模型 規(guī)則
在業(yè)務(wù)處理程序中,業(yè)務(wù)規(guī)則是一種比較優(yōu)良的知識表示和處理方式,然而對規(guī)則推理而言在處理大型規(guī)則庫時仍有許多問題需要解決。大多數(shù)現(xiàn)有的推理引擎使用如Rete模式匹配算法進行規(guī)則推理,但這種方法中規(guī)則搜索策略在給定環(huán)境下對規(guī)則選擇所掌握的信息不足,影響規(guī)則匹配效率。為了解決這一問題,已經(jīng)提出了多種不同的推理控制策略。例如文獻[1]針對疾病發(fā)展的推理引擎設(shè)計了一個基于規(guī)則的摘要決策推理策略,文獻[2]則針對XML數(shù)據(jù)庫引入推理樹概念,并提出相應(yīng)的動態(tài)推理控制策略。但對普遍的業(yè)務(wù)系統(tǒng)的規(guī)則推理,一些業(yè)務(wù)處理程序則使用了業(yè)務(wù)流程BP(business process)模型來進行設(shè)計開發(fā),其中的業(yè)務(wù)流程模型與標注BPMN(Business Process Model and Notation)能夠建模更復(fù)雜的控制流程[3]。目前,基于BP模型控制規(guī)則引擎的工作流引擎已經(jīng)開始提倡使用,但是仍然缺少一個清晰的集成了規(guī)則和流程的推理引擎概念架構(gòu)。
本文提出了一個面向規(guī)則與業(yè)務(wù)流程模型的建模、集成和執(zhí)行的新推理引擎架構(gòu),該架構(gòu)主要面向基于BPMN業(yè)務(wù)流程模型的工作流引擎。工作流引擎進行推理控制,底層的業(yè)務(wù)規(guī)則表示了業(yè)務(wù)邏輯的某些特定部分,在業(yè)務(wù)流程模型中所涉及相同工作內(nèi)容的規(guī)則被分到一個任務(wù)中,稱為一項規(guī)則任務(wù)。規(guī)則任務(wù)模型由定義好的決策表進行建模得到,在運行環(huán)境中,決策表的執(zhí)行由工作流引擎控制的專用規(guī)則推理引擎實現(xiàn)。在某些相關(guān)的開發(fā)工具(Drools)提供了類似方法的功能實現(xiàn)[4],然而本文提出的架構(gòu)具有更重要的優(yōu)勢:一方面,規(guī)則模型的形式化定義可以實現(xiàn)對規(guī)則庫的質(zhì)量控制;另一方面,BPMN流程模型的某些控制部件可以轉(zhuǎn)化為規(guī)則。
復(fù)雜的業(yè)務(wù)智能處理程序需要先進的建模方案,并且業(yè)務(wù)設(shè)計者、軟件工程師和普通程序員必須能夠容易地學(xué)習(xí)掌握這些建模方案。在業(yè)務(wù)流程建模中,UML語言對于一般的業(yè)務(wù)使用者而言非常難以理解[5],因此在業(yè)務(wù)流程建模中引入了BPMN標注法。雖然這種標注法可以很好地解決建模過程中工作流程的表示問題,但是只利用BPMN不能詳細地表達出流程中任務(wù)的邏輯。
業(yè)務(wù)規(guī)則BR(Business Rules)描述是一種能夠被用來具體地表示業(yè)務(wù)流程中任務(wù)邏輯的方法,其產(chǎn)生于已經(jīng)建立完善規(guī)則的系統(tǒng)。然而,對流程和規(guī)則的抽象是在不同層面上的,通常情況下規(guī)則在多數(shù)系統(tǒng)中用自然語言進行描述,有時規(guī)則也會用結(jié)構(gòu)化形式表示。流程和規(guī)則之間的這種差異造成兩者語義不匹配的問題,表現(xiàn)在建模過程中的概念表示和執(zhí)行實現(xiàn)的困難。因此,研究出一種面向業(yè)務(wù)規(guī)則和業(yè)務(wù)流程建模的方法對未來確保高質(zhì)量的系統(tǒng)實現(xiàn)是非常重要的。
雖然BP和BR在抽象層次上具有差異,但是規(guī)則與流程在業(yè)務(wù)系統(tǒng)中是相互補充的關(guān)系。BPMN 2.0中也體現(xiàn)出規(guī)則和流程的這種差異[6],這說明現(xiàn)有的BPMN不適合用來建模這樣的規(guī)則流程。一個BPMN流程模型應(yīng)該既能定義上層的系統(tǒng)行為,又能用規(guī)則說明下層的流程邏輯。目前,有許多針對整合規(guī)則和流程的建模方法正在進行的研究。文獻[7]引入了ECA(Event Condition Action)符號來對業(yè)務(wù)流程中進行規(guī)則的一致化分解;文獻[8]實現(xiàn)了一個與任務(wù)一致的自包含子過程可擴展庫,能夠根據(jù)規(guī)則上下文進行動態(tài)決策;文獻[9] 提出了一種面向規(guī)則和流程相結(jié)合的建模語言rBPM,該語言集成了業(yè)務(wù)流程建模符號REWERSE。但由于現(xiàn)存的方法不能準確地表示規(guī)則和流程進行整合的細節(jié),不能很好地支持流程和規(guī)則的可視化建模,且沒有考慮質(zhì)量問題,此外能夠提供整合規(guī)則和流程建模環(huá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ī)則的語法。此外,XTT2規(guī)則描述還具有可視化知識表示能力,使該方法在任務(wù)評估上占有很大優(yōu)勢。
本文中能夠整合BP和BR模型的集成架構(gòu)jBPM-HeaRT是在運行基于BPMN的BP模型的開源jBPM工作流引擎的基礎(chǔ)上提出的,該工作流引擎能夠與運行底層規(guī)則邏輯的HeaRT(HeKatE Run-Time Environment)規(guī)則引擎進行通信。
JBoss jBPM是一個工作流管理系統(tǒng),能夠為工作流的業(yè)務(wù)流程管理到流程編排提供可執(zhí)行流程語言的平臺,該系統(tǒng)架構(gòu)是基于文獻[10]中的WfMC的參考模型發(fā)展而來。jBPM提供了一個執(zhí)行業(yè)務(wù)流程的流程引擎和兩個可選核心服務(wù),一是歷史日志記錄,能夠記錄所有流程實例的當(dāng)前和歷史狀態(tài)信息;二是當(dāng)有人工執(zhí)行者參與到流程中在其任務(wù)生命周期提供人工任務(wù)服務(wù)。jBPM具有可插入架構(gòu),能夠作為一個可擴展的、可定制的工具集成到本文研究的運行環(huán)境中。
jBPM工具提供BPMN 2.0 XML格式用于流程的定義。完整的BPMN 2.0規(guī)范包括流程編排和合作的細節(jié),但jBPM僅注重具體的執(zhí)行流程。jBPM已被應(yīng)用于文獻[11,12]中相關(guān)的工作流建模,本文只針對業(yè)務(wù)流程的建模應(yīng)用。
2.1 知識表示
本方案中,BPMN用于過程的工作流建模,業(yè)務(wù)規(guī)則即SKE(Semantic Knowledge Engineering)方法,用于規(guī)范描述流程任務(wù)中的具體邏輯。在SKE中,XTT2規(guī)則表示提供了規(guī)則的邏輯運算表達式,并提供支持規(guī)則邏輯和可視化規(guī)范的結(jié)構(gòu)化知識表示[13]。XTT2支持高級控制推理和的生產(chǎn)系統(tǒng)的形式分析,提供了基于ALSV(FD)邏輯的規(guī)則描述語言,這樣的知識表示方法使XTT2語言比命題邏輯具有更強的表達能力。XTT2規(guī)則庫包含屬性和其相應(yīng)的值,每一對屬性-值視為一個事實(fact),所有屬性-值對的集合定義為系統(tǒng)狀態(tài)s:
s:(A1=V1)∧(A2=V2)∧…∧(An=Vn)
其中An指屬性,Vn是屬性對應(yīng)的值,屬性個數(shù)(事實)在推理過程中是常數(shù),規(guī)則庫的職能由屬性值的改變而發(fā)生變化。XTT2將規(guī)則庫模塊化,涉及相同內(nèi)容的規(guī)則被放到同一個任務(wù)中,一個任務(wù)對應(yīng)一個決策表。因此,只有具有相同條件和決策屬性的規(guī)則可以被放置在一個決策表中,即在決策表中的每個規(guī)則確定同一組屬性的值。決策表連接在一起形成的類似網(wǎng)絡(luò)結(jié)構(gòu)的決策網(wǎng),XTT2將決策網(wǎng)絡(luò)和決策表混合進行知識表示。
例如自動取款機ATM中的XTT2行為決策表,如表1所示。表頭包含所有常見規(guī)則的屬性,表中每一條規(guī)則存儲為一行,包括5個標記為(?)的條件列和標記為(→)動作列。條件即五種屬性,分別為是否具有權(quán)限(A,authorizated),密碼輸入失敗次數(shù)(F,failedAttempts),用戶請求(UR,userRequest),用戶金額變化(UAD,userAmountDifference),ATM金額變化(AAD,ATMAmountDifference),動作(AA,ATMActivity)為ATM機的輸出反饋。
表1 ATM機中XTT2決策表
2.2 原型架構(gòu)
該模型在HeaRT推理引擎上運行, HeaRT為其用HMR格式表示的業(yè)務(wù)規(guī)則提供了相應(yīng)的執(zhí)行環(huán)境。jBPM-HeaRT架構(gòu)使用本地工作流引擎BPMN 2.0 jBPM,它是一個基于流程虛擬機(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ī)則的引擎,整個jBPM-HeaRT架構(gòu)還解釋了利用業(yè)務(wù)規(guī)則對業(yè)務(wù)流程模型進行建模和驗證的實現(xiàn)過程。
圖1 jBPM-HeaRT架構(gòu)
jBPM-HeaRT架構(gòu)分為業(yè)務(wù)流程和規(guī)則的建模、驗證和執(zhí)行三個層次。
① 建模層:XTT2業(yè)務(wù)規(guī)則決策表通過網(wǎng)絡(luò)接口(TCP/IP)利用HQEd編輯器進行可視化編輯,業(yè)務(wù)流程BPMN模型利用jBPM編輯器實現(xiàn);
② 驗證層:XTT2規(guī)則表示法支持在HeaRT引擎和HeKatE的驗證和分析架構(gòu)(HalVA,HeKatE Verification and Analysis framework)下對XTT2決策表進行形式化驗證,驗證過程中可視化規(guī)則決策表自動轉(zhuǎn)化為HMR表示規(guī)則;
③ 執(zhí)行層:在業(yè)務(wù)執(zhí)行中,BPMN流程模型運行在jBPM引擎上,BR任務(wù)觸發(fā)選擇的XTT2決策表執(zhí)行規(guī)則,兩者之間的通信實現(xiàn)流程與規(guī)則的統(tǒng)一執(zhí)行,通信功能的實現(xiàn)見3.1節(jié)。
由上述可知,這個一般化的架構(gòu)可以實現(xiàn)對流程和規(guī)則的可視化建模,并能夠驗證執(zhí)行一個完整的特定BPMN模型。
2.3 規(guī)則驗證
1) 單一規(guī)則不一致
單一規(guī)則產(chǎn)生的矛盾有兩種可能:一是條件和結(jié)論的不一致,二是條件間不一致。規(guī)則的條件和結(jié)論部分存在同一屬性,則有可能產(chǎn)生矛盾。單一規(guī)則條件間不一致檢測方法:
① 一條規(guī)則的條件部分的創(chuàng)建屬性列表;
② 從屬性列表的第一個屬性開始,找出所有包含該屬性的條件,直到屬性列表中最后一個屬性;
③ 檢驗所選屬性的條件集的交集是否為空,若為空集,則該規(guī)則矛盾。
2) 規(guī)則間不一致
兩條規(guī)則間矛盾,即當(dāng)兩條規(guī)則的動作部分不一致時,存在某一狀態(tài)這兩個規(guī)則都為真,驗證方法如下:
① 將同一規(guī)則任務(wù)即XTT2決策表中兩條規(guī)則下的狀態(tài)集合作交集;
② 如果交集不為空,且兩條規(guī)則的動作部分不相同,則兩條規(guī)則間矛盾。
3) 完整性檢測
為檢查系統(tǒng)完整性,必須將所有可能的輸入數(shù)據(jù)傳給系統(tǒng),并根據(jù)系統(tǒng)響應(yīng)判斷完整性,實現(xiàn)起來比較復(fù)雜。但是,對于一張XTT2決策表的完整性檢測,則利用決策樹算法進行檢驗。決策樹算法檢測的思想是建立一個系統(tǒng)狀態(tài)樹,每個分支代表一個狀態(tài),樹的每一層代表狀態(tài)包含的屬性。完整性檢測基于深度優(yōu)先算法,對比分析XTT2決策表,當(dāng)發(fā)現(xiàn)某一分支沒有被任何規(guī)則所包含,則此分支及其所有的子分支都不用繼續(xù)檢測。
4) 規(guī)則包含
若一條規(guī)則的條件部分包含另一條規(guī)則的條件部分且動作部分相同,對這種包含關(guān)系的測試方法如下:
① 將給定任務(wù)即XTT2決策表中規(guī)則下的狀態(tài)集合作交集;
② 若交集不為空,且規(guī)則的動作部分相同,則規(guī)則間存在包含關(guān)系。
jBPM-HeaRT是一種能夠支持集成XTT2業(yè)務(wù)規(guī)則和BPMN流程的工具架構(gòu),相較于大多不支持高級規(guī)則表示的工具,該架構(gòu)利用了決策表來定義流程中的任務(wù)邏輯,決策表由HQEd編輯器進行可視化編輯,表中的規(guī)則使用ALSV(FD)邏輯形式化表示,在設(shè)計定義過程中還可以進行語法檢查。該架構(gòu)主要實現(xiàn)了jBPM和HeaRT的通信功能,使基于規(guī)則的系統(tǒng)能夠進行流程和規(guī)則統(tǒng)一建模執(zhí)行。
3.1 jBPM與HeaRT通信
本架構(gòu)提供了執(zhí)行流程模型的集成環(huán)境,架構(gòu)原型使用了jBPM流程引擎集成HeaRT推理引擎實現(xiàn)。利用HeaRT套接字接口對具體規(guī)則任務(wù)實現(xiàn)的完整BP模型進行jBPM建模,HeaRT引擎作為服務(wù)器運行,當(dāng)處理與jBPM的通信時HeaRT則作為客戶端運行,之所以能夠?qū)崿F(xiàn)這樣的工作模式是由于jBPM-HeaRT架構(gòu)實現(xiàn)了BPMN模型任務(wù)與相應(yīng)XTT2決策表的聯(lián)結(jié)。在jBPM-HeaRT架構(gòu)原型中,jBPM向HeaRT發(fā)送以下的消息:
① 以“H”開頭命名的規(guī)則任務(wù)用HeaRT執(zhí)行,每個規(guī)則任務(wù)對應(yīng)一個XTT2決策表。
② 在規(guī)則庫中規(guī)則流組與XTT2決策表的列表(或狀態(tài))相關(guān)聯(lián)。
③ 如果模型狀態(tài)不是特定的,則HeaRT引擎從當(dāng)前狀態(tài)開始。
④ HeaRT引擎推理出的狀態(tài)屬性結(jié)果作為過程實例的環(huán)境變量保存。
這些工具通過專用API進行通信,HeaRT引入到執(zhí)行層可以支持多種常見的編程語言(如Java,PHP和Python)。該集成模塊的功能是實現(xiàn)多個客戶同時與一個作為推理服務(wù)器的HeaRT實例工作。 HeaRT與jBPM之間的通信通過網(wǎng)絡(luò)協(xié)議實現(xiàn),并且由專門的HConnect類(調(diào)用JHeroic集成庫)控制。jBPM提供了專門的接口API(Knowledge Builder類、KnowledgeBase類、KnowledgeAgent類等),這些API由Java編寫,提供了類和接口的操作。
在Drools的流程執(zhí)行過程中,與HeaRT的通信由jBPM引擎進行初始化。Knowledge Builder類用于從文件中讀取并編譯知識庫(knowledge base),通過Knowledge Builder類向knowledge base中添加新知識,HConnect類用于向HeaRT讀取和添加XTT2模型,并調(diào)用fireAllRules方法執(zhí)行模型。
3.2 實例說明
為驗證jBPM和XTT2的轉(zhuǎn)換和集成關(guān)系,下面對ATM自動取款機實例進行說明。
1) BPMN模型和XTT2決策表
ATM機獲得客戶的儲蓄的決策過程:一個客戶通過插入卡并輸入正確的PIN碼獲得授權(quán),然后客戶可能會取款或要求打印憑條。圖2顯示了該例子的流程模型,可以看出規(guī)則任務(wù)和XTT2決策表與腳本任務(wù)和HeaRT輸出之間的依賴關(guān)系,該BPMN模型可在jBPM中可視化編輯得到。
圖2 jBPM對ATM機建模的BPMN模型
ATM機的XTT2決策表由HQEd編輯器可視化編輯得到,如表1所示。
2) 規(guī)則完整性驗證
ATM機XTT2決策表的規(guī)則完整性利用決策樹算法進行檢驗。XTT2決策表在HeKatE上自動轉(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)建決策樹,樹的每一個分支代表ATM機系統(tǒng)的一個狀態(tài),利用深度優(yōu)先算法遍歷所有狀態(tài)。對比XTT2決策表,當(dāng)且僅當(dāng)對任意一個系統(tǒng)可能出現(xiàn)的狀態(tài),都存在一條規(guī)則包含該狀態(tài)時,XTT2決策表具有規(guī)則完整性。
3) 模型執(zhí)行實現(xiàn)
以下代碼片段表示Knowledge API和HConnect庫在執(zhí)行自動取款機ATM實例中實現(xiàn)jBPM和HeaRT通信的運用:
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ī)則補充并完善了上層的流程模型。其流程模型支持業(yè)務(wù)邏輯的上下文驗證,提供了一般推理流程,并可進行可視化規(guī)則設(shè)計和對規(guī)則任務(wù)進行規(guī)則的完整性的形式驗證。
本文提出了一個在BPMN模型中使用XTT2標注的業(yè)務(wù)規(guī)則來描述指定任務(wù)的框架結(jié)構(gòu)。 XTT2支持利用形式化表示的決策表進行規(guī)則建模,該架構(gòu)則能夠?qū)χ付ǖ哪P瓦M行整合執(zhí)行。本文給出了一個該架構(gòu)的原型實現(xiàn),其使用jBPM流程引擎集成HeaRT推理引擎實現(xiàn)。
這項研究以后可以從兩個方面進一步深入,一是研究一種能夠有效地使用BPMN標注對面向業(yè)務(wù)規(guī)則定義邏輯任務(wù)的業(yè)務(wù)流程進行一致性建模的方法,通過理想的設(shè)計模式將消除流程規(guī)則建模中語義不一致等問題的方法;另一個重要的問題是集成模型的質(zhì)量,HeaRT的驗證特性可以用來進行某些BPMN模型和規(guī)則任務(wù)的形式驗證,然而這只能對單獨的規(guī)則任務(wù)或簡單結(jié)構(gòu)的BPMN模型進行局部驗證,完整模型的全局驗證方法需要進一步研究。
[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