一種基于主題的發(fā)布/訂閱系統(tǒng)中的流程定義元模型及其構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,特別涉及一種流程建模的方法。
【背景技術(shù)】
[0002] 基于主題的發(fā)布/訂閱系統(tǒng)中,應(yīng)用組件只需申明要發(fā)布或者訂閱的主題,就可 以向網(wǎng)絡(luò)中投放或者從網(wǎng)絡(luò)中收取自身感興趣的數(shù)據(jù)。發(fā)布/訂閱通信模式以時(shí)間、空間、 同步三方面解耦合的特性被廣泛應(yīng)用。目前的研宄主要集中在保障單條消息傳輸?shù)姆?wù)質(zhì) 量,而沒(méi)有對(duì)多條消息在流程中關(guān)聯(lián)關(guān)系的研宄,缺少通用的流程建模方式。
【發(fā)明內(nèi)容】
[0003] 為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于主題的發(fā)布/訂閱系統(tǒng)中 的流程定義元模型,能夠作為參考標(biāo)準(zhǔn),規(guī)范基于主題的發(fā)布/訂閱系統(tǒng)中流程建模方式, 為流程控制提供統(tǒng)一的數(shù)據(jù)定義、交換接口。
[0004] 為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
[0005] 一種基于主題的發(fā)布/訂閱系統(tǒng)中的流程定義元模型,其特征在于:
[0006] (1)該流程定義元模型將流程定義為一組消息的流動(dòng)方向和邏輯順序,以狀態(tài)、事 件、轉(zhuǎn)移條件刻畫(huà)流程;
[0007] (2)該流程定義元模型以XML結(jié)構(gòu)化表示流程。
[0008] 進(jìn)一步的,所述消息的流動(dòng)方向用事件表示,事件由四元組{組件,動(dòng)作,主題,內(nèi) 容過(guò)濾式}構(gòu)成;事件觸發(fā)狀態(tài)之間的轉(zhuǎn)移條件,所述轉(zhuǎn)移條件表征消息之間的邏輯順序。
[0009] 進(jìn)一步的,單個(gè)轉(zhuǎn)移條件表征單條消息的流動(dòng)方向,多個(gè)轉(zhuǎn)移條件表征多條消息 之間的邏輯順序。
[0010] 本發(fā)明還提供了一種上述基于主題的發(fā)布/訂閱系統(tǒng)中的流程定義元模型的構(gòu) 建方法,技術(shù)方案如下:
[0011] 一種基于主題的發(fā)布/訂閱系統(tǒng)中的流程定義元模型的構(gòu)建方法,包括以下步 驟:
[0012] (1)對(duì)現(xiàn)實(shí)業(yè)務(wù)流程進(jìn)行抽象并提取流程屬性;
[0013] (2)確定上述現(xiàn)實(shí)業(yè)務(wù)流程中獨(dú)立的狀態(tài)和事件,狀態(tài)指系統(tǒng)運(yùn)行中某一時(shí)刻可 能處于的情況,事件刻畫(huà)消息的流動(dòng)方向;
[0014] (3)定義轉(zhuǎn)移條件,鏈接各個(gè)狀態(tài),并指定觸發(fā)每個(gè)轉(zhuǎn)移條件的事件。
[0015] 進(jìn)一步的,所述步驟(1)中,所述流程屬性包括:流程名、域ID、受控應(yīng)用組件、重 復(fù)次數(shù)、響應(yīng)方式,其中響應(yīng)方式包括對(duì)非法消息的缺省響應(yīng)方式和對(duì)無(wú)關(guān)消息的響應(yīng)方 式。
[0016] 進(jìn)一步的,所述步驟(2)中,狀態(tài)和事件的確定方式如下:
[0017] 現(xiàn)實(shí)業(yè)務(wù)流程中,系統(tǒng)的每個(gè)狀態(tài)都具有狀態(tài)ID,狀態(tài)名,狀態(tài)類(lèi)型和響應(yīng)方式, 其中,狀態(tài)ID是唯一的,用于區(qū)分不同狀態(tài);狀態(tài)名是字符串;狀態(tài)類(lèi)型分為合法狀態(tài)和非 法狀態(tài),其中,合法狀態(tài)又細(xì)化為開(kāi)始狀態(tài)、結(jié)束狀態(tài)、一般狀態(tài)三個(gè)子類(lèi)型,一個(gè)流程有且 僅有一個(gè)開(kāi)始狀態(tài)和一個(gè)結(jié)束狀態(tài);合法狀態(tài)的響應(yīng)方式僅有一種,為放行LEGAL_PASS, 非法狀態(tài)的響應(yīng)方式分為放行ILLEGAL_PASS和攔截ILLEGAL_INTERCEPT;流程模型中列舉 出所有流程關(guān)心的事件,沒(méi)有出現(xiàn)在流程定義中的則為無(wú)關(guān)事件,無(wú)關(guān)事件的響應(yīng)方式在 流程屬性中定義;
[0018] 事件由{:應(yīng)用組件,執(zhí)行動(dòng)作,消息主題,消息內(nèi)容過(guò)濾表達(dá)式}四元組定義,其中 消息內(nèi)容過(guò)濾表達(dá)式可以為空;非法事件的響應(yīng)有兩種定義方法:一,用單獨(dú)的非法狀態(tài) 和非法響應(yīng)方式來(lái)定義;二,用流程屬性中缺省的非法響應(yīng)方式來(lái)定義。
[0019] 進(jìn)一步的,所述步驟(3)中,定義轉(zhuǎn)移條件的方法為:
[0020] 轉(zhuǎn)移條件是狀態(tài)間的有向鏈接,分別稱(chēng)轉(zhuǎn)移條件兩端的狀態(tài)為轉(zhuǎn)出狀態(tài)和轉(zhuǎn)入狀 態(tài),轉(zhuǎn)移條件由一個(gè)事件觸發(fā);若轉(zhuǎn)移條件的轉(zhuǎn)入狀態(tài)為合法狀態(tài),那么,觸發(fā)該轉(zhuǎn)移條件 的事件則為合法的,若轉(zhuǎn)移條件的轉(zhuǎn)入狀態(tài)為非法狀態(tài),則觸發(fā)該轉(zhuǎn)移條件的事件則為非 法的,按照轉(zhuǎn)入狀態(tài)的響應(yīng)方式對(duì)該事件進(jìn)行響應(yīng)。
[0021] 進(jìn)一步的,所述步驟(1)、(2)、(3)中記錄流程模型應(yīng)當(dāng)遵從的XMLSchema。
[0022] 本發(fā)明的有益效果是:
[0023] (1)本發(fā)明為基于主題的發(fā)布/訂閱系統(tǒng)提供了流程定義元模型,與具體的中間 件實(shí)現(xiàn)方式和組件開(kāi)發(fā)方式無(wú)關(guān),是靈活、通用的。
[0024] (2)根據(jù)本發(fā)明對(duì)系統(tǒng)中的流程進(jìn)行建模,能夠明確定義合法或非法的單條消息 流動(dòng)方向和多條消息之間的邏輯順序,消除歧義。
[0025] (3)本發(fā)明以XML文件形式存儲(chǔ)流程模型,可作為與其他處理系統(tǒng)的數(shù)據(jù)交換載 體。
[0026] (4)本發(fā)明可作為參考標(biāo)準(zhǔn),規(guī)范基于主題的發(fā)布/訂閱系統(tǒng)中流程建模方式,為 流程控制提供統(tǒng)一的數(shù)據(jù)定義、交換接口。
【附圖說(shuō)明】
[0027] 圖1為本發(fā)明提出流程定義元模型的構(gòu)成圖;
[0028] 圖2為實(shí)施例中應(yīng)用背景的系統(tǒng)架構(gòu)圖;
[0029] 圖3為實(shí)施例中例程的業(yè)務(wù)流程描述圖。
【具體實(shí)施方式】
[0030] 下面結(jié)合附圖對(duì)本發(fā)明技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
[0031] 如圖1所示,本發(fā)明的一種基于主題的發(fā)布/訂閱系統(tǒng)中的流程定義元模型,該流 程定義元模型提出了一種流程定義方法,將流程定義為一組消息的流動(dòng)方向和邏輯順序, 以狀態(tài)、事件、轉(zhuǎn)移條件刻畫(huà)流程;該流程定義元模型提出了流程的表示方法,以XML結(jié)構(gòu) 化表示流程。消息的流動(dòng)方向用事件表示,事件由四元組{組件,動(dòng)作,主題,內(nèi)容過(guò)濾式} 構(gòu)成;事件觸發(fā)狀態(tài)之間的轉(zhuǎn)移條件,所述轉(zhuǎn)移條件表征消息之間的邏輯順序;單個(gè)轉(zhuǎn)移 條件表征單條消息的流動(dòng)方向,多個(gè)轉(zhuǎn)移條件表征多條消息之間的邏輯順序。
[0032] 上述基于主題的發(fā)布/訂閱系統(tǒng)中的流程定義元模型通過(guò)以下方法構(gòu)建:構(gòu)建方 法,包括以下步驟:
[0033] (1)對(duì)現(xiàn)實(shí)業(yè)務(wù)流程進(jìn)行抽象并提取流程屬性;
[0034] 其中,流程屬性包括:流程名,域ID,受控應(yīng)用組件列表,流程重復(fù)次數(shù),對(duì)非法消 息的缺省響應(yīng)方式,對(duì)無(wú)關(guān)消息的響應(yīng)方式。
[0035] 具體方法為:取一個(gè)方便記憶和理解的字符串作為流程名,用于唯一標(biāo)識(shí)一個(gè)流 程;因?yàn)閺膶儆诓煌ㄐ庞虻膽?yīng)用組件之間不存在消息的互通,所以流程一定是僅從屬于 某一個(gè)域的,域ID屬性標(biāo)識(shí)出流程管理的范圍;應(yīng)用組件以{主機(jī)名,組件名}的二元組唯 一標(biāo)識(shí);流程重復(fù)次數(shù)為整數(shù),重復(fù)次數(shù)為正數(shù)M時(shí),表示流程循環(huán)執(zhí)行M次,重復(fù)次數(shù)為負(fù) 數(shù)時(shí)表示流程無(wú)限循環(huán)執(zhí)行;對(duì)非法消息的缺省響應(yīng)方式可以分為放行ILLEGAL_PASS和 攔截ILLEGAL_INTERCEPT兩種;對(duì)無(wú)關(guān)消息的缺省響應(yīng)方式分為放行UNCONCERN_PASS和 UNCONCERN_INTERCEPT攔截兩種。
[0036] (2)確定流程中獨(dú)立的狀態(tài)和事件,狀態(tài)指系統(tǒng)運(yùn)行中某一時(shí)刻可能處于的情況, 事件刻畫(huà)消息的流動(dòng)方向;
[0037] 業(yè)務(wù)流程中,系統(tǒng)可能處于若干狀態(tài),每個(gè)狀態(tài)都具有狀態(tài)ID,狀態(tài)名,狀態(tài)類(lèi) 型和響應(yīng)方式;狀態(tài)ID是唯一的,用于區(qū)分不同狀態(tài);狀態(tài)名是便于理解的字符串;狀態(tài) 類(lèi)型分為合法和非法兩大類(lèi),其中,合法狀態(tài)又細(xì)化為開(kāi)始狀態(tài)、結(jié)束狀態(tài)、一般狀態(tài)三個(gè) 子類(lèi)型,一個(gè)流程應(yīng)當(dāng)有且僅有一個(gè)開(kāi)始狀態(tài)和一個(gè)結(jié)束狀態(tài);合法狀態(tài)的響應(yīng)方式僅有 一種,為放行LEGAL_PASS,非法狀態(tài)的響應(yīng)方式分為放行ILLEGAL_PASS和攔截ILLEGAL_ INTERCEPT;
[0038] 流程模型中應(yīng)列舉出所有流程關(guān)心的事件,沒(méi)有出現(xiàn)在流程定義中的則為無(wú)關(guān)事 件,無(wú)關(guān)事件的響應(yīng)方式在流程屬性中定義;事件由{:應(yīng)用組件,執(zhí)行動(dòng)作,消息主題,消息 內(nèi)容過(guò)濾表達(dá)式}四元組定義,其中消息內(nèi)容過(guò)濾表達(dá)式可以為空;非法事件的響應(yīng)有兩 種定義方法,一,用單獨(dú)的非法狀態(tài)和非法響應(yīng)方式來(lái)定義;二,用流程屬性中缺省的非法 響應(yīng)方式來(lái)定義。
[0039] (3)定義轉(zhuǎn)移條件,鏈接各個(gè)狀態(tài),并指定觸發(fā)每個(gè)轉(zhuǎn)移條件的事件;
[