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