一種確定演化域的最小生成工作流網(wǎng)方法
【專利摘要】本發(fā)明公開(kāi)了一種確定演化域的最小生成工作流網(wǎng)方法,包括:S101,將初始化系統(tǒng)抽象為工作流網(wǎng),確定與問(wèn)題節(jié)點(diǎn)相對(duì)應(yīng)的工作流網(wǎng)中的指定變遷;S102,初始化工作流網(wǎng)為集合,并將指定變遷劃分到集合中;S103,遍歷工作流網(wǎng)中所有變遷,逐一判斷所有變遷是否對(duì)指定變遷具有引發(fā)完全依賴,當(dāng)所有變遷中的一個(gè)變遷對(duì)指定變遷具有引發(fā)完全依賴,則將一個(gè)變遷劃分到集合中;S104,當(dāng)集合滿足工作流網(wǎng)的條件時(shí),集合為最小輸出工作流網(wǎng);否則,在工作流網(wǎng)中添加虛擬節(jié)點(diǎn)以使得集合為最小輸出工作流網(wǎng)。本發(fā)明可以實(shí)現(xiàn)在用相同的演化模型條件下減小演化代價(jià),縮短演化時(shí)間的功能。
【專利說(shuō)明】一種確定演化域的最小生成工作流網(wǎng)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息技術(shù)在線演化領(lǐng)域,具體地,涉及一種確定演化域的最小生成工 作流網(wǎng)方法。
【背景技術(shù)】
[0002] 能否提供不間斷的服務(wù)正成為人們衡量軟件系統(tǒng)的一項(xiàng)重要的指標(biāo),在線演化就 成了現(xiàn)在的一個(gè)熱門領(lǐng)域。
[0003] 現(xiàn)有技術(shù)研究了工作流網(wǎng)的動(dòng)態(tài)演化問(wèn)題,Aalst等人提出演化前后的工作流模 型必須滿足繼承關(guān)系,該方法雖然可以避免引入動(dòng)態(tài)演化錯(cuò)誤,但當(dāng)工作流網(wǎng)演化前后不 滿足繼承關(guān)系時(shí)就不能用此方法進(jìn)行動(dòng)態(tài)演化,因此不具有一般性。
[0004] Aalst等人還提出了一種不限定工作流類型的工作流演化方法,該方法通過(guò)比較 變化前后的工作流模型,找出工作流模型中所有發(fā)生了變化的區(qū)域,只有當(dāng)工作流實(shí)例不 在變化區(qū)域里執(zhí)行的時(shí)候,才允許工作流實(shí)例的遷移。此方法縮小了工作流演化的范圍,當(dāng) 工作流實(shí)例在演化區(qū)域里執(zhí)行的時(shí)候不能被動(dòng)態(tài)演化。
[0005] 接下來(lái),Casatiet al.提出了一個(gè)系統(tǒng)全局的方法來(lái)管理動(dòng)態(tài)工作流網(wǎng)的達(dá)到改 善工作流演化問(wèn)題。此外Sadiq et al.提出了一個(gè)判斷工作流程正確屬性的標(biāo)準(zhǔn)。WIDE 方法試圖在工作流的基礎(chǔ)上找出工作流程所有執(zhí)行過(guò)的歷史信息從而達(dá)到對(duì)工作流程的 改善。
[0006] Analysis of workflow dynamic changes based on Petri net, Information and Software Technology,51 (2009) :284-292,這篇文獻(xiàn)定義了一個(gè)特殊的動(dòng)態(tài)改變,兼容性 改變,并縮小了演變范圍,但這里的改變范圍是對(duì)比前后整個(gè)工作流網(wǎng)得出的,并沒(méi)有從工 作流本身出發(fā)進(jìn)行操作,即并沒(méi)有本質(zhì)的縮小操作范圍。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的是提供一種確定軟件演化域的最小生成工作流網(wǎng)的方法,該方法從 工作流本身出發(fā)進(jìn)行操作,可以實(shí)現(xiàn)在用相同的演化模型條件下減小演化代價(jià),縮短演化 時(shí)間的功能。
[0008] 為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種確定演化域的最小生成工作流網(wǎng)方法,該 方法包括:
[0009] S101,將初始化系統(tǒng)抽象為工作流網(wǎng),確定與問(wèn)題節(jié)點(diǎn)相對(duì)應(yīng)的工作流網(wǎng)中的指 定變遷;
[0010] S102,初始化所述工作流網(wǎng)為集合,并將所述指定變遷劃分到所述集合中;
[0011] S103,遍歷工作流網(wǎng)中所有變遷,逐一判斷所述所有變遷是否對(duì)所述指定變遷具 有引發(fā)完全依賴,當(dāng)所述所有變遷中的一個(gè)變遷對(duì)所述指定變遷具有引發(fā)完全依賴,則將 所述一個(gè)變遷劃分到所述集合中;
[0012] S104,當(dāng)所述集合滿足工作流網(wǎng)的條件時(shí),所述集合為最小輸出工作流網(wǎng);
[0013] 當(dāng)所述集合不滿足工作流網(wǎng)的條件時(shí),在所述工作流網(wǎng)中添加虛擬節(jié)點(diǎn)以使得所 述集合為最小輸出工作流網(wǎng)。
[0014] 優(yōu)選地,在步驟S104中,添加虛擬節(jié)點(diǎn)的方法包括:
[0015] 添加虛擬庫(kù)所和虛擬弧,且所述虛擬庫(kù)所通過(guò)所述虛擬弧指向所述工作流網(wǎng)中無(wú) 后繼庫(kù)所的變遷節(jié)點(diǎn)使得所述集合為最小輸出工作流網(wǎng)。
[0016] 優(yōu)選地,在步驟S104中,添加虛擬節(jié)點(diǎn)的方法還包括:
[0017] S201,判斷所述工作流網(wǎng)中是否存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)和/或無(wú)后繼庫(kù)所的 變遷節(jié)點(diǎn),
[0018] S202,當(dāng)存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)且不存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)時(shí),先添加 第一虛擬變遷和與所述第一虛擬變遷相對(duì)應(yīng)的第一虛擬弧使得所述無(wú)后繼變遷的庫(kù)所節(jié) 點(diǎn)通過(guò)第一虛擬弧指向第一虛擬變遷;再添加第一虛擬庫(kù)所和第二虛擬弧,使所述第一虛 擬變遷通過(guò)所述第二虛擬弧指向所述第一虛擬庫(kù)所;或
[0019] 當(dāng)存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)且不存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)時(shí),添加第二虛擬 庫(kù)所和與所述第二虛擬庫(kù)所相對(duì)應(yīng)的第三虛擬弧使所述無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)通過(guò)所述 第三虛擬弧指向所述第二虛擬庫(kù)所;或
[0020] 當(dāng)存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)且存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)時(shí),先添加第二虛擬 變遷和與所述第二虛擬變遷相對(duì)應(yīng)的第四虛擬弧使所述無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)通過(guò)所述 第四虛擬弧指向所述第二虛擬變遷;再添加第三虛擬庫(kù)所和與所述第三虛擬庫(kù)所相對(duì)應(yīng)的 第五虛擬弧使所述無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)通過(guò)所述第五虛擬弧指向所述第三虛擬庫(kù)所。
[0021] 優(yōu)選地,步驟S103判斷所述所有變遷中的任意一個(gè)變遷是否對(duì)所述指定變遷具 有引發(fā)完全依賴的步驟包括:
[0022] S301,記錄任意一個(gè)變遷的k個(gè)可引發(fā)的前驅(qū)序列,其中k為自然數(shù);
[0023] S302,判斷所述指定變遷是否屬于所有的所述可引發(fā)的前驅(qū)序列;
[0024] S303,當(dāng)所述指定變遷屬于所有的所述可引發(fā)的前驅(qū)序列時(shí),則判斷該變遷對(duì)所 述指定變遷具有引發(fā)完全依賴。
[0025] 優(yōu)選地,步驟S103中,
[0026] 所述引發(fā)完全依賴包括:直接引發(fā)完全依賴或間接引發(fā)完全依賴。
[0027] 優(yōu)選地,步驟S104中,集合滿足工作流網(wǎng)的條件包括:
[0028] 當(dāng)所述工作流網(wǎng)中的任意一個(gè)庫(kù)所中的所有輸入變遷屬于所述集合和所述工作 流網(wǎng)中的任意一個(gè)弧中的所有輸入節(jié)點(diǎn)和所有輸出節(jié)點(diǎn)屬于所述集合時(shí),所述集合為最小 輸出工作流網(wǎng)。
[0029] 通過(guò)上述方法,本發(fā)明針對(duì)目前大規(guī)模軟件系統(tǒng)的在線演化問(wèn)題,如果對(duì)整個(gè)系 統(tǒng)進(jìn)行操作其演化過(guò)程必然會(huì)涉及到資源和時(shí)間的利用問(wèn)題,本發(fā)明提出了一種確定軟件 演化域的最小生成工作流網(wǎng)的方法,找出所有需要處理的部分放入演化域內(nèi),不需要處理 的部分劃分出去,這樣就可以控制用最小演化區(qū)域達(dá)到實(shí)現(xiàn)整個(gè)系統(tǒng)演化功能的作用,該 種方法可以在用相同的演化模型條件下減小演化代價(jià),縮短了演化的時(shí)間。
[0030] 本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的【具體實(shí)施方式】部分予以詳細(xì)說(shuō)明。
【專利附圖】
【附圖說(shuō)明】
[0031] 附圖是用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與下面的具 體實(shí)施方式一起用于解釋本發(fā)明,但并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[0032] 圖1是說(shuō)明本發(fā)明的【具體實(shí)施方式】的一種確定演化域的最小生成工作流網(wǎng)方法 的流程圖;以及
[0033] 圖2是說(shuō)明本發(fā)明的【具體實(shí)施方式】的一種確定演化域的最小生成工作流網(wǎng)方法 的網(wǎng)購(gòu)系統(tǒng)的購(gòu)物流程圖。
【具體實(shí)施方式】
[0034] 以下結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行詳細(xì)說(shuō)明。應(yīng)當(dāng)理解的是,此處所描 述的【具體實(shí)施方式】?jī)H用于說(shuō)明和解釋本發(fā)明,并不用于限制本發(fā)明。
[0035] 在本發(fā)明的一種確定演化域的最小生成工作流網(wǎng)方法中,該方法包括:
[0036]S101,將初始化系統(tǒng)抽象為工作流網(wǎng),確定與問(wèn)題節(jié)點(diǎn)相對(duì)應(yīng)的工作流網(wǎng)中的指 定變遷;
[0037] S102,初始化所述工作流網(wǎng)為集合,并將所述指定變遷劃分到所述集合中;
[0038] S103,遍歷工作流網(wǎng)中所有變遷,逐一判斷所述所有變遷是否對(duì)所述指定變遷具 有引發(fā)完全依賴,當(dāng)所述所有變遷中的一個(gè)變遷對(duì)所述指定變遷具有引發(fā)完全依賴,則將 所述一個(gè)變遷劃分到所述集合中;
[0039] S104,當(dāng)所述集合滿足工作流網(wǎng)的條件時(shí),所述集合為最小輸出工作流網(wǎng);
[0040] 當(dāng)所述集合不滿足工作流網(wǎng)的條件時(shí),在所述工作流網(wǎng)中添加虛擬節(jié)點(diǎn)以使得所 述集合為最小輸出工作流網(wǎng)。
[0041] 通過(guò)上述方法,本發(fā)明針對(duì)目前大規(guī)模軟件系統(tǒng)的在線演化問(wèn)題,如果對(duì)整個(gè)系 統(tǒng)進(jìn)行操作其演化過(guò)程必然會(huì)涉及到資源和時(shí)間的利用問(wèn)題,本發(fā)明提出了 一種確定軟件 演化域的最小生成工作流網(wǎng)的方法,找出所有需要處理的部分放入演化域內(nèi),不需要處理 的部分劃分出去,這樣就可以控制用最小演化區(qū)域達(dá)到實(shí)現(xiàn)整個(gè)系統(tǒng)演化功能的作用,該 種方法可以在用相同的演化模型條件下減小演化代價(jià),縮短了演化的時(shí)間。
[0042] 該種方法,將不需要的變遷給劃分出去,需要的步驟劃分成所述集合,從而實(shí)現(xiàn)得 到最小輸出流網(wǎng),減小了演化的代價(jià),縮短了演化的時(shí)間。
[0043] 下面結(jié)合附圖1和附圖2對(duì)本發(fā)明進(jìn)行進(jìn)一步的說(shuō)明,在本發(fā)明的一種具體實(shí)施 方式中,通過(guò)一個(gè)網(wǎng)購(gòu)案例來(lái)闡述一下最小生成工作流網(wǎng)工作的原理。
[0044] 在本發(fā)明的一種【具體實(shí)施方式】中,在步驟S104中,添加虛擬節(jié)點(diǎn)的方法包括 :
[0045] 添加虛擬庫(kù)所和虛擬弧,且所述虛擬庫(kù)所通過(guò)所述虛擬弧指向所述工作流網(wǎng)中無(wú) 后繼庫(kù)所的變遷節(jié)點(diǎn)使得所述集合為最小輸出工作流網(wǎng)。
[0046] 在步驟S104中,添加虛擬節(jié)點(diǎn)的方法還包括:
[0047] S201,判斷所述工作流網(wǎng)中是否存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)和/或無(wú)后繼庫(kù)所的 變遷節(jié)點(diǎn),
[0048] S202,當(dāng)存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)且不存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)時(shí),先添加 第一虛擬變遷和與所述第一虛擬變遷相對(duì)應(yīng)的第一虛擬弧使得所述無(wú)后繼變遷的庫(kù)所節(jié) 點(diǎn)通過(guò)第一虛擬弧指向第一虛擬變遷;再添加第一虛擬庫(kù)所和第二虛擬弧,使所述第一虛 擬變遷通過(guò)所述第二虛擬弧指向所述第一虛擬庫(kù)所;或
[0049] 當(dāng)存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)且不存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)時(shí),添加第二虛擬 庫(kù)所和與所述第二虛擬庫(kù)所相對(duì)應(yīng)的第三虛擬弧使所述無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)通過(guò)所述 第三虛擬弧指向所述第二虛擬庫(kù)所;或
[0050] 當(dāng)存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)且存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)時(shí),先添加第二虛擬 變遷和與所述第二虛擬變遷相對(duì)應(yīng)的第四虛擬弧使所述無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)通過(guò)所述 第四虛擬弧指向所述第二虛擬變遷;再添加第三虛擬庫(kù)所和與所述第三虛擬庫(kù)所相對(duì)應(yīng)的 第五虛擬弧使所述無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)通過(guò)所述第五虛擬弧指向所述第三虛擬庫(kù)所。
[0051] 在本發(fā)明中限制了最小工作流網(wǎng)必須是工作流網(wǎng),在一般生成過(guò)程中可能會(huì)不滿 足工作流網(wǎng)條件,所以為了能滿足最小工作流網(wǎng)是一個(gè)工作流網(wǎng),需要添加虛擬節(jié)點(diǎn)構(gòu)成 工作流網(wǎng),添加虛擬節(jié)點(diǎn)就是為了讓生成工作流網(wǎng)滿足工作流網(wǎng)的所有條件。
[0052] 在本發(fā)明的一種【具體實(shí)施方式】中,步驟S103判斷所述所有變遷中的任意一個(gè)變 遷是否對(duì)所述指定變遷具有引發(fā)完全依賴的步驟包括:
[0053] S301,記錄任意一個(gè)變遷的k個(gè)可引發(fā)的前驅(qū)序列,其中k為自然數(shù);
[0054] S302,判斷所述指定變遷是否屬于所有的所述可引發(fā)的前驅(qū)序列;
[0055] S303,當(dāng)所述指定變遷屬于所有的所述可引發(fā)的前驅(qū)序列時(shí),則判斷該變遷對(duì)所 述指定變遷具有引發(fā)完全依賴。
[0056] 通過(guò)上述實(shí)施方式,可以實(shí)現(xiàn)判斷任意一個(gè)變遷對(duì)所述指定變遷是否具有引發(fā)完 全依賴。
[0057] 在本發(fā)明的一種【具體實(shí)施方式】中,步驟S103中,
[0058] 所述引發(fā)完全依賴可以包括:直接引發(fā)完全依賴或間接引發(fā)完全依賴。
[0059] 在本發(fā)明的一種【具體實(shí)施方式】中,步驟S104中,集合滿足工作流網(wǎng)的條件包括:
[0060] 當(dāng)所述工作流網(wǎng)中的任意一個(gè)庫(kù)所中的所有輸入變遷屬于所述集合和所述工作 流網(wǎng)中的任意一個(gè)弧中的所有輸入節(jié)點(diǎn)和所有輸出節(jié)點(diǎn)屬于所述集合時(shí),所述集合為最小 輸出工作流網(wǎng)。
[0061] 通過(guò)上述實(shí)施方式,可最大化的減少演化代價(jià),通過(guò)判斷任意一個(gè)輸入變遷和任 意一個(gè)輸入節(jié)點(diǎn)或輸出節(jié)點(diǎn)是否在集合中即可以判斷所述集合是否是最小輸出工作流網(wǎng)。
[0062] 在本發(fā)明的一種【具體實(shí)施方式】中,最優(yōu)選地實(shí)施方法包括以下幾個(gè)步驟:
[0063]步驟1,初始化系統(tǒng)將其抽象為W(工作流網(wǎng)),確定指定問(wèn)題節(jié)點(diǎn)對(duì)應(yīng)的工作流網(wǎng) 中的t (指定變遷);
[0064]步驟2,初始化最小生成工作流網(wǎng)的S (初始集合),并將t劃分到集合S中;[0065]步驟3,遍歷工作流網(wǎng)中所有變遷,根據(jù)定義2 (具體定義如下文所示)、定義3 (具 體定義如下文所示)判斷所有變遷中任意一個(gè)變遷是否對(duì)t具有引發(fā)完全依賴;當(dāng)其對(duì)t 具有完全依賴,轉(zhuǎn)到步驟4,否則轉(zhuǎn)到步驟5。
[0066] 步驟4,將該變遷劃分到集合S中。
[0067] 步驟5,跳過(guò)該變遷繼續(xù)遍歷,轉(zhuǎn)到步驟3。
[0068]步驟6,判斷工作流網(wǎng)是否遍歷結(jié)束,若遍歷結(jié)束,轉(zhuǎn)到步驟7,否則轉(zhuǎn)到步驟3。 [0069]步驟7,根據(jù)定義4 (具體定義如下文所示)判斷集合S是否滿足最小生成工作流 網(wǎng),若滿足轉(zhuǎn)到步驟8,否則,轉(zhuǎn)到步驟9。
[0070]步驟8,輸出最小輸出工作流網(wǎng)。
[0071] 步驟9,根據(jù)定義4(具體定義如下文所示)添加虛擬節(jié)點(diǎn)并轉(zhuǎn)到步驟7。
[0072] 其中上述過(guò)程中用到的定義可參考下面的定義:
[0073] 定義1,可引發(fā)前驅(qū)序列:則在工作流網(wǎng)中,所有在Ti節(jié)點(diǎn)之前引發(fā)的變遷節(jié)點(diǎn)組 成的最小序列稱為Ti的可引發(fā)前驅(qū)序列,所謂最小序列就是當(dāng)序列中任一節(jié)點(diǎn)不引發(fā)時(shí), Ti都不能引發(fā)。
[0074] 定理1,在工作流網(wǎng)中,對(duì)任意一個(gè)節(jié)點(diǎn)Ti,設(shè)其節(jié)點(diǎn)可引發(fā)前驅(qū)序列有k個(gè), (k G N*),分別為 NI, N2......Nk,若變遷節(jié)點(diǎn) Tj G Nl 且 Tj G N2. ? --且 Tj G Nk,則 Ti 對(duì)Tj直接或間接完全依賴。
[0075]定義2,直接引發(fā)完全依賴:對(duì)于某一服務(wù)組合實(shí)例的已執(zhí)行活動(dòng)序列S中的任 意兩個(gè)活動(dòng)S [i]和S [j],若S [j]的發(fā)生只有建立在S [i]發(fā)生的基礎(chǔ)上,則稱S [j]完 全依賴于s [i]。即有且僅有活動(dòng)S [i]發(fā)生,活動(dòng)S [j]才會(huì)發(fā)生。記作:S [i] - S [j]。
[0076] 定義3,間接引發(fā)完全依賴:對(duì)于某一服務(wù)組合實(shí)例的已執(zhí)行活動(dòng)序列S中的3 個(gè)活動(dòng)S [i],S [j],S [k],其中i〈j〈k,若活動(dòng)S [j]直接或間引發(fā)據(jù)依賴于活動(dòng)S [j], 活動(dòng)S [j]直接或間接依賴于活動(dòng)S [k],則活動(dòng)S [i]間接依賴于活動(dòng)S [k]。記作: 5 [k] -- 5 [i]。
[0077] 綜合定義2和定義3可知間接引發(fā)完全依賴具有傳遞性,而直接引發(fā)完全依賴不 具有傳遞性。
[0078] 定義4,設(shè)S-WFN(P,T,F(xiàn),t)是最小生成工作流網(wǎng)則滿足以下三個(gè)性質(zhì) :
[0079] 1,S-WFN .UVFN,最小工作流網(wǎng)是一個(gè)工作流網(wǎng);
[0080] 2, S-WFN是根據(jù)某一特定變遷節(jié)點(diǎn)T生成;
[0081] 3,對(duì)任意變遷Ti屬于原工作流網(wǎng)WFN,若Ti對(duì)T具有引發(fā)完全依賴,則Ti屬 于S-WFN,否則Ti不屬于S-WFN,對(duì)原工作流網(wǎng)中任意庫(kù)所P,若P所有的輸入變遷都屬于 S-WFN,則P屬于S-WFN,否則P不屬于S-WFN。對(duì)于原工作流網(wǎng)中任意弧F,若F的輸入節(jié)點(diǎn) 和輸出節(jié)點(diǎn)都屬于S-WFN,則F屬于S-WFN,否則F不屬于S-WFN。
[0082] 綜上所述,性質(zhì)1中限定了此網(wǎng)必須是一個(gè)工作流網(wǎng),但在一般生成過(guò)程中可能 會(huì)不滿足工作流網(wǎng)條件,所以為了能滿足性質(zhì)1,需要添加虛擬節(jié)點(diǎn)構(gòu)成工作流網(wǎng)。
[0083] 在本發(fā)明中添加虛擬節(jié)點(diǎn)是為了讓生成工作流網(wǎng)滿足工作流網(wǎng)的所有條件,首先 添加一個(gè)虛擬庫(kù)所Pn和虛擬弧Fn,使Pn通過(guò)Fn指向T,然后判斷此時(shí)是否滿足最小工作流 網(wǎng)的條件,若滿足則此時(shí)的網(wǎng)就是要找的最小生成工作流網(wǎng),若不滿足,判斷網(wǎng)中是否有無(wú) 后繼的變遷節(jié)點(diǎn)或無(wú)后繼的庫(kù)所節(jié)點(diǎn),分為以下三種情況進(jìn)行添加:當(dāng)只有無(wú)后繼變遷的 庫(kù)所節(jié)點(diǎn),則添加一個(gè)Tv (虛擬變遷)和相應(yīng)的Fvi (虛擬?。┦沟眠@些庫(kù)所節(jié)點(diǎn)通過(guò)Fvi 指向Tv,再添加一個(gè)Pv(虛擬庫(kù)所節(jié)點(diǎn))和Fv(虛擬?。?,使Tv通過(guò)Fv指向Pv ;當(dāng)只有無(wú) 后繼庫(kù)所的變遷節(jié)點(diǎn),則添加一個(gè)Pv (虛擬庫(kù)所)和相應(yīng)的Fvi (虛擬?。沟眠@些變遷 通過(guò)Fvi指向Pv ;當(dāng)有無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)也有無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn),則首先添加一 個(gè)Tv (虛擬變遷)和相應(yīng)的Tvi (虛擬?。?,使得無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)通過(guò)Tvi指向Tv, 然后再添加一個(gè)Pv (虛擬庫(kù)所)和相應(yīng)的Tvj (虛擬?。?,使得所有無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn) 通過(guò)Tvj指向Pv。
[0084] 另外,通過(guò)上面的介紹,下面結(jié)合附圖2將本發(fā)明用于一個(gè)這個(gè)網(wǎng)購(gòu)系統(tǒng),在該網(wǎng) 購(gòu)系統(tǒng)中,包括:登錄,選擇商品,接著直接購(gòu)買或者加入購(gòu)物車,對(duì)加入購(gòu)物車的商品進(jìn)行 結(jié)算,然后選擇支付方式,是在線支付還是線下支付,線下支付選擇提貨方式,自提還是送 貨上門,選擇網(wǎng)點(diǎn),積分擔(dān)保,確認(rèn)地址,確認(rèn)訂單,在線支付選擇,支付寶支付還是網(wǎng)銀支 付,獲取積分后記錄用戶的偏好,最后確認(rèn)收貨,再收貨。具體操作方式參見(jiàn)圖2,涉及到了 很多操作步驟,但并不是所有的操作步驟都有關(guān)聯(lián)性,正常與否并不影響其他的操作正常 進(jìn)行;剩下的節(jié)點(diǎn)正常工作。在本例中,假設(shè)節(jié)點(diǎn)支付寶支付出現(xiàn)了故障,即支付寶支付出 現(xiàn)了問(wèn)題,這時(shí)如果對(duì)整個(gè)系統(tǒng)進(jìn)行停機(jī)修復(fù)也能達(dá)到系統(tǒng)在線演化的目的,但資源與時(shí) 間浪費(fèi)較大。通過(guò)上述模型與算法可知,只需要找到與支付寶支付有數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn)即可, 所以通過(guò)尋找最小生成工作流網(wǎng)找出和支付寶支付有關(guān)聯(lián)的節(jié)點(diǎn)。根據(jù)上述最小生成工 作流網(wǎng)的定義,可以發(fā)現(xiàn)登陸支付寶滿足條件,即支付寶支付與登陸支付寶構(gòu)成的工作流 網(wǎng)就是要找的最小生成工作流網(wǎng),除了最小生成工作流網(wǎng)之外的工作流網(wǎng)其他部分正常工 作;在系統(tǒng)上中其他的節(jié)點(diǎn)出現(xiàn)了問(wèn)題也可以同樣用找最小生成工作流網(wǎng)的方法將影響范 圍化到最小。該方法可以將系統(tǒng)出現(xiàn)故障所帶來(lái)的損失降低到最低。
[0085] 以上結(jié)合附圖詳細(xì)描述了本發(fā)明的優(yōu)選實(shí)施方式,但是,本發(fā)明并不限于上述實(shí) 施方式中的具體細(xì)節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行多種簡(jiǎn) 單變型,這些簡(jiǎn)單變型均屬于本發(fā)明的保護(hù)范圍。
[0086] 另外需要說(shuō)明的是,在上述【具體實(shí)施方式】中所描述的各個(gè)具體技術(shù)特征,在不矛 盾的情況下,可以通過(guò)任何合適的方式進(jìn)行組合,為了避免不必要的重復(fù),本發(fā)明對(duì)各種可 能的組合方式不再另行說(shuō)明。
[0087] 此外,本發(fā)明的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本 發(fā)明的思想,其同樣應(yīng)當(dāng)視為本發(fā)明所公開(kāi)的內(nèi)容。
【權(quán)利要求】
1. 一種確定演化域的最小生成工作流網(wǎng)方法,其特征在于,該方法包括: S101,將初始化系統(tǒng)抽象為工作流網(wǎng),確定與問(wèn)題節(jié)點(diǎn)相對(duì)應(yīng)的工作流網(wǎng)中的指定變 遷; 5102, 初始化所述工作流網(wǎng)為集合,并將所述指定變遷劃分到所述集合中; 5103, 遍歷工作流網(wǎng)中所有變遷,逐一判斷所述所有變遷是否對(duì)所述指定變遷具有引 發(fā)完全依賴,當(dāng)所述所有變遷中的一個(gè)變遷對(duì)所述指定變遷具有引發(fā)完全依賴,則將所述 一個(gè)變遷劃分到所述集合中; 5104, 當(dāng)所述集合滿足工作流網(wǎng)的條件時(shí),所述集合為最小輸出工作流網(wǎng); 當(dāng)所述集合不滿足工作流網(wǎng)的條件時(shí),在所述工作流網(wǎng)中添加虛擬節(jié)點(diǎn)以使得所述集 合為最小輸出工作流網(wǎng)。
2. 根據(jù)權(quán)利要求1所述的確定演化域的最小生成工作流網(wǎng)方法,其特征在于,在步驟 S104中,添加虛擬節(jié)點(diǎn)的方法包括: 添加虛擬庫(kù)所和虛擬弧,且所述虛擬庫(kù)所通過(guò)所述虛擬弧指向所述工作流網(wǎng)中無(wú)后繼 庫(kù)所的變遷節(jié)點(diǎn)使得所述集合為最小輸出工作流網(wǎng)。
3. 根據(jù)權(quán)利要求1所述的確定演化域的最小生成工作流網(wǎng)方法,其特征在于,在步驟 S104中,添加虛擬節(jié)點(diǎn)的方法還包括: S201,判斷所述工作流網(wǎng)中是否存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)和/或無(wú)后繼庫(kù)所的變遷 節(jié)點(diǎn), S202,當(dāng)存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)且不存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)時(shí),先添加第一 虛擬變遷和與所述第一虛擬變遷相對(duì)應(yīng)的第一虛擬弧使得所述無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)通 過(guò)第一虛擬弧指向第一虛擬變遷;再添加第一虛擬庫(kù)所和第二虛擬弧,使所述第一虛擬變 遷通過(guò)所述第二虛擬弧指向所述第一虛擬庫(kù)所;或 當(dāng)存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)且不存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)時(shí),添加第二虛擬庫(kù)所 和與所述第二虛擬庫(kù)所相對(duì)應(yīng)的第三虛擬弧使所述無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)通過(guò)所述第三 虛擬弧指向所述第二虛擬庫(kù)所;或 當(dāng)存在無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)且存在無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)時(shí),先添加第二虛擬變遷 和與所述第二虛擬變遷相對(duì)應(yīng)的第四虛擬弧使所述無(wú)后繼變遷的庫(kù)所節(jié)點(diǎn)通過(guò)所述第四 虛擬弧指向所述第二虛擬變遷;再添加第三虛擬庫(kù)所和與所述第三虛擬庫(kù)所相對(duì)應(yīng)的第五 虛擬弧使所述無(wú)后繼庫(kù)所的變遷節(jié)點(diǎn)通過(guò)所述第五虛擬弧指向所述第三虛擬庫(kù)所。
4. 根據(jù)權(quán)利要求1所述的確定演化域的最小生成工作流網(wǎng)方法,其特征在于,步驟 S103判斷所述所有變遷中的任意一個(gè)變遷是否對(duì)所述指定變遷具有引發(fā)完全依賴的步驟 包括: S301,記錄任意一個(gè)變遷的k個(gè)可引發(fā)的前驅(qū)序列,其中k為自然數(shù); S302,判斷所述指定變遷是否屬于所有的所述可引發(fā)的前驅(qū)序列; S303,當(dāng)所述指定變遷屬于所有的所述可引發(fā)的前驅(qū)序列時(shí),則判斷該變遷對(duì)所述指 定變遷具有引發(fā)完全依賴。
5. 根據(jù)權(quán)利要求1所述的確定演化域的最小生成工作流網(wǎng)方法,其特征在于,步驟 S103 中, 所述引發(fā)完全依賴包括:直接引發(fā)完全依賴或間接引發(fā)完全依賴。
6.根據(jù)權(quán)利要求1所述的確定演化域的最小生成工作流網(wǎng)方法,其特征在于,步驟 S104中,集合滿足工作流網(wǎng)的條件包括: 當(dāng)所述工作流網(wǎng)中的任意一個(gè)庫(kù)所中的所有輸入變遷屬于所述集合和所述工作流網(wǎng) 中的任意一個(gè)弧中的所有輸入節(jié)點(diǎn)和所有輸出節(jié)點(diǎn)屬于所述集合時(shí),所述集合為最小輸出 工作流網(wǎng)。
【文檔編號(hào)】G06Q30/06GK104317885SQ201410567556
【公開(kāi)日】2015年1月28日 申請(qǐng)日期:2014年10月22日 優(yōu)先權(quán)日:2014年10月22日
【發(fā)明者】章昭輝, 鄭祿濤 申請(qǐng)人:安徽師范大學(xué)