梁科山, 唐 力, 曹玉君, 程 晨
(國防科技大學機電工程與自動化學院,湖南 長沙 410073)
信息技術(shù)的快速發(fā)展和制造的全球化,使得企業(yè)的產(chǎn)品開發(fā)方式發(fā)生了巨大的變化,復雜的產(chǎn)品設(shè)計任務(wù)往往由多個企業(yè)協(xié)作完成[1]。如何使企業(yè)間的信息、資源進行有序的工作,以充分提高工作效率,即協(xié)調(diào)跨企業(yè)的業(yè)務(wù)過程,是當前企業(yè)急需解決的一個問題。
目前,多數(shù)企業(yè)都引入了PDM系統(tǒng),用其自帶的工作流管理模塊可實現(xiàn)企業(yè)的業(yè)務(wù)流程導航與監(jiān)控。但這類工作流系統(tǒng)僅適于單個企業(yè)內(nèi)部的業(yè)務(wù)過程的管理,對于針對上述的跨企業(yè)業(yè)務(wù)過程,還難以解決以下兩個問題:1)產(chǎn)品開發(fā)總體企業(yè)無法對協(xié)作方的工作即進行有效監(jiān)控;2)無法判斷局部工作流的部分或輕微改變對于整個業(yè)務(wù)過程的影響范圍,往往使得多個單位的工作需要重復。
由此看來,開展跨企業(yè)的工作流變更問題研究還是尤為必要。而目前針對工作流變更的研究都主要是在理論層面上的,而對于已有商業(yè)工作流系統(tǒng),都不能直接利用這些方法有效處理[2-6]。
Qiu討論了在PDM系統(tǒng)中處理動態(tài)工作流的變更問題,提出了對于Bypassable節(jié)點的處理辦法,并在IBM公司的PDM產(chǎn)品SmarTeam中得到了初步應(yīng)用,具有一定的實用性,但是其未討論對于跨企業(yè)工作流變更的處理問題[7]。
因此,本文中提出了一種基于虛擬PDM的跨企業(yè)工作流管理系統(tǒng),建立了基于有向圖描述的跨企業(yè)工作流模型,支持基于商用PDM工作流管理系統(tǒng)與基于虛擬PDM的工作流管理系統(tǒng)之間業(yè)務(wù)流程的交互與管理,還可減少由于業(yè)務(wù)流程變更引起的重復工作問題。
圖1 基于虛擬PDM的跨企業(yè)工作流工作過程
虛擬PDM是一類構(gòu)建于通用PDM之上的PDM系統(tǒng),其詳細描述可見文獻[8]。基于虛擬PDM的跨企業(yè)工作流管理系統(tǒng),是集成了各協(xié)作方獨立PDM的工作流管理系統(tǒng)建立起來的。其有兩個層次,一個層次是運行于虛擬PDM中的工作流管理系統(tǒng)的總流程系統(tǒng),另一個層次是由各PDM中工作流管理系統(tǒng)的分工作流系統(tǒng)或者子流程系統(tǒng):
1) 虛擬PDM上建立的跨企業(yè)工作流程模型,主要由活動子過程與連接組成;
2) 各企業(yè)在其PDM中建立各自的工作流,完成總工作流中活動子過程定義的任務(wù);
3) 跨企業(yè)工作流程中僅包含了開始、結(jié)束、空活動、活動子流程4類節(jié)點,這4類節(jié)點是不執(zhí)行任何具有實際工作意義的活動,完成具體任務(wù)的工作流活動存在于各PDM中流程中;
4) 虛擬PDM中不保存各分工作流程描述數(shù)據(jù),數(shù)據(jù)均是來自各PDM系統(tǒng)。
基于虛擬PDM的工作流處理跨企業(yè)的業(yè)務(wù)流程如圖1所示。
1) 模型定義過程 在虛擬PDM中建立跨企業(yè)的總工作流模板,然后將活動子過程描述的任務(wù)發(fā)送到各PDM中,各PDM將依據(jù)該任務(wù),在其PDM中建立或選擇(已經(jīng)建立過)工作流程模板,并向虛擬PDM發(fā)送狀態(tài)回報,直到虛擬PDM獲取所有PDM都已完成分流程模板的建立工作;
2) 實例化過程 在所有工作流模板都建立好之后(包括總流程模板和各分流程模板),總流程模板首先完成自身的實例化工作,然后再向各企業(yè)的PDM發(fā)送要求實例化的消息,通知依據(jù)建好的各分流程模板將各自實例化。各分流程實例化完成后,向虛擬PDM發(fā)送狀態(tài)回報,直到虛擬PDM獲知所有的PDM都已經(jīng)完成分流程的實例化工作;
3) 執(zhí)行過程 總流程首先啟動開始執(zhí)行,在執(zhí)行到各活動子過程時,就會向?qū)?yīng)的PDM發(fā)送消息,該消息中包含了要求啟動信息和相關(guān)的數(shù)據(jù)。分工作流的則在其PDM中執(zhí)行,完畢后,向虛擬PDM發(fā)送執(zhí)行完畢的消息和相關(guān)的輸出數(shù)據(jù)。虛擬PDM收到后,將總工作流中對應(yīng)的活動子節(jié)點置為“Finished”,并查詢后繼活動子過程,將接收到的數(shù)據(jù)與啟動信號封裝,向后繼節(jié)點發(fā)送,重復該過程,直到活動子過程都完成,總流程執(zhí)行完畢。
為了在虛擬PDM中描述跨企業(yè)工作流系統(tǒng),還需要對其建模。考慮到實際的工程應(yīng)用中廣泛采用了有向圖建模,尤其是本研究中的各類實際應(yīng)用的PDM系統(tǒng)。故本文中也采用了有向圖并加以擴展的方式對跨企業(yè)的工作流進行建模[8]。
由于業(yè)務(wù)流程定義時缺乏知識或規(guī)范,導致后期工作流在執(zhí)行過程中發(fā)生了異常時,必須對正在執(zhí)行的工作流進行變更,以處理這些意外問題。
對于發(fā)生了變更的流程,其處理不是簡單的停止舊工作流、啟動新工作流,重要是如何對于在原有工作流中已完成而在新工作流中能繼承的工作認定問題。因為重復工作會導致時間、費用的大幅度增加,造成產(chǎn)品設(shè)計周期的拉長,這對于跨企業(yè)的協(xié)同工作過程顯得意義更為重要。
如圖2所示,原有流程圖2(a)中活動A0,A1,A2,A3,A4已經(jīng)完成,活動A5處于正在執(zhí)行狀態(tài),活動A6則尚未啟動。當在A2與A3之間加入一個新活動A7,此時形成的新流程如圖2(b)所示。對于新工作流中,正確的處理方式應(yīng)為如圖2(c)所示,重新執(zhí)行的活動應(yīng)從A2開始,而不是從A0開始執(zhí)行。
圖2 新工作流的工作繼承
類似于圖中A0、A1不需要在新流程中重新執(zhí)行的工作流活動,稱之為可略活動。
按照工作流變更發(fā)生源,可將跨企業(yè)工作流變更類型分為自下而上型的工作流變更和自上而下型的工作流變更。
1)自下而上的工作流變更
所謂自下而上型的工作流變更,是指工作流變更的發(fā)生源是下層各企業(yè)的分工作流發(fā)生了變更。這種變更表現(xiàn)在上層的虛擬PDM上,主要是某個活動子過程的輸出數(shù)據(jù)發(fā)生了變化,引起了總工作流的變更。這時,總工作流只需按原有模板重新生成一個新的總工作流程實例,并判斷可略活動,從相關(guān)節(jié)點開始執(zhí)行。其處理過程為:
Step 1 某企業(yè)向虛擬PDM發(fā)送變更申請,并提交變更后的輸出數(shù)據(jù);
Step 2 虛擬PDM接收了企業(yè)提交的變更申請及數(shù)據(jù),與原來的數(shù)據(jù)比較:如果無變化,忽略;如果數(shù)據(jù)發(fā)生了變化,執(zhí)行下一步;
Step 3 如果判斷活動子節(jié)點的輸出數(shù)據(jù)發(fā)生了變化,虛擬PDM首先復制一套當前正在執(zhí)行的工作流(包括各活動子過程的狀態(tài)、任務(wù)、輸入和輸出數(shù)據(jù)等),并以接收到的數(shù)據(jù)替換;
Step 4 虛擬PDM在新的總工作流程中搜索可略活動,并標記為“Neglectable”;將已執(zhí)行完畢,但又不是可略活動的,標記為“Enforced”
Step 5 虛擬PDM將未標記為“Enforced”的活動子節(jié)點和狀態(tài)為“Running”的活動子節(jié)點狀態(tài)復位為“Unreached”,并向其發(fā)送“重新開始”的消息;
Step 6 接收到“重新開始”消息的各企業(yè)PDM重新處理各自過程。
2) 自上而下的工作流變更
所謂自上而下型的工作流變更,是指工作流變更的發(fā)生源是虛擬PDM對于總工作流程發(fā)生變更引起的。自上而下的變更是工作流結(jié)構(gòu)性變更,總工作流需要重新生成工作流模板并實例化新的工作流程來。
其處理過程為:
Step 1 虛擬PDM查詢總工作流中狀態(tài)為“Running”的活動子節(jié)點,向其發(fā)送暫停執(zhí)行的消息;
Step 2 虛擬PDM復制舊的工作流模板,修改生成新的總工作流模板;
Step 3 初始化新工作流模板生成一個新的工作流實例來,并將原總工作流實例中已完成活動子過程數(shù)據(jù)付給新工作流實例;
Step 4 虛擬PDM在新的總工作流程中搜索可略活動,并標記為“Neglectable”;將已執(zhí)行完畢,但又不是可略活動的,標記為“Enforced”;
Step 5 虛擬PDM將未標記為“Enforced”的活動子節(jié)點和狀態(tài)為“Running”的活動子節(jié)點狀態(tài)復位為“Unreached”,并向其發(fā)送“重新開始”的消息;
Step 6 接收到“重新開始”消息的各企業(yè)PDM重新處理各自過程。
成為可略活動首先需要具備以下兩個條件:1)該活動在變更前后的工作流中未作改變;2)該可活動在舊工作流實例中已經(jīng)執(zhí)行完畢。然而,具備了上述兩個條件并不能完全確定該活動是可忽略的,如在圖1中的活動A4,雖然也具備了上述條件,但其在新工作流實例中仍然需要重新被執(zhí)行一次。
一個活動Ai,其從開始節(jié)點s到該活動路徑依次為{s,A0,A2, …,Ai-1},如果Ai要能成為可略活動,則其前面的節(jié)點A0,A2, …,Ai-1都是可略活動。
2.2.1 未修改活動的查找
活動的變化主要包括:
1)活動屬性的改變;2)前后連接的改變。對于活動和連接的查找,是通過其id號實現(xiàn)的。考慮到變更后的新工作流與原有工作流變化并不是很大,所以我們在生成新工作流時采用的是“復制+修改”的方式進行的,這樣,新工作流中的活動與連接與原有工作流中的活動與連接有相同的屬性,這樣可以較為容易地實現(xiàn)對應(yīng)節(jié)點的比較,未修改的節(jié)點容易被查找出來。
2.2.2 完成活動識別
流程中已完成的活動是比較容易識別的,因為當活動完成時,其狀態(tài)被置為“Finished”,通過其狀態(tài)位可識別其是否被完成。
2.2.3 可略活動
具備了前兩個性質(zhì)的活動,我們通過下面的遞歸算法來判斷其是否為可略活動。算法執(zhí)行是從開始節(jié)點開始的,任何一個總工作流程,其開始節(jié)點都是可忽略活動。其算法過程如下:
本文探討基于虛擬PDM的跨企業(yè)工作流管理系統(tǒng)是應(yīng)用JAVA語言開發(fā),開發(fā)工具則使用了Eclipse和GMF(Graphical Modeling Framework)。數(shù)據(jù)庫則使用了Microsoft SQL Server2000,其框架結(jié)構(gòu)采用了C/S和B/S結(jié)合的方式。
圖3為虛擬PDM工作流啟動后的監(jiān)控窗口,圖中紅色框的活動子流程表示該對應(yīng)的分流程在各企業(yè)的PDM中已經(jīng)完成,藍色框活動子流程表示該對應(yīng)的分流程在各企業(yè)的PDM中正在進行。雙擊該任務(wù)或點擊“瀏覽詳細情況”,虛擬PDM將連接對應(yīng)企業(yè)PDM,獲取該活動子流程的詳細結(jié)構(gòu)圖與各活動狀態(tài)并在虛擬PDM客戶端顯示,如圖4所示。圖3中所示的活動子流程其在SmarTeam結(jié)構(gòu)與狀態(tài)如圖5所示。
圖3 虛擬PDM工作流監(jiān)控
圖4 子流程過程監(jiān)控
圖5 SmarTeam中的流程
圖6和圖7展示的是圖3工作流經(jīng)過變更和變更分析前后的界面。由于某種原因,原由A所完成的部分工作拆分為由A所和D所共同完成。產(chǎn)生新的工作流如圖6所示。經(jīng)過分析,系統(tǒng)認為“初步設(shè)計”、“總體設(shè)計”、“部件X詳細設(shè)計”和“匯總”是可略節(jié)點,在新工作流中不需要重復完成,并將其狀態(tài)自動標注為“已完成”,如圖7所示,等待系統(tǒng)啟動執(zhí)行。
圖6 工作流變更分析前
圖7 變更分析后
工作流對企業(yè)的業(yè)務(wù)過程實現(xiàn)了導航與監(jiān)控,是現(xiàn)代企業(yè)信息系統(tǒng)的關(guān)鍵技術(shù)。伴隨隨著經(jīng)濟全球化和Internet的普及,目前的工作流管理系統(tǒng)不再局限于單個企業(yè)內(nèi)部的業(yè)務(wù)處理,還必須協(xié)調(diào)不同企業(yè)之間的工作活動。
但目前的PDM系統(tǒng)對于跨企業(yè)的業(yè)務(wù)流程處理顯得無能為力,并不能對合作企業(yè)工作過程監(jiān)控,使得跨企業(yè)的工作可控性較低。
本文通過虛擬PDM方法實現(xiàn)跨企業(yè)工作流管理,并著重探討了跨企業(yè)工作流處理方法,集成了SmarTeam和Windchill兩類的PDM系統(tǒng),對其實現(xiàn)機制進行了詳細描述,探討了基于虛擬PDM的工作流變更處理方法和過程,給出了可略活動的遞歸判斷算法,實現(xiàn)了該方法的應(yīng)用。
[1]Li Jianqiang, Fan Yushun, Zhou Mengchu. Timing constraint workflow nets for workflow analysis [J].IEEE Transactions on Systems, Man, and Cybernetics-Part A:Systems and Humans, 2003, 33(2): 179-193.
[2]Casati F, Ceri S, Pernici B, et al, Workflow evolution [J].Data & Knowledge Engineering, 1998, 24: 211-238.
[3]Yamaguchi S, Ge Q W, Tanaka M. Performance evaluation on change time of dynamic workflow changes [J]. Transactions on Fundamentals of Electronics, Communications and Computer Sciences,2000, 83(11): 2177-2187.
[4]Ellis C, Keddara K, Rozenberg G. Dynamic change within workflow systems [C]//Proceedings of Conference on Organizational Computing Systems,1996: 10-18.
[5]Van Der Aalst W M P, Basten T. Inheritance of workflows: an approach to tackling problems related to change [J]. Theoretical Computer Science, 2002,270(1–2): 125-203.
[6]Reichert M, Dadam P. ADEPTflex-supporting dynamic changes of workflows without losing control [J].Journal of Intelligent Information Systems, 1998,10(2): 93-129.
[7]Qiu Z M, Wong Y S. Dynamic workflow change in PDM systems [J]. Computers in Industry, 2007, 58:453-463.
[8]Liang Keshan, Fan D P, Tang L, et al. VPDM-based product structure data exchange [C]//Proc. of 2010 International Conference on Computer Design and Applications, IEEE, QingHuangDao, China, 2010:408-411.