• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Petri網(wǎng)模型的工作流引擎設(shè)計(jì)

      2014-12-31 00:00:00查文剛

      摘 要:工作流引擎是工作流管理系統(tǒng)的核心部分。本文運(yùn)用Petri網(wǎng)理論來構(gòu)建一個(gè)基于活動的工作流引擎?;诨顒拥墓ぷ髁饕馕吨^程由一組需要完成的某些目標(biāo)活動組成。在本系統(tǒng)中它將嵌套在該牽引供電系統(tǒng)中,用于安全基礎(chǔ)問題庫系統(tǒng)中業(yè)務(wù)的處理。本文詳細(xì)介紹Petri網(wǎng)模型理論對工作流引擎設(shè)計(jì),以供同行參考。

      關(guān)鍵詞:管理信息系統(tǒng);數(shù)據(jù)庫;工作流;Petri網(wǎng)

      中圖分類號:TP301.1

      1 Petri網(wǎng)模型工作流

      Petri網(wǎng)是一種系統(tǒng)的數(shù)學(xué)和圖形描述與分析工具,Petri網(wǎng)分析方法和技術(shù)可用于靜態(tài)的結(jié)構(gòu)分析,又可用于動態(tài)行為分析,特別適用于具有并發(fā)、異步、分布、并行、不確定性的信息處理系統(tǒng)。經(jīng)過幾十年的發(fā)展,Petri網(wǎng)理論得到了極大豐富,其應(yīng)用領(lǐng)域涉及計(jì)算科學(xué)的各個(gè)領(lǐng)域,如線路設(shè)計(jì)、網(wǎng)絡(luò)協(xié)議、軟件工程、人工智能、形式語言、操作系統(tǒng)、并行管理、數(shù)據(jù)管理等。

      Petri網(wǎng)理論對設(shè)計(jì)和模型化工作流過程提供了恰當(dāng)?shù)姆椒?。Petri網(wǎng)由庫所和變遷組成,用矩形表示變遷,圓圈表示庫所。變遷和庫所由有向弧相連接。從變遷到庫所,從庫所到變遷,相同兩個(gè)節(jié)點(diǎn)之間不允許相連接。

      Petri網(wǎng)包含的幾個(gè)基礎(chǔ)對象:

      (1)庫所(Places):用來表示系統(tǒng)狀態(tài),在Petri網(wǎng)中是被動因素,它們不能改變網(wǎng)的狀態(tài)。

      (2)變遷(Transitions):表示資源的消耗、使用及系統(tǒng)狀態(tài)產(chǎn)生的變化。通過變遷操作,實(shí)現(xiàn)過程從一個(gè)狀態(tài)到另一個(gè)狀態(tài)轉(zhuǎn)的變。

      (3)向弧(Arcs):庫所和變遷之間通過向弧連接。在Petri網(wǎng)圖示中以連接線表示。一個(gè)內(nèi)向向?。╥ nward arc)從一個(gè)庫所連到一個(gè)變遷,一個(gè)外向向?。╫utward arc)從一個(gè)變遷連接到一個(gè)庫所。

      (4)令牌(Tokens):令牌代表工作流過程當(dāng)前的狀態(tài)。這些對象遵循以下定義規(guī)則:庫所只擁有代表過程狀態(tài)的令牌,一個(gè)庫所可以用于0個(gè)或多個(gè)令牌。

      一個(gè)向弧連接一個(gè)庫所到變遷。如果存在一個(gè)P指向T的向弧,則庫所P稱為變遷T的輸入庫所。如果存在一個(gè)T指向P的向弧,則庫所P稱為變遷T的輸出庫所。

      當(dāng)一個(gè)變遷T被啟用激活后,它將令牌從它的輸入庫所轉(zhuǎn)移到它的輸出庫所。當(dāng)變遷發(fā)射時(shí),它會從它的每個(gè)輸入庫所里消耗一個(gè)令牌,同時(shí)在它的輸出庫所中產(chǎn)生一個(gè)令牌。

      每個(gè)工作流過程都有一個(gè)單一的開始庫所。它至少有一個(gè)指向變遷的內(nèi)向向弧,為了重啟流程,它也可以有一個(gè)來自變遷的外向向弧。

      每個(gè)工作流過程都有一個(gè)單一的結(jié)束庫所。它至少有一個(gè)來自變遷的內(nèi)向向弧,但它不能有任何指向變遷的內(nèi)向向弧。

      2 Petri網(wǎng)的觸發(fā)器

      Petri網(wǎng)中的變遷是處于激發(fā)狀態(tài)的,一經(jīng)觸發(fā),就會立刻執(zhí)行,每個(gè)就緒的變遷對應(yīng)一個(gè)工作項(xiàng),其主要包括三種類型的觸發(fā):用戶主導(dǎo)、外部消息事件、時(shí)間信號。

      (1)用戶主導(dǎo):工作任務(wù)實(shí)例由用戶進(jìn)行觸發(fā)。在工作流系統(tǒng)中一般都有用戶主導(dǎo)的工作任務(wù)實(shí)例。

      (2)外部消息事件:任務(wù)實(shí)例是由外部的事件(如消息)進(jìn)行觸發(fā)啟用。這類消息包括Email、短信消息等。

      (3)時(shí)間信號:啟用的任務(wù)由一個(gè)時(shí)鐘觸發(fā)。比如當(dāng)預(yù)定義的時(shí)間后,任務(wù)就被執(zhí)行。由于這類型的任務(wù)能被運(yùn)行在一個(gè)規(guī)劃的時(shí)間下的“后臺過程”觸發(fā),它不能與用戶有任何的對話。

      3 Petri網(wǎng)路由

      在一個(gè)工作流過程內(nèi),開始庫所與結(jié)束庫所之間的路由主要包括這幾種形式:順序路由、并行路由、條件路由、循環(huán)路由。

      (1)順序路由:一個(gè)步驟完成后,無條件地流向固定的下一步驟。在Petri網(wǎng)中,通過在兩個(gè)任務(wù)間添加一個(gè)庫所進(jìn)行鏈接。

      (2)并行路由:使用AND-SPLIT構(gòu)造塊和AND-JOIN構(gòu)造塊,一個(gè)步驟完成后,同時(shí)激活多個(gè)后繼步驟。添加的這個(gè)步驟需要分多個(gè)分支步驟來共同處理完成,只有任務(wù)都完成,變遷才能實(shí)施。

      (3)條件路由:一個(gè)步驟完成后,按一定的條件流向不同的下一步驟。使用的是OR-SPLIT構(gòu)造塊和OR-JION構(gòu)造塊。

      (5)循環(huán)路由:Petri網(wǎng)的循環(huán)路由根據(jù)C的執(zhí)行結(jié)果決定是否繼續(xù)往下執(zhí)行,若未通過,再次執(zhí)行B,若通過,增加一個(gè)變遷R來實(shí)現(xiàn)R和C之間有條件約束的條件路由關(guān)系。

      4 工作流引擎流程處理

      工作流引擎實(shí)現(xiàn)對用戶提交的工作項(xiàng)內(nèi)容的解釋,引擎除了完成基本的流程控制、數(shù)據(jù)傳遞外,還必須具有一定的靈活性,具體表現(xiàn)為:

      (1)動態(tài)選擇:上一個(gè)活動的執(zhí)行者可以對下一個(gè)活動的執(zhí)行者進(jìn)行具體的指定,指定的用戶范圍可以參加該流程的所有用戶,或者從限定的用戶范圍內(nèi)進(jìn)行選擇。

      (2)跳轉(zhuǎn):一個(gè)活動執(zhí)行完畢后能動態(tài)的跳到一個(gè)指定的后續(xù)活動,繼續(xù)整個(gè)流程的執(zhí)行。

      (3)多實(shí)例:支持一個(gè)活動到的多實(shí)例的split-join。

      (4)能進(jìn)行消息通知:當(dāng)一個(gè)用戶完成他的工作后,可以通過即時(shí)消息功能將這個(gè)消息信息通知下一步工作的執(zhí)行者。

      (5)委托:可以對活動的執(zhí)行者進(jìn)行逐過程、逐人的委托,也可以在得到一個(gè)任務(wù)時(shí)臨時(shí)指定另一個(gè)角色或人來執(zhí)行該任務(wù)。

      工作流引擎的處理過程,具體處理過程包括流程的啟動,查找當(dāng)前節(jié)點(diǎn)和下一節(jié)點(diǎn)的聯(lián)系條件,如果存在這一條件,則實(shí)例化該節(jié)點(diǎn),對該節(jié)點(diǎn)任務(wù)進(jìn)行處理,該節(jié)點(diǎn)處理完后,獲取下一節(jié)點(diǎn),以此循環(huán)至結(jié)束。

      5 工作流引擎數(shù)據(jù)庫設(shè)計(jì)

      工作流管理系統(tǒng)的運(yùn)行需要數(shù)據(jù)庫的支持。結(jié)合上文提出的Petri網(wǎng)理論以及工作流引擎的處理過程,設(shè)計(jì)了該系統(tǒng)工作流引擎的數(shù)據(jù)庫,主要涉及到六張數(shù)據(jù)表,這些表是為定義工作流過程而設(shè)計(jì)的,通過邏輯設(shè)計(jì),可以驅(qū)動業(yè)務(wù)流程的流轉(zhuǎn)運(yùn)行,對于流程處理的通用描述如下:

      (1)流程第一步,打開某一流程已綁定好的一個(gè)URL鏈接地址。

      (2)流程第二步,工作流處理程序,通過權(quán)限判斷,從p_wf_case表中找到該流程,創(chuàng)建該流程的實(shí)例。

      (3)第三步,工作流引擎通過流程的pwf_id從p_wf_place表和p_wf_workitem表中取得流程的第一個(gè)節(jié)點(diǎn)信息。

      (4)第四步,根據(jù)流程的結(jié)點(diǎn)創(chuàng)建一個(gè)任務(wù)實(shí)例。

      (5)第五步,將結(jié)點(diǎn)任務(wù)分配給綁定好的執(zhí)行者完成。當(dāng)任務(wù)完成后,將信息反饋給工作流引擎服務(wù)器。未完成時(shí),會給出相應(yīng)的提示信息。

      (6)第六步,工作流引擎找出下一個(gè)流程的結(jié)點(diǎn)。如果沒有,則整個(gè)流程結(jié)束。

      該系統(tǒng)檢測用戶是否有發(fā)起流程的權(quán)限,若存在該權(quán)限,則創(chuàng)建該流程實(shí)例,并在節(jié)點(diǎn)和關(guān)系表中找到任務(wù)節(jié)點(diǎn),若存在該任務(wù)節(jié)點(diǎn),繼續(xù)創(chuàng)建該節(jié)點(diǎn)的實(shí)例,執(zhí)行該節(jié)點(diǎn)的相關(guān)任務(wù),當(dāng)該節(jié)點(diǎn)任務(wù)執(zhí)行完成后,繼續(xù)查找下一節(jié)點(diǎn),以此循環(huán)至流程處理結(jié)束。根據(jù)以上介紹的工作流業(yè)務(wù)流轉(zhuǎn)過程以及設(shè)計(jì)的數(shù)據(jù)庫表。

      6 結(jié)束語

      本文主要描述了工作流引擎的設(shè)計(jì)。論文首先從Petri網(wǎng)模型工作流、觸發(fā)器、路由組成上對工作流引擎設(shè)計(jì)進(jìn)行了相關(guān)的理論描述,在此基礎(chǔ)上,對工作流引擎的流程處理過程,結(jié)合Petri網(wǎng)理論設(shè)計(jì)了工作流引擎的數(shù)據(jù)庫表。

      參考文獻(xiàn):

      [1]Tony Marston.基于活動的PHP工作流引擎[M].CGFinal Developer Zone,2008.

      [2]趙宗敏.基于WFMC規(guī)范的軟件過程工作流引擎設(shè)計(jì)與實(shí)現(xiàn)[D].上海師范大學(xué),2010.

      [3]錢春曉.基于Petri網(wǎng)的工作流引擎設(shè)計(jì)與實(shí)現(xiàn)[D].重慶大學(xué),2006.

      作者簡介:查文剛(1983.09-),男,江西星子人,助理工程師,碩士,研究方向:計(jì)算機(jī)科學(xué)技術(shù)。

      作者單位:華東交通大學(xué),南昌 330013

      鄂伦春自治旗| 手机| 礼泉县| 泰和县| 瓦房店市| 新余市| 大洼县| 临海市| 桃江县| 天门市| 石阡县| 城市| 双城市| 京山县| 武夷山市| 阿坝县| 高清| 胶南市| 巴南区| 石棉县| 加查县| 高安市| 南乐县| 兴仁县| 涪陵区| 塘沽区| 东光县| 资溪县| 定兴县| 汤原县| 静安区| 印江| 郎溪县| 苏尼特右旗| 安阳市| 嘉义市| 青铜峡市| 融水| 汝州市| 彝良县| 鲁山县|