1 引言
隨著現代信息技術的迅速發展,利用OA(Office Automation,辦公自動化)系統來提高效率成為多數政府和企業的首選,即通過OA來實現各個成員和部門之間的協同辦公、信息流轉與資源共享等。由于政府公文審批和企業業務處理都是以流程的形式進行,所以工作流技術成為了OA系統中必不可少的部分。
2 廣西廣電網絡OA系統工作流應用現狀和問題分析
近年來,工作流技術在廣西廣電網絡公司的OA系統中已廣泛應用。工作流技術的應用改進了OA的業務流程、實現了業務過程的協調控制、提高了業務處理效率。同時,廣西廣電網絡現有OA系統的工作流技術亦存在以下兩大問題:(1)硬編碼工作流無法適應流程的需求的靈活變更。部分業務流程和流程表單的定義是硬編碼在程序中的規則,一旦業務流程需要調整,開發人員需要進行繁雜的修改工作,對靈活多變的流程顯得無能為力。(2)設計模型和實施模型存在較大差異。曾經在OA系統中引入的開源工作流引擎(Enhydra Shark、OSWorkflow和早期的jBPM),發揮了一定作用,但其業務分析人員的設計模型和開發人員的實施模型之間存在較大差異,開發人員往往難以完全根據設計模型來實現工作流,增加了流程的實施難度。因此,如何提高OA系統中工作流對流程需求變化的快速響應能力,如何解決業務分析人員和IT開發人員之間模型的不一致性成為擺在OA和工作流系統設計和開發人員面前的新課題。
為解決流程硬編碼和設計模型與實施模型之間存在較大差異這兩大問題,新的工作流系統應能夠實現以下兩點:(1)針對流程硬編碼問題,新的工作流應能夠實現以圖形化操作的形式對流程和表單進行定義并生成流程定義文件,將生成的定義文件部署到工作流系統即可完成流程的新建或修改。(2)針對設計模型與實施模型的差異問題,新的工作流系統應能夠以業務分析人員使用的業務流程設計語言BPMN2.0來實現流程建模,達到設計模型和實施模型的統一,使IT開發人員不必再參與到流程建模當中。
本文將針對上述問題,介紹并引入一個基于Activiti5(Activiti BPM Platform)的工作流管理系統,全面解決現
存問題,并以廣西廣電網絡OA系統中重大安全播出期保障檢查流程為例,講解流程的設計和部署等關鍵環節,為OA系統中工作流的設計提供了一種良好的解決方案。
3 工作流技術和Activiti5工作流管理平臺
工作流(Workflow),是對工作流程及其各操作步驟之間業務規則的抽象、概括、描述。工作流建模,即將工作流程中的工作如何前后組織在一起的邏輯和規則在計算機中以恰當的模型進行表示并對其實施計算。工作流要解決的主要問題是:為實現某個業務目標,在多個參與者之間,利用計算機,按某種預定規則自動傳遞文檔、信息或者任務。工作流需要依靠工作流管理系統(Workflow Management System,WfMS)來實現,它的主要功能是通過計算機技術的支持去定義、執行和管理工作流,協調工作流執行過程中工作之間以及群體成員之間的信息交互。常見的工作流管理系統的結構如圖1所示:
圖1 工作流管理系統的結構
當新的流程需求出現時,流程的分析和設計的工作通常由業務分析人員來進行。BPMN2.0提供了一種面向業務分析人員的建模符號,特別是對于流程模型,它提供了具有執行語義的模型。BPMN給業務分析人員提供了類似流程圖的設計體驗,與流程圖不同的是,BPMN2.0包含大量的約束和語義,使設計模型只要添加必要的實現細節就能夠成為一個可以直接被工作流系統解釋執行的實施模型。隨著BPMN2.0近年來的飛速發展和普及,它已經成為流程設計領域的事實標準。本文使用Activiti5工作流管理平臺作為OA中工作流系統的核心。Activiti5是一個由jBPM3、jBPM4發展而來的開源輕量級工作流管理平臺,其強調流程服務的可嵌入性和可擴展性,目前由jBPM的創建者Tom Baeyens主導開發和維護。
Activiti的流程引擎是從jBPM4繼承并強化而來的PVM(Process Virtual Machine,流程虛擬機)。Activiti的前
輩jBPM3雖然在Java社區取得了巨大成功,但其不支持流程語言規范的短板始終被人詬病,它采用了自創的jPDL而不是當今業務分析人員使用的BPMN2.0,節點的運行時行為與jPDL里定義的節點類型是一一綁定的,這造成了流程引擎與特定流程語言的綁定,要支持其他的流程設計語言變得非常困難。PVM 的提出使得流程引擎與流程定義語言解耦,通過一套通用的流程模型并配以可定制的節點運行期行為實現了對多種流程定義語言的支持。PVM 可以解釋BPMN2.0、jPDL、xPDL和BPEL等各種流程定義語言定義的流程格式,使Activiti易于與其他異構工作流引擎對接,有優秀的集成能力。Activiti延續了jBPM3、jBPM4 的社區支持,更新周期 3個月,目前最新版本為Activiti5.14。Activiti提供了兩個圖形化流程和流程表單設計器,分別是基于Web并利用SVG實現的Activiti Modeler和Eclipse plugin形式的Activiti Designer。Activiti5的體系結構如圖2所示。
圖2 Activiti5體系結構
Activiti Engine是Activiti項目的核心。它是一個Java編寫的流程引擎執行以流程建模語言定義的流程。上文提到的PVM是Activiti Engine的一部分,Activiti Engine通過PVM來解釋包括BPMN2.0在內的各種建模語言定義的流程文件。同時,Activiti Engine還負責對工作流實例控制和統計數據收集,包括任務分發、事務管理、報表生成等等。
Activiti Explorer 是一個Web應用程序供用戶訪問Activiti Engine。它提供UI以進行流程流轉、任務管理、流程實例檢驗、系統管理和數據統計報表展示,Activiti Modeler也可以經由Activiti Explorer來訪問。
Activiti Modeler提供了從Web來管理Activiti流程的方案。通過Activiti Modeler流程建模人員可以用瀏覽器建立BPMN2.0標準的流程模型并部署執執行。同時,Activiti Modeler還包括一個Web表單編輯器。
Activiti Designer是一個Eclipse插件,它允許在IDE環境內用BPMN2.0建立流程模型。相對Web的Activiti Modeler,它支持更多Activiti的擴展功能,使流程建模人員能夠進行更細粒度的配置以發揮的流程和引擎的全部能力。Activiti KickStart的是一個基于Web的入門級建模工具,用Activiti引擎可用構件的子集提供快速創建簡單業務流程的能力。通過Kickstart用戶可以使用更加通俗的概念建模,即使不了解BPMN或者其他建模語言也可以建立簡單流程。通過KickStart創建的的流程是和BPMN 2.0兼容的,它可作為學習BPMN2.0建模的起點。
Activiti5的流程設計器Activiti Modeler和Activiti Designer,將是解決流程硬編碼和設計模型與實施模型存在差異這兩大問題的關鍵,針對流程硬編碼問題,Activiti5的流程設計器能夠在WEB端以圖形化操作的方式對流程和表單進行定義并生成流程定義文件,并將生成的定義文件部署到工作流系統即可完成流程的新建或修改;對于設計模型與實施模型的差異問題,Activiti5的流程設計器使用業務分析人員的業務流程設計語言BPMN2.0來實現流程建模,達到設計模型和實施模型的統一,使IT開發人員不必再參與到流程建模當中。
4 重大安全播出期保障檢查流程的設計和部署
本文將以廣西廣電網絡OA中重大安全播出期保障檢查流程作為樣例講解Activiti5的應用。流程設計建立在對流程需求分析和整理的基礎上,重大安全播出期保障檢查流程的主要任務為在廣電系統重大安全播出保障期(如國慶、人大、政協會議等)到來前組織各地進行例行檢查和演習。(廣播電視安全播出檢查和演習的知識)此流程的主要業務包括根據接收制定應急預案、領導小組會簽、領導簽發、辦公室發布、電力系統檢查、機房及傳輸系統、組織應急演習和撰寫報告。其中,因電力系統檢查、機房及傳輸系統、組織應急演習三個步驟的實際執行地分散在分散在各地機房,故采取并行執行的設計以節約流程執行的時間。以流程設計工具Activiti Modeler按照BPMN規范繪制流程如圖3所示:
圖3 流程BPMN2.0設計圖
這個流程包含幾個BPMN2的結構,如下表1所示。
表1 使用到的BPMN2的結構
使用Activiti Modeler繪制流程圖會自動生成相應的BPMN2代碼,上述工作流的關鍵代碼片段如圖4所示:
圖4 流程bpmn20.xml關鍵代碼片段
定義好流程后進入部署環節,主流的部署方式有編程式部署和Activiti Explorer控制臺部署:
(1)編程式部署:將需要部署的bpmn20.xml文件打包為一個壓縮文件(支持zip和bar)后調用部署API,它看起來像這樣:
打包成壓縮文件可以批量部署流程,程序將會自動掃描壓縮文件中以bpmn20.xml或者bpmn作為擴展名的BPMN文件,批量部署到流程引擎。當然,它也可以單獨部署bpmn20.xml。詳見Activiti javadocs。
(2)Activiti Explorer控制臺部署:
Activiti Explorer可以通過web界面的用戶接口上傳一個bpmn20.xml格式的文件進行部署。選擇Management標簽和 點擊 Deployment,將會有一個彈出窗口允許你從電腦上面選擇一個文件,或者你可以簡單的拖拽到指定的區域。Activiti Explorer也支持上傳打包的zip或bar格式的壓縮文件進行批量部署。
部署環節完成后,即可在Activiti Explorer中啟動流程進行流轉。如在流程設計器中配置了流程表單,流程流轉時會提示填寫。
5 Activiti5在廣西廣電網絡OA中的運行情況
集成了Activiti5的廣西廣電網絡OA系統于2012年10月在公司總部上線,并推廣到各地市分公司使用。該系統用戶規模大于4000,日均在線700以上。經過1年運行,以Activiti5為核心的工作流模塊運行穩定,至2013年10月底已經產生5000多條工作流實例,極大的提高了公司內部辦公效率。同時,Activiti5將以往流程調研、分析、設計和部署的時間從2周縮短到3天左右,減少了流程設計部門和IT部門的工作壓力。
6 結語
本文在介紹、分析Activiti5工作流管理平臺總體設計的基礎上,講述了其各主要模塊的使用,并以重大安全播出期保障檢查流程為例,利用Activiti Modeler在Web環境進行圖形化的工作流建模和部署。Activiti5基于BPMN2的工作流模型使以往工作流系統中像是流程分支、流程并行、流程合并等較難以實現的功能,通過簡單操作的圖形化操作即可實現。與傳統開發方式相比,Activiti5消除了以往硬編碼式工作流系統中業務分析人員和軟件開發人員混淆不清的問題,其業務設計人員可以獨立進行流程設計的特性,將開發人員從繁瑣的業務流程設計和編碼中解脫出來,極大提高了業務流程需求變化時的相應速度。Acitiviti5工作流管理平臺實現了業務管理的自動化以及組織內部人員和職能部門的協同工作,大大地提高了組織的運行效率。后續重點研究方向為擴展Activiti以支持任意回退功能(即中國式自由流)以及整合功能更強大HTML表單編輯器以強化Activiti較簡單的表單功能。Activiti5版本更新速度很快,對新功能的支持不斷增加,這些都有待進一步學習和研究。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。