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