本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及一種基于數(shù)據(jù)流約束的可配置業(yè)務(wù)流程分析方法。
背景技術(shù):
在開發(fā)多個相似軟件系統(tǒng)時,為了獲取更多的經(jīng)濟(jì)效益,在軟件生命周期里提高重用的功能是軟件產(chǎn)品線工程(SPLE)里的一個熱點(diǎn)研究領(lǐng)域??膳渲玫牧鞒棠P鸵钥煽氐姆绞绞沟貌煌M織之間共享公共的業(yè)務(wù)流程成為可能,因此,這種流程模型可以被視為決策模型。它在業(yè)務(wù)流程模型的設(shè)計過程中時通過流程配置限制了業(yè)務(wù)流程模型可能潛在的異常行為。在可配置業(yè)務(wù)流程模型中,過程的配置操作有三種:隱藏(hiding),阻止(blocking)或允許(allowing),因此,可以用這三種配置操作在軟件分析師的設(shè)計需求或指導(dǎo)下從一個可配置業(yè)務(wù)流程模型配置出滿足特定用戶需求的個性化業(yè)務(wù)流程模型。在這個配置過程中,盡管有分析師提供一定的業(yè)務(wù)規(guī)則方面的指導(dǎo),但還不足以保證配置出的個性化模型從語法和語義的角度是正確的。事實(shí)上,因為隱藏或阻止一些片段和人為的手工干預(yù),配置出的個性化業(yè)務(wù)流程模型可能會存在行為的異常,如死鎖和活鎖,所以對可配置業(yè)務(wù)流程在配置過程中或配置后進(jìn)行多視角的分析和驗證它是一個非常重要的問題。
現(xiàn)已有的研究可配置業(yè)務(wù)流程模型的驗證方法可分為兩大部分:(1)控制流的角度,但缺少流程其它重要方面如數(shù)據(jù)、資源等方面的分析;(2)側(cè)重于流程配置的語法分析,而并未提供統(tǒng)一保證配置流程模型行為即語義正確性的技術(shù),而這些研究也都僅關(guān)注于對通用業(yè)務(wù)流程模型如WF-net進(jìn)行修改而并非對可配置業(yè)務(wù)流程模型的。因此,針對已有的業(yè)務(wù)流程在配置過程中對數(shù)據(jù)流約束分析方法中存在的不足以及互聯(lián)網(wǎng)上數(shù)據(jù)的規(guī)模與業(yè)務(wù)流程之間的異構(gòu)性,如何進(jìn)行準(zhǔn)確、高效的業(yè)務(wù)流程在配置過程中對數(shù)據(jù)流進(jìn)行有效約束成為業(yè)務(wù)流程管理領(lǐng)域中一個亟待解決的關(guān)鍵技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的是提供一種基于數(shù)據(jù)流約束的可配置業(yè)務(wù)流程分析方法。使得分析業(yè)務(wù)流程時不僅反映流程的控制流,同時也能反映數(shù)據(jù)流,從而在可配置業(yè)務(wù)流程配置中可以處理流程中數(shù)據(jù)流,解決了業(yè)務(wù)流程可變性管理中的數(shù)據(jù)流約束關(guān)系的問題。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的:
該種基于數(shù)據(jù)流約束的可配置業(yè)務(wù)流程分析新方法,包括以下步驟:
步驟一:在大數(shù)據(jù)環(huán)境下,找出研究領(lǐng)域具體項目的業(yè)務(wù)活動及其時序關(guān)系,利用CPN模型將其表示成業(yè)務(wù)流程;
步驟二:根據(jù)特定領(lǐng)域需求,分析與抽取反映業(yè)務(wù)流程活動執(zhí)行時的數(shù)據(jù)流約束模型及其數(shù)據(jù)之間的依賴關(guān)系,將其映射到步驟(1)中形成的CPN模型;
步驟三:在步驟一)和步驟二)的基礎(chǔ)上,將數(shù)據(jù)流約束的業(yè)務(wù)流程CPN模型通過配置操作轉(zhuǎn)化為基于數(shù)據(jù)流的可配置業(yè)務(wù)流程CPN模型,并將該模型在特定領(lǐng)域下應(yīng)滿足的數(shù)據(jù)約束屬性使用擴(kuò)展的計算樹時序邏輯(ASK-CTL)表示;
步驟四:應(yīng)用可配置業(yè)務(wù)流程的CPN模型及相應(yīng)工具進(jìn)行分析與驗證。
進(jìn)一步,步驟一)的具體實(shí)現(xiàn)步驟為:
(1.1)分析具體項目的業(yè)務(wù)活動;
(1.2)針對步驟(1.1)的結(jié)果,根據(jù)所分析的業(yè)務(wù)活動,提取相應(yīng)的業(yè)務(wù)活動規(guī)則,將不屬于該領(lǐng)域活動的業(yè)務(wù)規(guī)則過濾掉;
(1.3)對步驟(1.2)的業(yè)務(wù)規(guī)則的分析結(jié)果確定業(yè)務(wù)活動的時序關(guān)系;
(1.4)在步驟(1.3)的基礎(chǔ)上,使用CPN工具將前3步分析的業(yè)務(wù)活動及其時序關(guān)系設(shè)計成CPN模式的業(yè)務(wù)流程。
進(jìn)一步,步驟二)的具體實(shí)現(xiàn)步驟為:
(2.1)在步驟(1)的基礎(chǔ)上,分析由業(yè)務(wù)活動所需要的數(shù)據(jù)和生成的數(shù)據(jù)之間的依賴關(guān)系;
(2.2)根據(jù)業(yè)務(wù)活動之間的數(shù)據(jù)依賴關(guān)系,抽取其相應(yīng)的數(shù)據(jù)流約束模式;
(2.3)將(2.2)得到的數(shù)據(jù)依賴關(guān)系及其約束模式映射到步驟一)所得到的CPN業(yè)務(wù)流程模型中,形成帶數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型;
(2.4)重復(fù)步驟(2.1)、(2.3)和(2.4),直到特定領(lǐng)域相關(guān)的業(yè)務(wù)流程所涉及的活動中全部包含在步驟一)所形成的業(yè)務(wù)活動集中,最終形成模型圖。
特別地,步驟三)的具體實(shí)現(xiàn)步驟為:
(3.1)在步驟二)的基礎(chǔ)上,對形成的帶數(shù)據(jù)流約束的CPN模型,進(jìn)行配置操作,即找出流程模型中的使能性業(yè)務(wù)操作、隱藏性的業(yè)務(wù)操作和阻斷性的業(yè)務(wù)操作,通過配置操作函數(shù)將業(yè)務(wù)CPN模型中的相應(yīng)活動分別配置成允許狀態(tài)、隱藏狀態(tài)和阻隔狀態(tài);直至將特定領(lǐng)域基于數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型全部轉(zhuǎn)換成基于數(shù)據(jù)流約束的可配置CPN業(yè)務(wù)流程模型。
特別地,步驟(4)的具體實(shí)現(xiàn)步驟為:
(4.1)在步驟三)的基礎(chǔ)上,對形成的基于數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型進(jìn)行缺失數(shù)據(jù)模式的分析與驗證;
(4.2)在步驟三)的基礎(chǔ)上,對形成的基于數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型進(jìn)行冗余數(shù)據(jù)模式的分析與驗證;
(4.3)在步驟三)的基礎(chǔ)上,對形成的基于數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型進(jìn)行更新丟失數(shù)據(jù)模式的分析與驗證.
特別地,步驟4.1)具體包括以下步驟:
(4.1.1)如果在基于數(shù)據(jù)流可配置業(yè)務(wù)流程模型中存在一條路徑,其數(shù)據(jù)模型為D,在這個路徑的數(shù)據(jù)流中存在一個數(shù)據(jù)元素d(d∈D),其中D指數(shù)據(jù)元素集,在被某個變遷讀之前沒有任務(wù)一個變遷對它進(jìn)行寫操作,則稱產(chǎn)生缺失數(shù)據(jù)元素d的錯誤,用擴(kuò)展的計算樹邏輯ASK-CTL表示為:EU[-w(d)∪r(d)],其中w為寫數(shù)據(jù),r為讀數(shù)據(jù);
(4.1.2)缺失數(shù)據(jù)檢測:設(shè)是一個基于數(shù)據(jù)流可配置業(yè)務(wù)流程,D為數(shù)據(jù)對象集,假定是模型上的所有完整路徑集(包括起始和終止變遷),則在模型中不存在缺失數(shù)據(jù)錯誤當(dāng)且僅當(dāng)任何一種路徑都不存在缺少數(shù)據(jù)錯誤,用ASK-CTL公式表示;
特別地,步驟4.2)具體包括以下步驟:
(4.2.1)如果在基于數(shù)據(jù)流可配置業(yè)務(wù)流程模型中存在一條路徑,其數(shù)據(jù)模型為D,在這個路徑的數(shù)據(jù)流中存在一個數(shù)據(jù)元素d(d∈D)在被某個變遷讀之前沒有任務(wù)一個變遷對它進(jìn)行寫操作,則稱產(chǎn)生缺失數(shù)據(jù)元素d的錯誤,用ASK-CTL表示;
(4.2.2)冗余數(shù)據(jù)檢測:設(shè)是一個基于數(shù)據(jù)流可配置業(yè)務(wù)流程,D為數(shù)據(jù)對象集,假定是模型上的所有完整路徑集,包括起始和終止變遷,則在模型中不存在缺失數(shù)據(jù)錯誤當(dāng)且僅當(dāng)任何一種路徑都不存在缺少數(shù)據(jù)錯誤,用ASK-CTL公式表示;
特別地,步驟4.3)具體包括以下步驟:
(4.3.1)更新丟失數(shù)據(jù):如果在基于數(shù)據(jù)流可配置業(yè)務(wù)流程中存在一條路徑,路徑中用一個數(shù)據(jù)元素d(d∈D)在被某個任務(wù)讀取之前兩次寫入,則些數(shù)據(jù)元素d丟失數(shù)據(jù)更新,用邏輯ASK-CTL表示;
(4.3.2)更新丟失數(shù)據(jù)檢測:設(shè)是一個基于數(shù)據(jù)流可配置業(yè)務(wù)流程,D為數(shù)據(jù)對象集,假定是模型上的所有完整路徑集,包括起始和終止變遷,則在模型中不存在缺失數(shù)據(jù)錯誤當(dāng)且僅當(dāng)任何一種路徑都不存在缺少數(shù)據(jù)錯誤,用CTL公式表示。
本發(fā)明的有益效果是:
本發(fā)明主要提供的解決方案是針對當(dāng)前業(yè)務(wù)流程在配置時缺少對數(shù)據(jù)流的約束分析,給出了一種基于數(shù)據(jù)流約束的分析與驗證方法,本發(fā)明不僅考慮了業(yè)務(wù)流程中的控制流時序約束關(guān)系,同時考慮了數(shù)據(jù)依賴關(guān)系及其約束模式,從控制流和數(shù)據(jù)流兩方面考慮了業(yè)務(wù)流程配置管理,從而為用戶提供精準(zhǔn)的個性化業(yè)務(wù)流程以供使用,本發(fā)明的方法提出了可配置業(yè)務(wù)流程模型的數(shù)據(jù)流約束分析與驗證方法,有效的解決了業(yè)務(wù)流程可變性管理中的數(shù)據(jù)流約束關(guān)系的問題,避免在業(yè)務(wù)流程配置過程中產(chǎn)生數(shù)據(jù)語義的異常行為。
本發(fā)明的其他優(yōu)點(diǎn)、目標(biāo)和特征在某種程度上將在隨后的說明書中進(jìn)行闡述,并且在某種程度上,基于對下文的考察研究對本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可以從本發(fā)明的實(shí)踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點(diǎn)可以通過下面的說明書和權(quán)利要求書來實(shí)現(xiàn)和獲得。
附圖說明
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述,其中:
圖1為基于數(shù)據(jù)流的可配置業(yè)務(wù)流程模型分析與驗證框架圖;
圖2為基于數(shù)據(jù)流的CPN模型圖;
圖3為基于數(shù)據(jù)流的可配置CPN模型圖;
圖4為可配置業(yè)務(wù)流程的缺失數(shù)據(jù)模式圖;
圖5為可配置業(yè)務(wù)流程的冗余數(shù)據(jù)模式圖;
圖6為可配置業(yè)務(wù)流程的更新丟失數(shù)據(jù)模式圖;
圖7所示為物流配送的CPND圖;
圖8所示為物流配送的可配置CPND圖;
圖9所示為可配置CPND的配置過程示意圖;
圖10所示為可配置CPND的完整模型圖;
圖11所示為可配置CPND的顏色集定義圖;
圖12所示為可配置CPND的函數(shù)定義圖;
圖13為終止時的模型狀態(tài)圖;
圖14為可配置CPND的狀態(tài)空間統(tǒng)計圖;
圖15為可配置CPND可達(dá)性終止?fàn)顟B(tài)驗證圖;
圖16為可配置CPND的數(shù)據(jù)流約束正確性驗證圖。
具體實(shí)施方式
以下將參照附圖,對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述。應(yīng)當(dāng)理解,優(yōu)選實(shí)施例僅為了說明本發(fā)明,而不是為了限制本發(fā)明的保護(hù)范圍。
如圖1所示,本發(fā)明的基于數(shù)據(jù)流約束的可配置業(yè)務(wù)流程分析新方法,包括以下步驟:
步驟一:在大數(shù)據(jù)環(huán)境下,找出研究領(lǐng)域具體項目的業(yè)務(wù)活動及其時序關(guān)系,利用CPN模型將其表示成業(yè)務(wù)流程;
步驟二:根據(jù)特定領(lǐng)域需求,分析與抽取反映業(yè)務(wù)流程活動執(zhí)行時的數(shù)據(jù)流約束模型及其數(shù)據(jù)之間的依賴關(guān)系,將其映射到步驟(1)中形成的CPN模型;如圖2所示。
步驟三:在步驟一)和步驟二)的基礎(chǔ)上,將數(shù)據(jù)流約束的業(yè)務(wù)流程CPN模型通過配置操作轉(zhuǎn)化為基于數(shù)據(jù)流的可配置業(yè)務(wù)流程CPN模型,并將該模型在特定領(lǐng)域下應(yīng)滿足的數(shù)據(jù)約束屬性使用擴(kuò)展的計算樹時序邏輯(ASK-CTL)表示;如圖3所示。
步驟四:應(yīng)用可配置業(yè)務(wù)流程的CPN模型及相應(yīng)工具進(jìn)行分析與驗證。
其中,步驟一)的具體實(shí)現(xiàn)步驟為:
(1.1)分析具體項目的業(yè)務(wù)活動;
(1.2)針對步驟(1.1)的結(jié)果,根據(jù)所分析的業(yè)務(wù)活動,提取相應(yīng)的業(yè)務(wù)活動規(guī)則,將不屬于該領(lǐng)域活動的業(yè)務(wù)規(guī)則過濾掉;
(1.3)對步驟(1.2)的業(yè)務(wù)規(guī)則的分析結(jié)果確定業(yè)務(wù)活動的時序關(guān)系;
(1.4)在步驟(1.3)的基礎(chǔ)上,使用CPN工具將前3步分析的業(yè)務(wù)活動及其時序關(guān)系設(shè)計成CPN模式的業(yè)務(wù)流程。
步驟二)的具體實(shí)現(xiàn)步驟為:
(2.1)在步驟(1)的基礎(chǔ)上,分析由業(yè)務(wù)活動所需要的數(shù)據(jù)和生成的數(shù)據(jù)之間的依賴關(guān)系;
(2.2)根據(jù)業(yè)務(wù)活動之間的數(shù)據(jù)依賴關(guān)系,抽取其相應(yīng)的數(shù)據(jù)流約束模式;
(2.3)將(2.2)得到的數(shù)據(jù)依賴關(guān)系及其約束模式映射到步驟一)所得到的CPN業(yè)務(wù)流程模型中,形成帶數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型;
(2.4)重復(fù)步驟(2.1)、(2.3)和(2.4),直到特定領(lǐng)域相關(guān)的業(yè)務(wù)流程所涉及的活動中全部包含在步驟一)所形成的業(yè)務(wù)活動集中,最終形成模型圖。
步驟三)的具體實(shí)現(xiàn)步驟為:
(3.1)在步驟二)的基礎(chǔ)上,對形成的帶數(shù)據(jù)流約束的CPN模型,進(jìn)行配置操作,即找出流程模型中的使能性業(yè)務(wù)操作、隱藏性的業(yè)務(wù)操作和阻斷性的業(yè)務(wù)操作,通過配置操作函數(shù)將業(yè)務(wù)CPN模型中的相應(yīng)活動分別配置成允許狀態(tài)、隱藏狀態(tài)和阻隔狀態(tài);直至將特定領(lǐng)域基于數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型全部轉(zhuǎn)換成基于數(shù)據(jù)流約束的可配置CPN業(yè)務(wù)流程模型。
步驟四)的具體實(shí)現(xiàn)步驟為:
(4.1)如圖4所示,在步驟三)的基礎(chǔ)上,對形成的基于數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型進(jìn)行缺失數(shù)據(jù)模式的分析與驗證;具體而言,還包括以下步驟:
(4.1.1)如果在基于數(shù)據(jù)流可配置業(yè)務(wù)流程模型中存在一條路徑,其數(shù)據(jù)模型為D,在這個路徑的數(shù)據(jù)流中存在一個數(shù)據(jù)元素d(d∈D),其中D指數(shù)據(jù)元素集,在被某個變遷讀之前沒有任務(wù)一個變遷對它進(jìn)行寫操作,則稱產(chǎn)生缺失數(shù)據(jù)元素d的錯誤,用擴(kuò)展的計算樹邏輯ASK-CTL表示為:EU[-w(d)∪r(d)],其中w為寫數(shù)據(jù),r為讀數(shù)據(jù);
(4.1.2)缺失數(shù)據(jù)檢測:設(shè)是一個基于數(shù)據(jù)流可配置業(yè)務(wù)流程,D為數(shù)據(jù)對象集,假定是模型上的所有完整路徑集(包括起始和終止變遷),則在模型中不存在缺失數(shù)據(jù)錯誤當(dāng)且僅當(dāng)任何一種路徑都不存在缺少數(shù)據(jù)錯誤,用ASK-CTL公式表示;
(4.2)如圖5所示,在步驟三)的基礎(chǔ)上,對形成的基于數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型進(jìn)行冗余數(shù)據(jù)模式的分析與驗證;具體而言,包括以下步驟:
(4.2.1)如果在基于數(shù)據(jù)流可配置業(yè)務(wù)流程模型中存在一條路徑,其數(shù)據(jù)模型為D,在這個路徑的數(shù)據(jù)流中存在一個數(shù)據(jù)元素d(d∈D)在被某個變遷讀之前沒有任務(wù)一個變遷對它進(jìn)行寫操作,則稱產(chǎn)生缺失數(shù)據(jù)元素d的錯誤,用ASK-CTL表示,其圖形化模型如圖6所示;
(4.2.2)冗余數(shù)據(jù)檢測:設(shè)是一個基于數(shù)據(jù)流可配置業(yè)務(wù)流程,D為數(shù)據(jù)對象集,假定是模型上的所有完整路徑集(包括起始和終止變遷),則在模型中不存在缺失數(shù)據(jù)錯誤當(dāng)且僅當(dāng)任何一種路徑都不存在缺少數(shù)據(jù)錯誤,用ASK-CTL公式表示。
(4.3)如圖6所示,在步驟三)的基礎(chǔ)上,對形成的基于數(shù)據(jù)流約束的CPN業(yè)務(wù)流程模型進(jìn)行更新丟失數(shù)據(jù)模式的分析與驗證,具體而言,包括以下步驟:
(4.3.1)新丟失數(shù)據(jù),如果在基于數(shù)據(jù)流可配置業(yè)務(wù)流程中存在一條路徑,路徑中用一個數(shù)據(jù)元素d(d∈D)在被某個任務(wù)讀取之前兩次寫入,則些數(shù)據(jù)元素d丟失數(shù)據(jù)更新,用邏輯ASK-CTL表示;
(4.3.2)更新丟失數(shù)據(jù)檢測:設(shè)是一個基于數(shù)據(jù)流可配置業(yè)務(wù)流程,D為數(shù)據(jù)對象集,假定是模型上的所有完整路徑集(包括起始和終止變遷),則在模型中不存在缺失數(shù)據(jù)錯誤當(dāng)且僅當(dāng)任何一種路徑都不存在缺少數(shù)據(jù)錯誤,用ASK-CTL公式表示。
下面將以一個具體的實(shí)例來對本發(fā)明的方法進(jìn)行說明。
該實(shí)施例是在物流領(lǐng)域里,逐步設(shè)計一個基于數(shù)據(jù)流可配置業(yè)務(wù)流程模型,然后用CPN工具集1去驗證相關(guān)的屬性。圖7是一個具體的CPN模型,模型中存在10個活動(在圖中用方框表示):GoodsChosing,submitPhoneOrder,submitPaperOrder,submitElectricOrder,InformationRecord,Duplicate Detection,SortbyRegion,SortbyTime,SortbyPriority,OrderStoring和七個庫所(在圖中用白色的橢圓表示)表示相關(guān)的狀態(tài):Start,GoodsChosed,RecordInformation,OrderSubmited,OrderConfirmed,Order Stored,End,因此,普通業(yè)務(wù)流程模型的控制流就可以用這些變遷和庫所表達(dá)。然而,活動之間的數(shù)據(jù)依賴關(guān)系會約束業(yè)務(wù)流程模型的行為。在圖6中,活動GoodsChosing會產(chǎn)生數(shù)據(jù)GoodsProperty,然后數(shù)據(jù)GoodsProperty作為三個提交(Submit)活動的輸入數(shù)據(jù),這里的所有數(shù)據(jù)都是用數(shù)據(jù)庫所(在圖中用深色橢圓表示)表示以示與常規(guī)庫所區(qū)分,這些庫所與變遷相連表示了流程中的數(shù)據(jù)流,這些數(shù)據(jù)庫所為:GoodsChoose,GoodsProperty,RecordForm,ElectricOrder,DeliveryRegion,DeliveryTimesort,DeliveryBatch,OrderBooked。
在圖7中,某些變遷將會在任意一個案例中執(zhí)行,如TGoodsChosing、TOrderStoring,然而其它變遷會根據(jù)具體的用戶要求選擇是執(zhí)行(allow)、隱藏(hide)或阻隔(block),換言之,一個案例在執(zhí)行公共變遷的基礎(chǔ)也會選擇某些特殊的變遷執(zhí)行。例如,僅考慮紙質(zhì)訂單流程則客戶只需提交紙質(zhì)訂單,此時執(zhí)行的變遷序列為:TGoodsChosing、TSubmitPaperOrder、TInformationInput、TDuplicateDetection、TSortbyRegion、TSortbyTime、TSortbyPriority和TOrderStoring,而變遷TSubmitPhoneOrder、TSubmitElectircOrder將會被阻隔。如果在設(shè)計階段只考慮整個流程而未對這種個性化的需求提供決策設(shè)計的支持,則在流程執(zhí)行階段增加對模型的手工調(diào)整。而可配置業(yè)務(wù)流程就支持這種以可控的方式派生個性化流程模型,從而減輕流程設(shè)計的勞力和成本等。在CPN模型中,為了支持可配置業(yè)務(wù)流程模型,只需要將變遷依據(jù)是否公共或個性化分為兩類:常規(guī)變遷和可變變遷,常規(guī)變遷與普通業(yè)務(wù)流程中的變遷無區(qū)別,而可變變遷可以根據(jù)用戶特定需求進(jìn)行靈活配置,在CPN模型中,用層次化變遷表示可變變遷,如圖7所示,TSubmitPhoneOrder、TOrderStoring等為可變變遷。
如圖8所示,可以從模型中配置出一個電子訂單的業(yè)務(wù)流程,其電子訂單的需求如下:不需要排序和重復(fù)檢測,則根據(jù)這些需求,在具體執(zhí)行過程中將會阻隔紙質(zhì)訂單和電話訂單的業(yè)務(wù)流程并且變遷TSortbyTime和TDuplicateDetection被隱藏從而跳過執(zhí)行,則派生出的電子訂單流程個性化過程如圖9所示。
圖10表示的是物流配送領(lǐng)域里基于數(shù)據(jù)流可配置CPN模型,模型中有分別帶有相應(yīng)托肯的15個庫所和10個變遷,這些庫所有兩類組成:7個控制流庫所(常規(guī)庫所)和8個數(shù)據(jù)流庫所(在圖中用藍(lán)色表示);10個變遷是由5個常規(guī)變遷和5個可變變遷組成(在圖中,可變變遷是由組合變遷-雙層邊界方框表示),這里,某些庫所有一個托肯,如數(shù)據(jù)庫所GoodsChoose中有一個托肯是:{caseID=1,goodsID=1,Dress="Wuhan",Time=7,Priority=low},在模型的初始標(biāo)識中,變遷Goods Chosing是使能的。
相關(guān)的顏色集和變量如圖11所示,如顏色集ConfigDesicion是一個帶有三個值的枚舉類型:Activated,Hidden and Blocked,而顏色集Goods is是一個記錄類型:caseID:INT*goodsID:GOODSID*Dress:DeliveryDress*Time:Delivery Time*Priority:PRIORITY。同時,相關(guān)的函數(shù)定義如圖12所示,例如,函數(shù)checkConfig的功能是檢測在這個可配置的CPN模型中對某個任務(wù)配置的決策,而函數(shù)notConfigured的功能是檢測某個任務(wù)是否未被配置。
在圖10中,在執(zhí)行變遷GoodsChosing后,則訂單預(yù)訂流程將會依據(jù)用戶的具體需求選擇其中相關(guān)的可變變遷執(zhí)行,然后執(zhí)行業(yè)務(wù)流程達(dá)到期望結(jié)果的終止?fàn)顟B(tài)。圖13是電話訂單處理的業(yè)務(wù)流程終止?fàn)顟B(tài)的兩個具體托肯情形,其中在托肯{caseID=1,methods="DressMethods",Comflag=true}中,當(dāng)成員Comflag值為真時表示訂單處理正確完成,而在托肯{CaseID=1,OrderType=Phone,Configurations={Transimition="Duplicate Detection",Configuration=Activated},{Transimition="submitPhoneOrder",Configuration=Activated},{Transimition="sub mitElectricOrder",Configuration=Blocked},{Transimition="submitPaperOrder",Co nfiguration=Blocked}}中,成員Configurations表示可配置變遷的配置,如變遷Duplicate Detection值為“Activated”表示這個變遷在流程的執(zhí)行過程應(yīng)該已經(jīng)配置成enabled變遷submitElectricOrder的值為“Blocked”表示這個變遷已經(jīng)被blocked。
應(yīng)用CPN對基于數(shù)據(jù)流可配置業(yè)務(wù)流程的相關(guān)屬性驗證結(jié)果如下:
1、基本屬性驗證
(1)模型狀態(tài)空間
圖14表示這個基于數(shù)據(jù)流可配置CPN模型生成狀態(tài)空間的分析標(biāo)準(zhǔn)結(jié)果報告
標(biāo)準(zhǔn)檢測結(jié)果分成五部分:狀態(tài)空間統(tǒng)計,有界性,家態(tài),活性和公平性,從結(jié)果中可以看出這個模型無家態(tài)和活變遷實(shí)例且沒有出現(xiàn)無限序列。
(2)終止?fàn)顟B(tài)的可達(dá)性驗證
圖15為模型的終止?fàn)顟B(tài)的可達(dá)性驗證,首先,定義一個用戶期望的終止?fàn)顟B(tài)DesiredTerminal,然后使用由CPN提供的基本函數(shù)去驗證所定義的終止?fàn)顟B(tài)是否可達(dá),由CPN中的ML模塊去驗證終止?fàn)顟B(tài)可達(dá)函數(shù)ReachablePred DesiredTerminal,可以看出驗證結(jié)果為真(true)。
2、數(shù)據(jù)流的正確性驗證
由前面數(shù)據(jù)流的相關(guān)正確性表示是由ASK-CTL描述的,因此,首先要將CPN中的ASK-CTL模塊要裝載進(jìn)來,其裝載過程如下:
use(ogpath^"ASKCTL/BitArray.sml");
use(ogpath^"ASKCTL/ASKCTL.sml");
open ASK-CTL;
因篇幅原因,只驗證前面討論的缺失數(shù)據(jù)錯誤的正確性,其結(jié)果如圖16所示,在驗證結(jié)果圖中,定義兩個結(jié)點(diǎn)函數(shù)Node1和Node2分別表示兩個期望的數(shù)據(jù)狀態(tài):“Chosing Goods”和“Order is created”,分別使用A1和A2標(biāo)記這兩個狀態(tài),最后,定義一個ASK-CTL公式myASKCTLformula表示保證無缺失數(shù)據(jù)信息的正確性屬性,根據(jù)myASKCTLformula判斷模型是否滿足無缺失數(shù)據(jù)信息,從驗證結(jié)果中可以看出其myASKCTLformula InitNode為真,所以這個模型中無缺失數(shù)據(jù)信息的錯誤。
最后說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。