亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的工作流管理系統(tǒng)的設(shè)計與應(yīng)用

        2018-07-05 02:42:26顧進廣田萍芳武漢科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院湖北武漢430065湖北省智能信息處理與實時工業(yè)系統(tǒng)重點實驗室湖北武漢430065
        計算機應(yīng)用與軟件 2018年6期
        關(guān)鍵詞:定義活動模型

        李 洋 鄧 莉 顧進廣 田萍芳(武漢科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 湖北 武漢 430065)(湖北省智能信息處理與實時工業(yè)系統(tǒng)重點實驗室 湖北 武漢 430065)

        0 引 言

        在激烈的商業(yè)競爭環(huán)境下,信息技術(shù)在企業(yè)內(nèi)部得到了廣泛應(yīng)用,傳統(tǒng)的獨立、零散的辦公方式已經(jīng)不能滿足企業(yè)的戰(zhàn)略發(fā)展要求[1]。以簡單的紙質(zhì)存檔方式來進行業(yè)務(wù)流程的處理人員成本高、實施周期長,不利于流程的追蹤和統(tǒng)計分析[2]。隨著企業(yè)大多數(shù)業(yè)務(wù)流程的分工越來越具體,流程可能需要不同部門和不同職位的人共同協(xié)作完成[3]。將業(yè)務(wù)流程分解成定義良好的活動,有效地控制和協(xié)調(diào)不同活動的執(zhí)行過程并實現(xiàn)人與應(yīng)用軟件的友好交互,可以極大程度上提高業(yè)務(wù)流程的處理效率[4-5]。

        工作流正是為了解決多人之間的協(xié)作問題而出現(xiàn)的一種技術(shù),為不同應(yīng)用間的集成、協(xié)同工作提供基礎(chǔ)。文獻[6]指出傳統(tǒng)工作流對異構(gòu)環(huán)境的支持性差,同時無法對業(yè)務(wù)流程進行動態(tài)建模。文獻[7]定義了不同活動的約束條件,在過程控制中對約束條件進行修改,但此方法對用戶依賴較高。

        基于此,本文開發(fā)了一款工作流管理系統(tǒng)PWFMS(Python-Based Workflow Management System),采用Python語言,用空白縮進作為劃分程序段的標(biāo)準(zhǔn),代碼簡潔、可讀性強、易于后期維護。核心的引擎系統(tǒng)在開源Web框架Django下開發(fā),Django完善的緩存機制使得當(dāng)有相同的鏈接請求時可以提高訪問的響應(yīng)速度。利用ORM(Object/Relation Mapping)對象/關(guān)系映射機制定義業(yè)務(wù)流程中各種模型,通過對業(yè)務(wù)流程模型化,將不同的人、不同的活動組織起來,控制活動的執(zhí)行過程,使原來人工處理的流程實現(xiàn)自動化,完成跨人員、跨部門和跨應(yīng)用的協(xié)作。

        1 PWFMS

        傳統(tǒng)工作流模型在一定程度上解決了企業(yè)辦公自動化的難題,但是仍然存在一定的局限性。早期工作流模型是通過“硬編碼”的方式來表示,導(dǎo)致對流程修改的難度增大。一些工作流模型不具備動態(tài)建模能力,不能根據(jù)業(yè)務(wù)流程的實際運行狀態(tài),動態(tài)選擇需要調(diào)用的應(yīng)用程序(Web Service)。PWFMS將過程定義與過程執(zhí)行分離,能幫助企業(yè)根據(jù)實際需求采用可視化方式快速構(gòu)建業(yè)務(wù)流程。流程構(gòu)建時,很可能由于誤操作而出現(xiàn)臟定義,引擎系統(tǒng)可以在生成定義生成時進行邏輯上的預(yù)檢測,保證每一個生成定義的正確性。流程實例中每一個活動節(jié)點執(zhí)行完之后,都會給接下來需要執(zhí)行的活動節(jié)點的審批人進行顯式推送,對表單修改后顯示最新的表單數(shù)據(jù),同時會保存之前的表單歷史記錄。流程實例實際運行過程中,除了與本系統(tǒng)進行交互,還可以調(diào)用Web Service與外部系統(tǒng)進行交互,根據(jù)流程實際的運行狀態(tài)進行條件判斷,對于所有的流程實例,可以按照與實例相關(guān)的條件進行狀態(tài)追蹤,同時還可以進行分類與統(tǒng)計。

        目前很多工作流引擎的數(shù)據(jù)都是存儲在關(guān)系型數(shù)據(jù)庫[8],但是在大數(shù)據(jù)背景下,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫如mysql在高并發(fā)讀寫、高效率存儲等方面略有不足,在頻繁的數(shù)據(jù)讀寫操作過程中,為保證引擎系統(tǒng)的穩(wěn)定,采用了并發(fā)性高、靈活性強、支持海量數(shù)據(jù)存儲的NoSQL存儲系統(tǒng)MongoDB。同時MongoEngine對MongoDB進行操作,支持豐富的數(shù)據(jù)表達,面向文檔的數(shù)據(jù)存儲不需要對多表進行關(guān)聯(lián)查詢。Json是一種輕量級的獨立語言的文本數(shù)據(jù)交換格式,基于JavaScript編程語言的一個子集,具備良好的讀寫性能,在數(shù)據(jù)傳輸效率方面明顯優(yōu)于其他數(shù)據(jù)傳輸格式[9-10]。而且MongoDB數(shù)據(jù)庫以BSON格式存儲,而BSON是一種類JSON二進制形式的存儲格式,兩者之間轉(zhuǎn)換較為容易,所以引擎系統(tǒng)采用Json作為數(shù)據(jù)傳輸格式。

        PWFMS首先在生成平臺進行表單的定制,然后在可視化操作界面將業(yè)務(wù)流程模型化,把流程轉(zhuǎn)換為引擎系統(tǒng)所能識別的生成定義,并存儲在MongoDB數(shù)據(jù)庫。在系統(tǒng)的運行階段,從MongoDB數(shù)據(jù)庫讀取流程的生成定義來生成流程實例,相關(guān)實例可以被軟件應(yīng)用解釋并且在前端界面友好顯示。在人與系統(tǒng)交互階段,引擎系統(tǒng)根據(jù)流程實例所處的實際狀態(tài)對活動進行過程控制。PWFMS系統(tǒng)架構(gòu)如圖1所示。

        圖1 PWFMS系統(tǒng)架構(gòu)

        將引擎系統(tǒng)能夠理解的邏輯模型以生成定義的方式存儲在MongoDB數(shù)據(jù)庫,運行階段的相關(guān)活動的過程控制由引擎系統(tǒng)讀取生成定義后根據(jù)實例當(dāng)前的狀態(tài)來執(zhí)行,一個生成定義可以生成多個業(yè)務(wù)流程實例,通過這種方式可以解決工作流管理系統(tǒng)對生成定義的復(fù)用困難。

        2 模型建立

        2.1 過程定義

        過程定義是PWFMS所能識別的業(yè)務(wù)流程的形式化描述,用來支持流程運行過程的自動化[11],主要包括業(yè)務(wù)流程流轉(zhuǎn)過程中所涉及到的各種數(shù)據(jù)、各個工作環(huán)節(jié)(活動)之間的控制關(guān)系和與外部系統(tǒng)的交互。PWFMS的過程定義模型述如表1所示。

        表1 過程定義模型

        form_def_id是與生成定義相關(guān)聯(lián)的表單定義id,生成定義實例化時根據(jù)表單定義生成表單實例。status標(biāo)記單個生成定義的狀態(tài),包括草稿、啟用、停用和邏輯刪除,如果一個生成定義已經(jīng)實例化,那么該生成定義的狀態(tài)變?yōu)椤眴⒂谩薄ode_map中的每一項為過程定義實例化后具體需要實際執(zhí)行的活動節(jié)點,即業(yè)務(wù)流程的具體任務(wù)。

        2.2 生成平臺

        生成平臺的主要功能是進行表單定制和生成定義定制。根據(jù)實際業(yè)務(wù)流程的需求,用表單定制工具,定制出與業(yè)務(wù)流程相符合的業(yè)務(wù)表單樣式,使用表單管理系統(tǒng)可以對生成的表單定義進行管理。在不編寫代碼的情況下,通過可視化配置就可以高效完成業(yè)務(wù)流程的建模,建模完成后的生成定義存儲在MongoDB數(shù)據(jù)庫。使用工作流后臺管理系統(tǒng)可以對業(yè)務(wù)流程的生成定義進行編輯和刪除。

        傳統(tǒng)工作流模型根據(jù)活動節(jié)點審批和與外部系統(tǒng)交互的方式不同,常分為不同類型的活動節(jié)點,這樣會導(dǎo)致定制流程時出現(xiàn)各種類型的活動節(jié)點,較為復(fù)雜。生成平臺將基本操作、條件判斷和功能配置等三個屬性進行集成,將不同類型的活動節(jié)點的配置轉(zhuǎn)換為對單個節(jié)點的屬性配置。生成平臺的活動節(jié)點屬性如圖2所示。

        圖2 活動節(jié)點屬性

        基本操作中確定審批人的方式有申請者審批、指定人員審批、流程流轉(zhuǎn)時動態(tài)輸入審批人、全院職位匹配、部門職位匹配、負責(zé)人審批和分管領(lǐng)導(dǎo)審批;活動節(jié)點的通過條件有單個通過、全部通過和自動通過;拒接操作有回退到發(fā)起、回退到上一層、回退到指定活動節(jié)點和終止流程。

        流程流轉(zhuǎn)過程中可以根據(jù)實際流程的相關(guān)狀態(tài)進行條件判斷,進而動態(tài)確定下一步審批的活動節(jié)點。條件判斷的值可以來自流程所綁定的表單,活動執(zhí)行者自身的相關(guān)屬性、數(shù)據(jù)庫的實時查詢和外部Web Service的調(diào)用。

        為增強流程與外部系統(tǒng)的交互,設(shè)置活動節(jié)點的相關(guān)功能操作,當(dāng)活動節(jié)點審批通過時,可以自動執(zhí)行預(yù)先定義的功能,比如發(fā)布通知、發(fā)起任務(wù)和會議。

        2.3 引擎系統(tǒng)

        引擎系統(tǒng)是PWFMS的核心,負責(zé)工作流的實例化,管理和控制活動的運行?;顒邮羌毣臉I(yè)務(wù)流程中具體的一項任務(wù),主要反映業(yè)務(wù)流程需要執(zhí)行哪些功能。過程控制是對不同活動執(zhí)行順序的管理,一般與當(dāng)前業(yè)務(wù)流程的實際運行狀態(tài)相關(guān)[12]。引擎系統(tǒng)的過程控制方式有兩種:會簽?zāi)J胶头种J健?/p>

        會簽?zāi)J绞敲枋霾煌顒訁R合的具體方式,包括與會簽(AND JOIN)、或會簽(OR JOIN)和選擇會簽(CHOOSE JOIN)。如圖3所示,當(dāng)為與會簽(AND JOIN)模式時,當(dāng)且僅當(dāng)活動T1,T2,…,Tn都執(zhí)行之后,流程才可以流轉(zhuǎn)到下一個需要執(zhí)行的活動Tn+1;當(dāng)為或會簽(OR JOIN)模式時,活動T1,T2,…,Tn中有一個執(zhí)行之后,流程就可以流轉(zhuǎn)到下一個需要執(zhí)行的活動Tn+1;當(dāng)為選擇會簽(CHOOSE JOIN)模式時,當(dāng)T1,T2,…,Tn中特定的活動執(zhí)行后,流程才可以流轉(zhuǎn)到下一個需要執(zhí)行的活動Tn+1。

        圖3 會簽?zāi)J?/p>

        分支模式與會簽?zāi)J较鄬?yīng),包括與分支(AND SPLIT)、或分支(OR SPLIT)和選擇分支(CHOOSE SPLIT),如圖4所示,當(dāng)為與分支(AND SPLIT)模式時,活動T1執(zhí)行后,后續(xù)活動T2,…,Tn都需要執(zhí)行;當(dāng)為或分支(OR SPLIT)模式時,活動T1執(zhí)行后,由業(yè)務(wù)流程的實際運行狀態(tài)判斷后續(xù)需要執(zhí)行的活動具體是T2,…,Tn中的哪一個,即根據(jù)活動T1進行實時動態(tài)的流轉(zhuǎn);當(dāng)為選擇分支(CHOOSE SPLIT)模式時,活動T1執(zhí)行后,由業(yè)務(wù)流程的實際運行狀態(tài)判斷后續(xù)需要執(zhí)行的活動具體是T2,…,Tn中的哪一個或幾個。

        圖4 分支模式

        工作流引擎接收到一個過程定義后,根據(jù)相關(guān)的配置信息,對生成定義進行實例化,然后引擎系統(tǒng)根據(jù)業(yè)務(wù)流程運行所處的實際狀態(tài),自動完成每一個環(huán)節(jié)的活動,控制過程并監(jiān)控整個流程的狀態(tài)信息,每一次的過程控制都會生成一個操作記錄(Operation),可以用于后期的流程追蹤與統(tǒng)計分析。此外流程管理員也可以對正在執(zhí)行的流程進行控制和監(jiān)督,在實際情況下進行轉(zhuǎn)單或催辦,同時也可以將流程掛起或激活。操作記錄模型如表2所示。其中Operation字段用來標(biāo)明當(dāng)前操作的類型,比如回退、同意、轉(zhuǎn)單。

        表2 操作記錄模型

        引擎系統(tǒng)的實例模型如表3。form_ins_id是生成定義實例化時根據(jù)表單定義所生成的表單實例。status標(biāo)記業(yè)務(wù)流程的狀態(tài),包括創(chuàng)建、草稿、提交、完成和終止。node_status_map標(biāo)記實際的業(yè)務(wù)流程中所有活動的相關(guān)狀態(tài),單個活動進行回退、同意、轉(zhuǎn)單后,node_status_map中活動的狀態(tài)也會相應(yīng)改變,同時會往operation_list中插入一條與活動對應(yīng)的記錄,用于標(biāo)明活動進行何種操作,然后todo_list會動態(tài)更新,指定流程所有需要執(zhí)行的下一次活動。

        表3 實例模型

        續(xù)表3

        3 PWFMS實際應(yīng)用

        PWFMS以武漢市某醫(yī)院的實際業(yè)務(wù)流程需求為原型進行開發(fā),現(xiàn)以該醫(yī)院的院辦議題、處方統(tǒng)計和財務(wù)報銷流程為例子,詳細闡明PWFMS在實際流程中的應(yīng)用。

        3.1 院辦議題

        順序流程的審批方式可以適用于任何垂直拓展的流程,即沒有水平方向的拓展(無分支)。院辦議題是順序流程的一個實例,通過對業(yè)務(wù)流程的分析,院辦議題模型化后如圖5所示。該模型為一個垂直方向的審批流程,各個節(jié)點相當(dāng)于業(yè)務(wù)流程的一個活動,開始節(jié)點標(biāo)明業(yè)務(wù)流程的開始,不做任何配置,填寫表單節(jié)點用于流程申請者填寫表單,生成表單實例后提交流程。部門主任和分管領(lǐng)導(dǎo)節(jié)點只進行了活動的基本操作的配置。結(jié)束節(jié)點進行活動的功能配置,調(diào)用外部Web Service用于發(fā)起一個任務(wù)。

        圖5 院辦議題

        申請人填寫表單后,會自動扭轉(zhuǎn)到部門主任進行審批,此時部門主任的審批方式可以是同意、回退或者轉(zhuǎn)單。如果為回退,有三種方式,分別為回退到上一步、回退到起點、和終止流程,活動的審批者為申請人時,申請人還有權(quán)利撤銷該條流程。如果為轉(zhuǎn)單,此時部門主任審批的權(quán)利可以移交給指定的人或者特定角色。如果審批人同意,則流程扭轉(zhuǎn)到分管領(lǐng)導(dǎo)審批,審批方式和部門主任審批方式相同。當(dāng)流程流轉(zhuǎn)到結(jié)束節(jié)點時,整條流程結(jié)束。根據(jù)結(jié)束節(jié)點預(yù)先的功能配置,調(diào)用Web Service,給院辦主任發(fā)起一條任務(wù),然后院辦主任在召開院辦會議時可以選擇已經(jīng)通過的院辦議題,并看到該議題的整個審批過程和相關(guān)的表單數(shù)據(jù)。

        3.2 處方統(tǒng)計

        分支流程的審批方式適用于任何水平拓展的流程,即水平方向有拓展(多分支)。處方統(tǒng)計是分支流程的一個實例,處方統(tǒng)計模型化如圖6所示。該模型是一個帶有分支的審批流程,各個活動節(jié)點進行了基本操作的配置。其中填寫表單節(jié)點為與分支(AND SPLIT)模式,會簽節(jié)點為與會簽(AND JOIN)模式。

        圖6 處方統(tǒng)計

        申請人填寫表單后,流程會自動扭轉(zhuǎn)到水平方向的所有分支節(jié)點,節(jié)點活動信息科審核、醫(yī)務(wù)處審核和領(lǐng)導(dǎo)審核被激活,單個節(jié)點的審批與順序流程中節(jié)點的審批方式相同。這里會簽節(jié)點的會簽方式屬于與會簽,只有信息科、醫(yī)務(wù)處和領(lǐng)導(dǎo)全部審批通過之后,流程才可以扭轉(zhuǎn)到下一個節(jié)點。

        3.3 財務(wù)報銷

        根據(jù)實際業(yè)務(wù)流程對財務(wù)報銷進行模型化,見圖7。

        圖7 財務(wù)報銷

        填寫表單活動節(jié)點進行基本操作配置和條件判斷配置,條件判斷時調(diào)用外部Web Service獲取當(dāng)前操作人已報銷的金額,再加上當(dāng)前表單填寫的報銷金額,與預(yù)設(shè)值進行比較,動態(tài)決定下一步需要執(zhí)行的活動。領(lǐng)導(dǎo)意見節(jié)點為或會簽(OR JOIN)模式。結(jié)束活動節(jié)點進行功能配置,給財務(wù)處負責(zé)人發(fā)送一個通知,負責(zé)人決定是否對外公布該條流程。

        4 結(jié) 語

        隨著企業(yè)的發(fā)展,其業(yè)務(wù)過程日趨復(fù)雜,傳統(tǒng)的業(yè)務(wù)流程處理方式無法滿足企業(yè)的戰(zhàn)略發(fā)展要求。本文基于Python開發(fā)了一款工作流管理系統(tǒng),將具體的業(yè)務(wù)邏輯模型化后,生成流程定義,然后根據(jù)定制的流程定義生成業(yè)務(wù)流程實例,為日常的一些辦公流程實現(xiàn)全自動化處理。在設(shè)計上考慮了服務(wù)的獨立性以及與外部系統(tǒng)的交互,后續(xù)將以微服務(wù)的方式構(gòu)建和完善工作流管理系統(tǒng)。

        [1] 陳保華,詹舒波.工作流業(yè)務(wù)生成系統(tǒng)的設(shè)計與實現(xiàn)[J].軟件,2016,37(11):105- 109.

        [2] 黃健.CI中國BPM系統(tǒng)的設(shè)計和實現(xiàn)[D].上海交通大學(xué),2012.

        [3] 張成姝.基于工作流的BPM系統(tǒng)研究[J].上海應(yīng)用技術(shù)學(xué)院學(xué)報:自然科學(xué)版,2010,10(4):295- 297.

        [4] 陳儒,肖剛,張元鳴,等.基于事務(wù)規(guī)則的面向服務(wù)工作流模型研究[J].計算機應(yīng)用與軟件,2014,31(6):5- 8,41.

        [5] 楊浩雄,劉仲英.虛擬配送中心跨組織工作流協(xié)同研究[J].計算機應(yīng)用與軟件,2008,25(8):95- 96,140.

        [6] 管紅杰,王珂,江海峰,等.SOA架構(gòu)的工作流管理系統(tǒng)的研究與應(yīng)用[J].計算機工程與設(shè)計,2011,32(5):1654- 1657.

        [7] Aalst W M P V D,Pesic M, Schonenberg H.Declarative workflows:Balancing between flexibility and support[J].Computer Science—Research and Development,2009,23(2):99- 113.

        [8] 劉曄.基于Web的基本科研業(yè)務(wù)費管理系統(tǒng)的設(shè)計與實現(xiàn)[D].大連理工大學(xué),2016.

        [9] Wang G.Improving Data Transmission in Web Applications via the Translation between XML and JSON[C]// Third International Conference on Communications and Mobile Computing.IEEE,2011:182- 185.

        [10] 高靜,段會川.JSON數(shù)據(jù)傳輸效率研究[J].計算機工程與設(shè)計,2011,32(7):2267- 2270.

        [11] 魏磊.基于構(gòu)件技術(shù)的通用工作流引擎設(shè)計[D].河北大學(xué),2010.

        [12] 梁筱冰.電信業(yè)務(wù)流程擬制探討[J].廣東通信技術(shù),2010,30(8):12- 16.

        猜你喜歡
        定義活動模型
        一半模型
        “六小”活動
        少先隊活動(2022年5期)2022-06-06 03:45:04
        “活動隨手拍”
        行動不便者,也要多活動
        中老年保健(2021年2期)2021-08-22 07:31:10
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        三八節(jié),省婦聯(lián)推出十大系列活動
        海峽姐妹(2018年3期)2018-05-09 08:20:40
        3D打印中的模型分割與打包
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        修辭學(xué)的重大定義
        午夜无码无遮挡在线视频| 亚洲av无码专区亚洲av伊甸园| 亚洲男人综合久久综合天堂| 国产一区二区三区在线观看完整版| 亚洲va国产va天堂va久久| 中国年轻丰满女人毛茸茸| 亚洲国产一区二区三区在观看 | 国产激情视频在线观看你懂的| 中文字幕久久久人妻人区| 久久久久亚洲av成人无码| av香港经典三级级 在线| 国产第19页精品| 精品人妻中文av一区二区三区 | 日韩在线手机专区av| 一区二区三区四区中文字幕av| 成在线人免费视频| 中国一级毛片在线观看| 毛片无码高潮喷白浆视频| 精品久久久久久99人妻| 日韩精品中文字幕第二页| 久久亚洲精品成人av无码网站| 免费国产黄网站在线观看| 国产一级在线现免费观看| 少妇久久一区二区三区| 少妇高潮av久久久久久| 中文字幕人妻丝袜美腿乱| 国产最新地址| 国产极品嫩模大尺度在线播放| 97精品人妻一区二区三区蜜桃| 亚洲av永久无码精品一区二区 | 国产高清精品在线二区| 国产自拍偷拍精品视频在线观看| 国产在线精品一区二区三区| 国产极品久久久久极品| 亚洲乱精品中文字字幕| 日本不卡的一区二区三区中文字幕| 中文字幕av免费专区| 亚洲国产A∨无码影院| 亚洲熟妇av一区二区三区hd| 国产精久久一区二区三区 | 日本高清一区二区不卡视频|