韓紅云,陳 燕,李桃迎
(大連海事大學(xué)交通運(yùn)輸管理學(xué)院,遼寧 大連 116026)
隨著信息技術(shù)的不斷發(fā)展和企業(yè)信息化的逐步深入,越來越多的企業(yè)流程需求已經(jīng)無法用普通的辦公自動(dòng)化系統(tǒng)來滿足。工作流會(huì)簽系統(tǒng),可以自動(dòng)地完成各部門間信息的流動(dòng),可以更加有效地實(shí)現(xiàn)信息的傳遞和交流,可以直觀地了解流程審批的責(zé)任人和某項(xiàng)流程當(dāng)下所處的審批節(jié)點(diǎn),具有更高的安全性、封閉性,可以極大地提高工作效率,節(jié)約時(shí)間成本。
目前已經(jīng)有很多學(xué)者進(jìn)行了相關(guān)的研究,文獻(xiàn)[1]研究了基于JBPM的工作流會(huì)簽設(shè)計(jì),給出了單步會(huì)簽和多步會(huì)簽的具體解決方案。但是目前JBPM技術(shù)已經(jīng)逐步被Activiti所取代,Activiti兼容JBPM的同時(shí)又有良好的拓展性。文獻(xiàn)[2]介紹了管理信息系統(tǒng)會(huì)簽管理的實(shí)現(xiàn),雖然達(dá)到了會(huì)簽效果但是系統(tǒng)運(yùn)行時(shí)存在一定的誤差且效率低下。文獻(xiàn)[3]主要介紹了基于Activiti的工作流引擎技術(shù)在管理系統(tǒng)中的應(yīng)用,運(yùn)用了主要數(shù)據(jù)庫以及主要的接口工作模型,給出了Activiti的優(yōu)勢但是沒有圖形化的追蹤,不利于實(shí)時(shí)控制。
鑒于此,本文將Activiti運(yùn)用到會(huì)簽技術(shù)中,既對JBPM進(jìn)行了拓展和延伸,滿足當(dāng)下高速發(fā)展的需求,同時(shí)也降低了錯(cuò)誤率,避免審批部門間的推諉和延誤,提高管理效率。且在審批流程過程中可以看到圖形化的追蹤界面,方便使用人員對流程的實(shí)時(shí)控制。
工作流主要解決的是“使在多個(gè)參與者間按照某種預(yù)先定義的規(guī)范傳遞文件、信息及任務(wù)的過程自動(dòng)進(jìn)行,從而實(shí)現(xiàn)某個(gè)預(yù)期的目標(biāo),或促使此目標(biāo)的實(shí)現(xiàn)”。工作流是為了實(shí)現(xiàn)某些標(biāo)準(zhǔn)或者業(yè)務(wù)目的而進(jìn)行的自動(dòng)化過程[4]。一個(gè)工作流包括一組任務(wù)和它們之間的相互順序關(guān)系,還包括流程及任務(wù)的起始條件和終止條件,以及對每個(gè)任務(wù)的描述。工作流參考模型即工作流管理系統(tǒng)的體系結(jié)構(gòu)模型[5]。
工作流管理聯(lián)盟(WfMC)對工作流給出定義:工作流就是指一類可以自動(dòng)執(zhí)行的經(jīng)營過程,根據(jù)一系列過程規(guī)范,將文檔、信息或者任務(wù)在不同的執(zhí)行者間進(jìn)行流轉(zhuǎn)與執(zhí)行[6]
在企業(yè)的日常工作中正確處理管理和控制中的工作流程十分重要。以企業(yè)的生產(chǎn)運(yùn)行系統(tǒng)為例,存在著具有時(shí)序性和實(shí)效性的“三票”(工作票、命令票和操作票)管理控制,即許多重要的數(shù)據(jù)需要有關(guān)崗位責(zé)任人簽名予以確認(rèn)[7]。這些需要簽署意見的文檔、合同、三票等將其統(tǒng)稱為“會(huì)簽文件”,需要簽名的用戶為“會(huì)簽人”[8]。
會(huì)簽分為單步會(huì)簽和多步會(huì)簽2種。
1)單步會(huì)簽:只有一個(gè)審批節(jié)點(diǎn),且在這個(gè)節(jié)點(diǎn)處需要多個(gè)審批人員共同負(fù)責(zé)審批任務(wù)或者添加審批意見。它的使用最廣泛且易于實(shí)現(xiàn)。
2)多步會(huì)簽:某審批流程有多個(gè)審批節(jié)點(diǎn),且每個(gè)節(jié)點(diǎn)又存在一個(gè)相對獨(dú)立的審批流程。多步會(huì)簽邏輯結(jié)構(gòu)復(fù)雜,難以實(shí)現(xiàn),但在流程審批過程中必不可少。
會(huì)簽的發(fā)起模式一般分為順序模式和并發(fā)模式。1)順序模式即按照順序執(zhí)行各項(xiàng)活動(dòng)。一道流程從開始到終止,按照審批流程規(guī)定經(jīng)過若干人順序?qū)徟9ぷ髁髁鞒讨械囊粋€(gè)活動(dòng)只有當(dāng)另一個(gè)活動(dòng)完成后才能進(jìn)行。例如:當(dāng)訂單填寫活動(dòng)完成后,客戶通知才可以進(jìn)行。
2)并發(fā)模式即可以同時(shí)運(yùn)行2個(gè)活動(dòng)。在流程中1個(gè)控制線程分為可以并行執(zhí)行的2個(gè)控制線程,允許2個(gè)活動(dòng)可以同時(shí)運(yùn)行[9]。
當(dāng)然會(huì)簽的發(fā)起模式還可以將順序模式和并發(fā)模式進(jìn)行合理的嵌套,構(gòu)成復(fù)雜形式。
Activiti是一個(gè)獨(dú)立運(yùn)作和經(jīng)營的開源項(xiàng)目,獨(dú)立于Alfresco開源ECM系統(tǒng)運(yùn)行。Activiti是一個(gè)輕量級、可嵌入的BPM引擎,而且還適用于可擴(kuò)展的云架構(gòu)[10]。Activiti提供寬松的 Apache 許可 2.0,以便這個(gè)項(xiàng)目可以被廣泛使用,同時(shí)促進(jìn)Activiti BPM引擎和BPMN 2.0的匹配[10]。在流程中提供了平行、分流、決策、聚合等多種復(fù)雜的工作流種類,還提供了方便的基于Web的工作流表單自定義功能,可以定制業(yè)務(wù)流程表單所需的字段,以及顯示權(quán)限[11]。
1)具有良好的拓展性。
Activiti是基于JBPM4開發(fā)的,支持 PVM(流程虛擬機(jī))技術(shù),支持更多的流程格式,且可與外部服務(wù)良好集成,服務(wù)接口清晰,擁有鏈?zhǔn)降腁PI接口,為流程管理營造良好的內(nèi)部實(shí)現(xiàn)環(huán)境。
2)可視化的流程設(shè)計(jì)。
Activiti與Eclipse集成實(shí)現(xiàn)了定義流程的可視化,使流程更加清晰明了。另外Activiti Modeler是基于開源的Signavio Web流程編輯器的一個(gè)版本,提供了對BPMN 2.0圖形化規(guī)范支持,流程定義后以XML文件格式存儲(chǔ),用戶可以輕松畫出邏輯復(fù)雜的工作流程[12]。
圖1 WSH框架調(diào)用流程圖
本課題是 WebWork、Spring和 Hibernate三種框架技術(shù)的整合使用,也稱為WSH框架。3種技術(shù)顧及到了和其他框架的聯(lián)系,充分發(fā)揮了三大框架各自的特點(diǎn),三大框架的集成使得開發(fā)效率顯著地提高,充分利用了每個(gè)框架的優(yōu)勢,從而達(dá)到了取長補(bǔ)短的效果。WSH框架調(diào)用流程圖如圖1所示。
該系統(tǒng)的實(shí)現(xiàn)是基于J2EE的標(biāo)準(zhǔn)設(shè)計(jì),邏輯上分為表現(xiàn)層、控制層、業(yè)務(wù)層和數(shù)據(jù)層。如圖2所示。
圖2 J2EE規(guī)范的四層模型
J2EE平臺中客戶端應(yīng)用程序和Applet是運(yùn)行在客戶端的組件;Java Servlet和Java Server Pages(JSP)是運(yùn)行在服務(wù)器端的Web組件;Enterprise Java Bean(EJB)組件是運(yùn)行在服務(wù)器端的業(yè)務(wù)組件[13]。如圖3所示。
圖3 客戶端層、Web層和業(yè)務(wù)層
本文研究的工作流會(huì)簽系統(tǒng)是基于J2EE的B/S應(yīng)用模式,將Activiti與Eclipse集成,利用WebWork、Spring、Hibernate三大框架,采用了Java語言編程,同時(shí)運(yùn)用JSP的相關(guān)頁面設(shè)計(jì)技術(shù)實(shí)現(xiàn)相關(guān)功能。本系統(tǒng)采用MySQL作為數(shù)據(jù)庫,Tomcat 6.0作為應(yīng)用服務(wù)器,基于Internet與Web技術(shù)、B/S結(jié)構(gòu)的系統(tǒng)功能,具有開放、可靠、彈性、兼容、靈活、跨平臺的特性[14]。
會(huì)簽流程的設(shè)計(jì)思想是將每個(gè)會(huì)簽過程看成一個(gè)任務(wù),在數(shù)據(jù)庫中存儲(chǔ)起來,將設(shè)計(jì)好的流程定義審批圖以文件的形式部署存儲(chǔ)到Activiti環(huán)境中。運(yùn)行流程后,根據(jù)流程在流程定義中存儲(chǔ)的會(huì)簽節(jié)點(diǎn)間流轉(zhuǎn),首先任務(wù)人簽收審批任務(wù),經(jīng)驗(yàn)證有權(quán)限后進(jìn)行審批操作或者添加審批意見。通過后流程流轉(zhuǎn)到下一節(jié)點(diǎn),拒絕時(shí)流程駁回到申請人節(jié)點(diǎn)修改。直至流程審批結(jié)束。
Activiti使用到的表都是ACT_開頭的。
1)ACT_RE_*:’RE’表示repository(存儲(chǔ)),RepositoryService接口所操作的表。帶此前綴的表包含靜態(tài)信息,如流程定義,流程的資源(圖片、規(guī)則等)。
2)ACT_RU_*:’RU’表示 runtime,運(yùn)行時(shí)表-RuntimeService。這是運(yùn)行時(shí)的表,存儲(chǔ)流程變量、用戶任務(wù)、變量、職責(zé)(job)等運(yùn)行時(shí)的數(shù)據(jù)。Activiti只存儲(chǔ)實(shí)例執(zhí)行期間的運(yùn)行時(shí)數(shù)據(jù),當(dāng)流程實(shí)例結(jié)束時(shí),將刪除這些記錄,保證了運(yùn)行時(shí)的表小且快。
3)ACT_ID_*:’ID’表示 identity(身份標(biāo)識),IdentityService接口所操作的表。用戶記錄、流程中使用到的用戶和組。這些表包含標(biāo)識的信息,如用戶、用戶組等。
4)ACT_HI_*:’HI’表示 history,歷史數(shù)據(jù)表,HistoryService。這些表包含流程執(zhí)行的歷史相關(guān)數(shù)據(jù),如結(jié)束的流程實(shí)例、變量、任務(wù)等。
5)ACT_GE_*:’GE’全局通用數(shù)據(jù)及設(shè)置(general),各種情況都使用的數(shù)據(jù)[14]。
本文實(shí)現(xiàn)的難點(diǎn)在于具體業(yè)務(wù)與實(shí)現(xiàn)層交互。利用Activiti技術(shù)實(shí)現(xiàn)方案審批業(yè)務(wù)流程需要以下步驟。
1)設(shè)計(jì)工作流程圖。
在Eclipse開發(fā)環(huán)境中用流程設(shè)計(jì)工具按照BPMN規(guī)范繪制方案審批流程圖。
2)將設(shè)計(jì)好的工作流程圖部署,相關(guān)配置如下:
3)部署后的流程就可以啟用;首先發(fā)起申請。
用戶發(fā)起申請保存后增加語句將流程插入到數(shù)據(jù)庫,并與項(xiàng)目申請相關(guān)聯(lián),啟動(dòng)流程。
4)簽收任務(wù)流程。
流程流轉(zhuǎn)到下一個(gè)節(jié)點(diǎn)后,由負(fù)責(zé)人員簽收任務(wù),其他人員無權(quán)限簽收,負(fù)責(zé)人簽收后,業(yè)務(wù)申請對外不可見。
5)審批流程。
6)查看流程圖。
7)待辦任務(wù)和已經(jīng)完成的任務(wù)。
//查詢當(dāng)前流程節(jié)點(diǎn)
8)刪除流程任務(wù)。
本文利用Activciti技術(shù)實(shí)現(xiàn)了工作流會(huì)簽功能,解決了發(fā)起會(huì)簽的順序模式以及簡單的并發(fā)模式的實(shí)現(xiàn),完成了信息在各級、各部門間的流轉(zhuǎn)且可以對流程任務(wù)進(jìn)行實(shí)時(shí)控制。下一步將研究順序模式和并發(fā)模式嵌套的實(shí)現(xiàn),使工作流會(huì)簽系統(tǒng)功能更加完善,從而發(fā)揮其更強(qiáng)大全面智能的功能。
[1]顧大明.基于JBPM的工作流會(huì)簽設(shè)計(jì)[J].民營科技,2010(12):50,207.
[2]梅峰,于洋,衛(wèi)青延,等.基于開源工作流Activiti的企業(yè)協(xié)同信息平臺研究[J].福建電腦,2012(11):125-127.
[3]阿斯特.工作流管理:模型、方法和系統(tǒng)[M].王建民譯.北京:清華大學(xué)出版社,2004.
[4]張利君,馬駿,楊濤,等.基于工作流的動(dòng)態(tài)任務(wù)調(diào)度研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(10):2533-2537.
[5]WFMC-TC-1025,工作流過程定義接口——XML過程定義語言[S].
[6]羅海濱,范玉順,吳澄.工作流技術(shù)綜述[J].軟件學(xué)報(bào),2000,11(7):899-907.
[7]薛華成.管理信息系統(tǒng)[M].北京:清華大學(xué)出版社,1993.
[8]王安慧,孫長銀.管理信息系統(tǒng)會(huì)簽管理模塊的設(shè)計(jì)與應(yīng)用[J].三峽大學(xué)學(xué)報(bào)(自然科學(xué)版),2001,23(5):454-457.
[9]范玉順.工作流管理技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2001.
[10]葉小路,錢真坤.基于Activiti5的水司OA系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊(教育技術(shù)),2013,12(6):93-95.
[11]Alexander Grosskopf,Gero Decker,Mathias Weske.The Process Business Process Modeling Using BPMN[M].Meghan-Kiffer Press,2009.
[12]馮天佑,梁立宇,李成華,等.基于Activiti工作流引擎技術(shù)的電力行業(yè)業(yè)務(wù)流程管理系統(tǒng)[J].信息通信,2013(8):57-59.
[13]Chen W.Enterprise information management system based on J2EE and MVC mode[C]//Proceedings of the 9th International Symposium on Linear Drives for Industry Applications.2014,3:427-433.
[14]孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計(jì)與開發(fā)[M].北京:電子工業(yè)出版社,2004.