《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 可視化工作流建模工具WorkFlowEditor設計與實現
可視化工作流建模工具WorkFlowEditor設計與實現
2016年微型機與應用第06期
袁華,劉鵬,歐陽寧,莫建文
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
摘要: 針對企業業務過程建模的需求,分析目前典型的工作流過程建模方法,并結合工作流管理聯盟提出的XPDL過程定義語言,設計一種可視化工作流建模工具WorkFlowEditor。依據“問題分離”原則,對WFMC的工作流過程定義元模型進行了改進,使建立的模型具有易修改、元素可重用等特點。針對建模元素可擴展性的需求,通過定義建模元素類的通用接口和設計一種動態加載方案,在很好地方便企業用戶定制建模元素的同時又不需要修改建模工具。針對多任務多分支環境下復雜的流程編輯問題,設計了一種有限狀態機(FSM)模型,實現了復雜編輯動作的實時性處理和靈活控制,降低了時間復雜度,并且實現模塊化編程,很好地實現了流程的建模。
Abstract:
Key words :

  袁華,劉鵬,歐陽寧,莫建文

  (桂林電子科技大學 信息與通信學院,廣西 桂林 541004)

  摘要:針對企業業務過程建模的需求,分析目前典型的工作流過程建模方法,并結合工作流管理聯盟提出的XPDL過程定義語言,設計一種可視化工作流建模工具WorkFlowEditor。依據“問題分離”原則,對WFMC的工作流過程定義元模型進行了改進,使建立的模型具有易修改、元素可重用等特點。針對建模元素可擴展性的需求,通過定義建模元素類的通用接口和設計一種動態加載方案,在很好地方便企業用戶定制建模元素的同時又不需要修改建模工具。針對多任務多分支環境下復雜的流程編輯問題,設計了一種有限狀態機(FSM)模型,實現了復雜編輯動作的實時性處理和靈活控制,降低了時間復雜度,并且實現模塊化編程,很好地實現了流程的建模。

  關鍵詞工作流模型可視化建模;XPDL;有限狀態機

0引言

  工作流由于在處理復雜任務以及集成異構資源方面的巨大優勢,工作流技術的應用日益廣泛[12]。按照工作流管理聯盟的定義[3],工作流是“按照一定預先定義的規則,使得文檔、信息或任務能夠在不同的參與者之間傳遞執行,從而實現全部或部分經營過程的自動化執行”。工作流模型是對工作流的抽象表示,它的主要目的是定義出正確的過程模型,完成實際的業務過程到計算機可處理的形式化定義的轉化。工作流的描述應當基于具有豐富語義表達功能的建模方法。目前典型的工作流過程建模方法[48]有:基于語言行為理論的工作流過程建模方法、基于形式化表示的過程建模方法(如Petri網)、基于事件驅動的過程鏈(EventDriven Process Chain, EPC)過程建模方法、基于活動網絡的過程建模方法。

  參考文獻[4]指出基于語言行為理論的建模方法主要針對于以人的交互為特征的過程,用于描述人與人之間的協作。參考文獻[5]分析了Petri網兼顧了嚴格的語義與圖形語言兩個方面,能精確方便地對過程的控制邏輯進行定義,但無法體現數據流,并且組成模型的元素數量過多。參考文獻[6]指出EPC描述能力強且易于理解,但建模元素數量過多且缺乏對各個業務處理之間的數據流的描述。參考文獻[7]指出基于活動網絡的過程模型可讀性最好,對于非專業人士來說是一種最直觀、最自然的過程表達方式,但此方法描述復雜過程邏輯時有困難。綜上所述,不同的模型側重點不同。

  因此本文在“基于活動網絡的建模方法”的基礎上進行擴展,引入EPC模型的“路由邏輯”來描述過程模型,即給非專業的人士以直觀的表示又可以描述復雜的流程。采用工作流管理聯盟提出的“擴展標記流程定義語言(XML Process Definition Language, XPDL)[9]”過程定義語言來定義過程模型,它為工作流模型的開發和運行環境之間提供了形式上的分離[10]。利用建模元素類與操作類分離及預留擴展接口等模塊化程序設計思想[11],建模工具WorkFlowEditor具有良好的擴展性和通用性,并且引用有限狀態機(Finite State Machine, FSM)[12]編程思想對編輯動作的控制進行實時性處理。

1改進的過程定義元模型

  元模型是一種描述工作流模型內在聯系的模型,用來描述工作流模型內部的活動、活動之間的關系及活動屬性。

  圖1所示的元模型把表示業務規則的分支、匯聚以及約束嵌在活動的內部。把它們視作為活動說明的一部分。企業業務過程的動態變化是非常普遍的,此時,結構和約束的頻繁變化必然會引起活動定義也隨之改變,非常不方便。為了屏蔽變化帶來的副作用,引入軟件工程一個核心原則——問題分離(Separation of Concerns)原則。把活動(Activity)分解組織為粒度更小、更容易管理和理解的部分,根據功能和負責業務的不同,把活動細化為任務活動,包括人工活動、自動活動、子流程活動;起止活動,明確了流程的開始和結束;把分支(Split)、匯聚(Join)和它們的約束(AND,OR,XOR)這些邏輯關系獨立出來用新的元素——路由活動(Route)來表示,如圖2所示。

001.jpg

2工作流建模工具

  2.1建模元素描述

  為了描述過程模型,根據圖2過程定義元模型實體及實體之間的關系,并結合XPDL過程定義語言來設計建模元素。實體元素對應建模元素類,實體元素之間的嵌套聚合關系,對應建模元素類之間繼承聚合關系。實體元素屬性對應類中的屬性。依據以上原則,給出建模元素類相對應的類圖,以及類之間的繼承、聚合關系。其中,黑色實心箭頭表示繼承關系,箭頭指向父類;菱形空心箭頭表示聚合關系,箭頭指向包含類。如圖3所示。

  

002.jpg

  (1)Common類是所有建模元素類的父類,包含建模元素類的所有共有屬性和方法,如建模元素Id、Name、Description等共有屬性。

  (2)Package(包)類是總的容器類,它包含流程定義類(WorkflowProcess)、應用程序類(Application)、參與者類(Participant)和相關數據類(DataFields)這幾個類的集合,每一個集合用一個List<T>類來表示,上面這些集合與Package構成了聚合關系。Package類中保存這些類對象的指針,作為公共變量,可以被整個包內的實體訪問。WorkflowProcess類是系統的核心,它最重要的組成部分是活動類(Activity)和遷移類(Transition)。同時也封裝了用于建模元素與XML文檔相互轉換的方法SaveToFile和LoadFromFile。

  (3)Activity類有3個子類:BlockActivity(塊活動)、Implementation(執行類)、Route(路由)。其中Implementation類有3個子類:FlowNo、CallSubFlow、ToolApplication,分別對應人工活動、子流程活動、自動活動。Route包含3種類型的路由,分別是Parallel(并行)、Exclusive(排他)、Inclusive(包含)。

  2.2擴展接口及動態加載

  為了方便企業用戶定制建模元素的同時又不需要修改建模工具,提高建模工具的擴展性和通用性,本文設計了建模元素擴展接口和一種動態加載建模元素的方案。

  (1)擴展接口

  抽象類Activity是活動類的基類,包含活動類的一些公共屬性和方法。通過繼承基類來設計滿足自己需求的元素類。Activity相當于一個接口,要擴展的建模元素需要滿足這個接口特性,才能被建模工具識別。

  (2)動態加載

  建模元素打包在DLL文件中,通過動態加載的方式加載到建模工具中,讓建模工具的數據模型、控制模型和顯示模型分離,這樣方便對建模元素擴展和更換的同時,不影響邏輯和顯示部分。為了清楚地描述建模元素是如何加載的,下面給出動態加載的流程圖,如圖4所示。

003.jpg

  2.3建模工具操作類描述

  為了簡潔和便于描述,圖5中僅顯示了幾個框架類的關系圖。

  

004.jpg

  (1)MainForm為主窗體框架類,包含ToolBox、PropertyEditor、DocView、ProjectManager、MapView,它們分別嵌入到各自的窗體ToolBoxWin(工具箱區)、PropertyEditorWin(建模元素屬性編輯區)、DocViewWin(流程繪圖區)、PrjManagerWin(工程管理區)、MapViewWin(縮略圖區)中,而這些窗體均繼承在ToolWindow類。這樣就構成了整個流程編輯器的主體框架。

  (2)ToolBox為建模元素管理模塊類,主要為WorkflowEditor提供用于建模的所有元素;提供建模元素擴展接口和動態加載建模建模元素方法。

  (3)PropertyEditor為建模元素的屬性編輯類,它是一個抽象父類,每一個建模元素都有一個對應的屬性編輯控件,當選中建模元素時,屬性編輯控件將會顯示在PropertyEditorWin窗體中,用戶就可以修改建模元素屬性了。

  (4)MapView為縮略圖類,通常情況下內存畫布都大于繪圖顯示區,為了可以清楚地看到整個內存畫布區域以及了解流程的繪制情況,定義了縮略圖類,它可以實時地反映繪圖區以及整個內存畫布的情況。

  (5)ProjectManager是工程管理類,包含create、delete、open、close等操作工程和流程文件的方法,并且可以顯示整個工程的目錄結構。

  (6)DocView是繪圖類完成圖形的繪制和顯示,FlowDoc類則實現圖形編輯動作控制,這樣可以使顯示(View)和控制(Control)分離。

  2.4有限狀態機(FSM)

  在建模工具的繪制區域編輯流程時,為了提高對復雜編輯任務的實時處理能力,靈活控制圖形編輯動作,在建模工具中引入有限狀態機(FSM)編程思想。有限狀態機的工作原理如圖6所示,當發生事件(Event)后,根據當前狀態S1,決定執行的動作(Action),并轉為下一個新狀態S2。

  

005.jpg

  為了方便清楚地描述有限狀態機的應用,圖7給出了FSM模型的類關系簡圖。

006.jpg

  FiniteStateMachine是定義的有限狀態機類,代表一個FSM,它直接包含狀態機的狀態集類(StateList)、狀態節點類(StateNode)和一個按接收的事件進行狀態遷移的方法FiniteStateMachine::Transfer。StateNode表示一個可以持續存在的狀態,是FSM類的核心,它的最重要的組成部分是狀態遷移類(StateLink)和取得當前狀態節點按事件遷移到的下一個狀態節點的方法StateNode::Transfer()。

  為了清楚地描述FSM狀態遷移圖,以調整連線狀態的狀態遷移為例,給出調整連線狀態的狀態遷移圖,如圖8所示。

007.jpg

  從圖8可以看出:首先,FSM處于初始狀態None,響應按下鼠標事件MouseDown,此處沒有任何條件,執行記錄鼠標按下的位置的動作;然后根據鼠標是否點在連線上[MouseOnConnection]的條件,進入點住連線狀態PichOnCnn,觸發鼠標移動事件MouseMove,根據鼠標是否點在連線的端點[MouseOnCnnPoint]和鼠標是否點在連線的中點[MouseOnCenterPoint]這兩個不同的條件,分別進入調整連線狀態ModifyCnn和調整連線1狀態ModifyCnn1。當進入ModifyCnn狀態時,觸發鼠標移動事件MouseMove,執行修改連線端點ModifyPointTrack的動作,此時狀態未發生改變。觸發鼠標放開事件MouseUp,此時沒有條件,執行擦除改變前的連線,繪制改變后的連線RedrawConnection的動作,返回初始狀態None。

  首先,將調整連線狀態(ModifyCnn)添加到狀態集,然后按照調整連線狀態的遷移觸發事件、條件、動作、目標狀態節點完善調整連線狀態的狀態遷移列表。下面給出調整連線狀態的實際效果圖,如圖9所示。

  

008.jpg

  從以上分析可以看出,在初始化有限狀態機時,把任務的所有狀態添加到狀態集中,并為每個狀態添加狀態遷移列表即可,每個狀態之間是相互獨立的。針對多任務多分支處理系統,使用有限狀態機比使用多層次判斷語句更有效。程序中每個狀態的執行時間是相同的,使用多層次判斷語句執行完整個任務需要執行N×(N+1)/2個判斷語句,而使用有線狀態機只需執行N個判斷語句,時間關系:UPNIYPA%L`O7~N{DFO84EPJ.jpg,從而降低了程序的時間復雜度。

3建模實例

  本文以“廣西溫室氣體排放管理服務平臺”項目中“企業直報流程”為例,如圖10所示,運用WorkFlowEditor流程編輯器定義過程模型。

  企業直報流程描述如下:

  (1)企業填報人員進入填報流程,選擇年份;

  (2)企業填報人員同時要填寫生產信息活動、電熱力消費活動、燃料燃燒活動;

  (3)任何一個要填寫的活動填寫完畢后,都可以單獨提交;

  (4)提交之后要主管單位人員進行審核;

  (5)如果審核結果通過則交由第三方機構核查,審核未通過則返回,讓企業重新填寫上述活動。

009.jpg

  圖10中,生產信息、電熱力消費、燃料燃燒、提交4個活動的參與者是企業人員;主管單位預審活動的參與者是業務主管人員;第三方核查活動的參與者是第三方機構人員。

011.jpg

  為了更直觀、清晰地理解圖10的企業直報流程模型,表1列舉出企業直報流程示意圖中各個實體元素的數目。活動包括兩個事件活動,7個任務活動,3個路由活動。

  (2)工作流相關數據主要有4個,分別是年份、組織機構代碼、提交狀態和預審結果。下面將給出“企業直報流程”的設計視圖,如圖11所示。 

010.jpg

4結論

  通過改進的工作流過程定義元模型并結合工作流過程定義語言XPDL設計了一種工作流建模工具WorkFlowEditor。詳細闡述了建模元素類、操作類以及它們之間的關系。在建模工具中留有建模元素擴展接口并設計一種動態加載方案,方便擴展建模元素集,滿足用戶自定義需要。在WorkFlowEditor中設計了一種有限狀態機模型,可以對復雜編輯動作進行靈活控制。該建模工具基于模塊化的程序設計思想,具有良好的可擴展性和通用性。實驗結果表明, WorkFlowEditor具有一定的合理性,用戶可以方便快捷地設計出滿足自身特點的工作流流程。

參考文獻

  [1] 尚世峰,姜進磊,鄭緯民. CWFlow:支持資源自適應使用的云工作流框架[J].清華大學學報(自然科學版),2013,53(3):415420.

  [2] 蔡敏,盧佩.基于事件擴展UML活動圖的工作流過程建模方法[J].計算機集成制造系統,2014,20(7):17581767.

  [3] TC0010031995. The workflow reference model[S]. Workflow Management Coalition,1995.

  [4] Yan Cai. Comparative analysis of the workflow modeling[J]. 2012 International Conference on Management of eCommerce and eGovernment(ICMeCG), IEEE, 2012:226229.

  [5] 鄭長友,劉曉明,姚奕,等.基于Petri網的面向測試的工作流系統建模方法[J].電子科技大學學報,2014,43(1):119124.

  [6] 張朝輝,劉大為,劉偉江.工作流建模技術綜述[J].微電子學與計算機,2008,25(10):6971.

  [7] 劉怡,張子剛,張戡.工作流模型研究述評[J].計算機工程與設計,2007,28(2):448451.

  [8] 劉繼承,張愛茹,李征鴻,等.基于petri網的文件審批系統工作流建模[J].微型機與應用,2013,32(2):7780.

  [9] WFMCTC1025. Workflow process definition interface XML process definition language[S]. Workflow Management Coalition,2008.

  [10] WfMCTC1016P. Interface1:process definition interchange process model[S]. Workflow Management Coalition ,1999.

  [11] 焦合軍,張璟,李軍懷,等.協同設計中基于混合Petri網的云工作流表示模型[J].應用科學學報,2014,32(6):646651.

  [12] 林曉勇,糜正琨,陳奎成.基于FSM的VPN自動部署設計與應用[J].計算機工程與設計,2011,32(8):26142618.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲人成77777在线播放网站不卡 | 欧美国产精品va在线观看 | 成人精品视频一区二区三区尤物 | 免费观看a级毛片在线播放 国产福利免费视频 | 国产大学生自拍视频 | 五月婷婷开心综合 | 国内精品久久久久不卡 | 国产精品成人在线 | 七月婷婷丁香 | 成人短视频在线免费观看 | 国产精品免费网站 | 你懂的在线免费视频 | 99re国产精品 | 国产一级毛片国语版 | 成人自拍网站 | 毛片app| 人人色在线视频播放 | www.99se| 久久久久久久久中文字幕 | 开心色99xxxx开心色 | 九九中文字幕 | 久久厕所精品国产精品亚洲 | 奇虎视频影库影院 | 亚洲精品天堂在线观看 | 久久伊人免费视频 | 久草资源在线视频 | 国产精品亚洲一区二区三区在线播放 | 99热国产这里只有精品免费 | 青青草久久伊人 | 国产在线视频网 | 中文字幕一区久久久久 | 国产日韩欧美视频在线 | 99国产精品视频免费观看 | 国产一级理仑片日本 | 国产午夜在线观看视频 | 青草九九| 99精品热| 久久国产精品一区免费下载 | 久久久久久久国产精品视频 | 视频一区二区在线 | 国产高清在线精品一区αpp |