薛智山 滿君豐 張燦青 劉鳴 彭成
摘要:詳細闡述基于BPMN2.0(Business Process Diagram)標準的Activit5(Activiti BPM Platform)工作流管理平臺,包括其體系模塊組成及業務流程設計。并根據實際情況,以車輛申請系統中的流程為例,詳細介紹在 Activiti5中工作流系統的設計與應用的方法。
關鍵詞:工作流管理系統;車輛申請系統;activiti5
中圖分類號:TP311.1文獻標識碼:A
Abstract:This paper detailed the BPMN2.0 (Business Process Modeling Notation) standard Activit5 (Activiti BPM Platform) workflow management platform, including its system modules and business process design. According to the actual situation, this paper also introduced the method of design and application of workflow system in Activiti5 in the process of vehicle application system.
Key words:workflow management system;vehicle application system;activiti5
1引言
工作流概念的提出起初開始于工業生產和辦公政務系統,工作流的主要作用就是將整個流程模塊劃分為相應的組織機構和角色信息,按照給定的規則和任務來執行,從而能提高工作效率、減少成本,從根本上提高企業生產水平和市場競爭力[1]。自人類進入工業自動化時代,企業管理就在組織機構管理和流程自動化方面作為主要研究方向,而之前這些工作大都由人工來做,效率較低。隨著全球互聯網的普及與發展,計算機相關的技術越來越成熟,其中應用最為廣泛的就是在工業生產中的技術推廣,這時工作流概念得到了提出,工業技術為工作流的應用和推廣提供了相當成熟的發展條件。現今工作流管理平臺已在金融、機械生產、政務電子政務等方面有了成功的應用,不過工作流最重要的應用還是體現在工業制造生產中。
工作流概念的提出自由其自身的優點和使用價值,工作流相比工業中其他技術更簡單適用,因為工作了提供了相應的執行機制和工作引擎,這使企業能從業務過程自動化中立足發展起來。以工作流的概念為基礎,實現業務流程執行自動化和業務功能過程的集成,這些執行機制是通過定義各節點任務之間的關聯關系的工作流模型(即過程模型)[2]來實現的。在工作流建模機制中,即便是復雜的邏輯業務判斷或具體的流程執行操作,還是抽象的決策過程執行,這些處理都可以用BPMN元素組成工作流架構來描述業務關系。特別的是,流程各模塊之間的關聯關系,都可以用BPMN中的連接線進行關聯,即使多么復雜的邏輯業務都可以實現。連接線描述了企業生產過程的控制邏輯,它定義了兩個活動之間的順序連接和執行次序,并且可以定義流程變量,根據變量的值判斷流程的走向。
基于工作流技術的簡單易用且具有靈活性的特點,在各大工業制造商家及軟件公司都不約而同的對工作流進行了研發和擴展,將已經成熟的構件產品融入到工作流技術中,進而根據需求再應用到具體業務系統中(如大家比較熟悉并常用的電子政務系統、檔案管理平臺等各單位業務系統)。基于工作流技術的發展,在學術界和工業生產界都對工作流的研發和應用進行了不同的投入,工作流的應用在這幾年迅速發展起來。
2工作流架構及技術
根據WfMC的定義,工作流管理系統(Workflow Management System, WFMS)[3]是一款軟件流程系統,它對工作流進行定義和分配,并根據設置的工作流業務邏輯執行工作流的實例。一般來講,工作流管理系統指的是應用在一個或多個工作流引擎機制中對工作流進行定義和執行實例的一款軟件系統,工作流與它的任務執行者交互,執行工作流的實例,并適時監控工作流過程的運行狀況。如圖1是由WfMC提出的工作流平臺的體系結構圖[4]。在這個參考模型的體系結構中,其提供了工作流管理系統的Server工作引擎和相關組織機構等核心部分,它可以實現工作流管理系統中流程提交處理及組織機構角色任務等各模塊相互協同作用構成的整個流程功能,能夠為工作流組件之間的協同操作提供了核心內容。這里必須提到的是,工作流管理系統中的每個模塊部分可以根據不同的邏輯需求采用不同的實現方法,同時接口組件也可以根據不同的程序編程語言和技術架構進行不同的對接。通常來講,工作流可以集成不同的構件產品,并根據不同的規則和任務對相應的接口進行相關的互操作。正是由于工作流各模塊相互協作的作用,在執行工作流之前的模型機制就顯的尤為重要,即工作流建模機制和流程執行引擎才完整組成了整個工作流程的功能。從上圖1中可以總結出,工作流管理系統主要是由以下三種模塊組成的:
1)軟件構件:主要指組成工作流管理系統的各構件程序;
2)系統控制數據:在流程系統中使用到的程序數據;
3)應用和數據:相對于流程系統其他部分,應用和數據不是工作流平臺的實際組成部分,而是屬于外部系統的應用和數據,用來在工作流模塊中協同操作和產生的應用數據。
本文設計并實現了基于Activiti5的工作流管理系統,Activiti5使用BPMN2.0標準。首先,BPMN2.0標準是根據標準組織BMPI發布的BPMN1.0的基礎上進行改進,該規范是BMPI組織經過兩年多努力研究的成果。BPMN由一套給定的標記符號語言組成,可以根據用戶的需求進行系統的需求分析設計及軟件程序的研發工作等。同時,BPMN還可以支持生成可執行BPEL4WS語言。因此,BPMN實現了在業務流程設計和程序實現兩者之間的連接關系。首先軟件研發者利用BPMN的語言標記定義業務流程,這些特殊標記符號構成了流程圖,簡化了繁瑣的圖形操作。業務流程的建模機制簡單來說就是對流程的執行描述,包括活動項和定義順序流向的執行。
3車輛申請流程的設計與實現
本文以車輛申請為例詳解Activiti5流程的應用。其車輛申請的需求如下:
1)申請者啟動流程,填寫車輛相關信息(如使用費用、乘客人信息、到達地等),提交表單,后臺會進行流程任務的提交,流程進入到下一個節點任務。
2)以車輛管理員身份登錄系統:在任務信息中可以查看到車輛和用戶的一系列信息;同時可修改信息,選擇車輛的同時可以派送司機,即車輛管理員可以對車輛進行改派。如果車輛管理員允許申請,則流程節點進入到車輛執行經理或財務部門經理,同時系統計算出車輛所耗費用。如果沒有通過,則填寫原因,同時流程回退到流程啟動者,重新發起新的流程。
3)如果所花車費小于一萬,則車輛執行經理審核:可以查看到任務信息中顯示路程信息、乘坐人信息等;不可以修改信息。如果審核允許車輛通過,則流程自動進入到下一個任務節點。如果沒有通過,則填寫原因,流程回退到流程啟動者,重新發起流程;如果費用大于等于一萬,則財務經理進行審核,查閱信息:用戶選擇車輛及使用時間、預計到達時間、目的地,及車程計費明細;不可修改相關信息。如果車輛審核通過,則流程執行下一步。若不同意,則填寫原因,整個流程到此結束。
4)以流程任務的接收者登陸系統,在待辦任務中可以看到當前的待執行任務,該執行者可以查看到相關的信息(如車輛計程,路途車費等);無可修改的信息。同時,進行工作的確認。進入下一步。
5)在工作流引擎機制中,由Service引擎將車輛及用戶相關信息進行保存并寫入到數據庫中,這樣,整個工作流系統的流程執行完畢。需求如圖2所示:
3.1定義業務流程
BPMN基本元素構成了工作流的模塊結構,工作流也是由BPMN提供建模機制并通過引擎機制來執行整個流程的操作。工作流中包含了并行、排他、循環及嵌套流程等邏輯結構模型,這其中有人工活動和網關路由活動,程序開發人員可以通過設置變量或指定組織機構來進行流程的走向操作。因此,這樣的工作流即方便了業務人員的流程設計,也有利于程序執行的靈活特性。再加上界面表單的展現,方便了客戶人員簡單直觀的操作業務及隨時查看流程的節點位置。以BPMN2.0規范的Activiti5流程圖如圖3所示:
其中BPMN的元素含義如表1所示:表1BPMN的元素含義
3.2界面操作
進入工作流系統,填寫相關信息,車輛申請平臺界面如圖4所示:申請者登錄系統可以看到車輛列表,申請者選擇車輛并填寫相關信息,提交流程;車輛管理員登陸系統領取任務,并根據費用是否小于一萬元進行判斷,小于一萬元分配給辦公室主任進行審批,同時派送車輛司機;被分派的司機在自己的當前任務中查看并操作,提交任務,流程結束。
3.3提交業務流程
提交流程主要用到Activiti5中的Server執行引擎,執行引擎執行庫中封裝的方法,其部分執行代碼如下圖5所示:
4系統運行情況及分析
該車輛申請流程系統在某小區進行部署并測試。該小區車輛數量大于500,日均200輛以上。經過一個月試運行,以Activiti5為引擎的工作流管理系統運行比較穩定,并生成了6000多條實例數據,在很大程度上提高了物業公司效率。該工作流管理系統從需求、分析及部署實施提高了整個流水線效率,減少了軟件公司和操作員的工作量。
5結束語
本文在介紹和分析了Activiti5工作流管理系統的概念性描述的同時,講述了管理流程的主要模塊的關系,并以實際車輛申請流程為例,利用Eclipse的Activiti5插件進行圖形化的工作流建模和系統實現。基BPMN2.0標準的Activiti5工作流平臺解決了傳統工業中較難處理的問題(如在并行、排他等節點的邏輯處理上),同時通過簡單易懂的圖形化符號組成工作流的整個流程。相比傳統工業開發模式,Activiti5降低了業務人員和軟件開發人員程序處理的繁雜工作,其系統業務設計人員可以對流程進行單獨的設計,從而開發人員易陷復雜程序的問題得到了根本解決[5],極大提高了業務流程隨需而變的響應速度。Acitiviti5實現的工作流管理系統做到了系統管理的自動化以及組織機構人員和職業部門的協同工作,大大地提高了系統的運行效率。接下來的工作主要是研究擴展Activiti5組件以支持更為靈活的工作流管理系統。
參考文獻
[1]SCHUNSELAAR D M,VERBEEK E,VAN DER ALST W M P,et al.Creating Sound and Reversible Configurable Process Models Using CoSeNets [C]. BIS12. Vilnius, Lithuania. LNBIP 117,Springer,2012:24-35.
[2]江東明,薛錦云.基于BPMN 的Web服務并發交互機制[J].計算機科學,2014,(8):50-54.
[3]劉一帆.基于工作流的實驗室信息管理系統設計[J].實驗室研究與探索,2013,(11):90-94.
[4]徐志偉.基于工作流的高校設備管理系統設計與實現[D].碩士論文,2012.
[5]AYORA C,TORRES V,WEBER B, et al. VIVACE: A Framework for the Systematic Evaluation of Variability Support in ProcessAware Information Systems [J]. Information and Software Technology, Elsevier, 2015, 57(5): 248-276.