聶竹青 陳智明 周湘超 陳義明
工作流技術(shù)能建模組織內(nèi)部各種工作流程,實現(xiàn)自動或半自動的流轉(zhuǎn),記錄任務(wù)操作,提高組織工作效率和質(zhì)量。作者針對有多家分公司的大型評估公司的業(yè)務(wù)需要,定義了實現(xiàn)各種功能的工作流并詳細(xì)描述了其中的報告審核和簽名歸檔工作流。并以評估報告審核、報告簽章入庫和財務(wù)報表審核流程為實例,設(shè)計了一種基于主流SSH框架的、層次分明、有良好擴(kuò)展性和維護(hù)性的工作流管理系統(tǒng)。
近20年以來,隨著我國經(jīng)濟(jì)的發(fā)展,在評估行業(yè)內(nèi)形成了一些大型的資產(chǎn)評估公司,這些公司除了自身技術(shù)實力雄厚,擁有大量的高水平評估人才外,還在各地設(shè)立了一些分公司,以充分發(fā)揮自己的技術(shù)優(yōu)勢。為了確保評估質(zhì)量,規(guī)范收費(fèi)管理,這些公司迫切需要規(guī)范評估報告審核、簽字歸檔和收費(fèi)審核等業(yè)務(wù)流程,同時提高公司工作效率和競爭實力。
本文基于JBPM(Java Business Process Management)工作流技術(shù)對大型評估機(jī)構(gòu)分公司管理系統(tǒng)進(jìn)行了研究和設(shè)計。
工作流起源于生產(chǎn)組織和辦公自動化領(lǐng)域。它針對日常工作中具有固定程序的活動,將它們分解成定義良好的任務(wù)、角色,按照一定的規(guī)則和過程執(zhí)行這些任務(wù)并對他們進(jìn)行監(jiān)控,從而提高辦事效率、降低生產(chǎn)成本、提高企業(yè)生產(chǎn)管理水平和競爭力。
工作流管理聯(lián)盟(WfMC Workflow Management Coalition)給出的工作流定義是:工作流是一類能夠完全或部分自動執(zhí)行的業(yè)務(wù)過程,它根據(jù)一系列過程規(guī)則,使文檔、信息或任務(wù)能夠在不同的執(zhí)行角色之間進(jìn)行傳遞與執(zhí)行。[1]
工作流管理系統(tǒng)是一個軟件系統(tǒng),它完成工作流的定義和管理,并按照預(yù)先定義好的工作流邏輯自動推進(jìn)工作流實例的執(zhí)行。WfMC在1994年11月發(fā)布了工作流管理系統(tǒng)的參考模型,如圖1所示。[2]其中,“工作流執(zhí)行服務(wù)”是工作流管理系統(tǒng)的核心部件,是模型中最重要的組成部分,它的功能包括創(chuàng)建、管理流程定義,創(chuàng)建、管理和執(zhí)行流程實例,它可能包含有多個分布式工作的工作流引擎。工作流執(zhí)行服務(wù)通過提供工作流定義交換、工作流客戶端應(yīng)用、被調(diào)用的原因、工作流系統(tǒng)互操作和系統(tǒng)監(jiān)控和管理五大接口實現(xiàn)和各種應(yīng)用程序的交互。
圖1 工作流參考模型
根據(jù)任務(wù)項的傳遞機(jī)制不同,工作流管理系統(tǒng)可以分為三種類型:
(1)基于文件的工作流管理系統(tǒng):采用共享文件的方式完成任務(wù)項的傳遞;
(2)基于消息的工作流管理系統(tǒng):通過用戶的電子郵件系統(tǒng)傳遞文檔信息;
(3)基于Web的工作流管理系統(tǒng):通過WWW實現(xiàn)任務(wù)間的協(xié)作。
JBPM是JBoss組織創(chuàng)建的一個靈活、易擴(kuò)展的工作流管理系統(tǒng)框架。它的業(yè)務(wù)邏輯定義沒有采用目前的一些規(guī)范,如WfMC的XPDL、BPML、ebXML等,而是采用了它自己定義的JPDL(JBoss Process Definition Language)。JBPM基于UML活動圖模型,結(jié)合了狀態(tài)機(jī)以及Petri Net等技術(shù),不但提供了Event-Action機(jī)制來滿足活動擴(kuò)展處理的需要,還提供了可擴(kuò)展的Task及分配機(jī)制,來滿足復(fù)雜人工活動的處理。[3]JBPM已被廣泛應(yīng)用于各行業(yè)辦公自動化系統(tǒng)的開發(fā)。[4-8]
JBPM使用目前Java領(lǐng)域最流行的一種數(shù)據(jù)持久層解決方案Hibernate來管理它的數(shù)據(jù)庫。通過Hibernate,JBPM將數(shù)據(jù)的管理職能分離出去,自己專注于商務(wù)邏輯的處理。它將流程定義封裝成流程檔案(process archives),傳送到JPDL流程引擎加以執(zhí)行。JPDL流程引擎負(fù)責(zé)遍歷流程圖、執(zhí)行定義的動作、維持流程狀態(tài),并且記錄所有流程事件。JBPM工作流組件結(jié)構(gòu)如圖2所示。
JBPM開發(fā)工作流系統(tǒng)的一般步驟如下:(1)選定所用數(shù)據(jù)庫。JBPM工作流系統(tǒng)需要有流程數(shù)據(jù)庫來存儲所定義的流程以及應(yīng)用數(shù)據(jù)庫存儲應(yīng)用程序數(shù)據(jù);(2)定義工作流。在eclipse中使用JPDL流程圖形設(shè)計器設(shè)計流程,自動生成processdeflnition.xml文件;(3)生成java流程歸檔文件。使用Ant create.pde生成pde包的工作目錄,將processdinination.xml文件和其它需要的文件復(fù)制到其目錄下,使用ant build.precess.archives生成格式為jar的pde包;(4)修改數(shù)據(jù)庫連接設(shè)置。在src/config/jbpm.properties中設(shè)置數(shù)據(jù)庫連接信息,將數(shù)據(jù)庫的JDBC驅(qū)動放在pde工作目錄的lib目錄下;(5)部署到數(shù)據(jù)庫。執(zhí)行命令A(yù)nt deploy.process.archives,將上一步生成的pde部署到數(shù)據(jù)庫;(6)利用JBPM API函數(shù)開發(fā)相應(yīng)的工作流程。
一般而言,設(shè)有多個分公司的大型評估公司工作流管理系統(tǒng)模塊結(jié)構(gòu)如圖3所示。
通知發(fā)布:總公司的重要文件,通知各分公司負(fù)責(zé)人;各分公司的申請報告、重要合同、文件等圖文資料,投標(biāo)資料等發(fā)給總公司。
資料共享:總公司的報告模版、標(biāo)準(zhǔn)、檔案資料要求、培訓(xùn)資料、行業(yè)動態(tài)等資料能讓各分公司共享;分公司將各地的地方文件,如基準(zhǔn)地價,房地產(chǎn)指導(dǎo)價格,市場調(diào)研報告等上傳到總公司。
報告審核:系統(tǒng)的核心工作流,涉及到分公司評估師、分公司經(jīng)理和總公司經(jīng)理等角色。第三部分有詳細(xì)的流程設(shè)計描述。
圖2 JBPM工作流系統(tǒng)組件結(jié)構(gòu)
圖3 評估管理系統(tǒng)模塊結(jié)構(gòu)
報告簽名入庫:系統(tǒng)的另一核心工作流,主要功能是在報告審核通過后,由總公司秘書發(fā)起,分公司評估師、分公司經(jīng)理和總公司經(jīng)理參與電子簽名,最后由秘書為報告加入二維碼和條形碼后歸檔入庫。
防偽歸檔:該模塊自動生成包含總公司官網(wǎng)鏈接和報告編號的二維碼,加入報告文檔的適當(dāng)位置,客戶可以手機(jī)掃描二維碼,確認(rèn)二維碼內(nèi)容后直接連接官網(wǎng)查詢報告信息的方式判別評估報告的真?zhèn)巍?/p>
收費(fèi)審核:系統(tǒng)的又一核心流程,由分公司財務(wù)發(fā)起,經(jīng)分公司經(jīng)理和總公司經(jīng)理審核通過后結(jié)束流程,如果不通過則駁回流程。該模塊主要根據(jù)評估面積、評估價格來判別評估收費(fèi)的合理性。
收費(fèi)統(tǒng)計:總公司和分公司經(jīng)理及財務(wù)按時間段和報告類別查詢和統(tǒng)計評估收費(fèi),提供一定的決策支持。
討論交流:整個公司進(jìn)行技術(shù)交流的模塊,以發(fā)帖和回帖的方式進(jìn)行。
系統(tǒng)的用戶角色包括總公司經(jīng)理、總公司秘書、分公司經(jīng)理、分公司評估師和分公司財務(wù)。
由于JBPM工作流框架可以將傳統(tǒng)基于紙質(zhì)文檔的業(yè)務(wù)流程電子化,記錄每個流程各個任務(wù)節(jié)點的操作歷史,有效提高工作流執(zhí)行的效率和質(zhì)量,所以筆者盡量將系統(tǒng)功能以工作流的方式實現(xiàn)。系統(tǒng)主要有報告審核、報告簽名歸檔和收費(fèi)審核三大核心工作流,由于收費(fèi)審核和報告審核的流程基本相同,本部分僅詳細(xì)描述報告審核和報告簽名歸檔的設(shè)計。
報告審核流程如圖4所示,分公司評估師首先從系統(tǒng)獲取報告編號,評估報告的編號具有唯一性,由年份+分公司拼音縮寫+分公司報告序號組成,如2014GZ001表示2014年廣州分公司第一份報告編號。然后上傳報告,啟動審核流程,成為分公司經(jīng)理的待辦事項。分公司經(jīng)理審核報告,若審核通過,則流轉(zhuǎn)到總公司經(jīng)理,否則駁回,由分公司評估師修正??偣窘?jīng)理審核待辦事項,通過的則交給秘書,流程結(jié)束,否則駁回給分公司經(jīng)理。已流經(jīng)任務(wù)結(jié)點的用戶可以查看工作流的流轉(zhuǎn)情況,了解工作流審批進(jìn)展。數(shù)據(jù)庫保存報告流轉(zhuǎn)審核歷史,可以查詢報告審核細(xì)節(jié)。
圖4 報告審核工作流
報告電子簽名及歸檔流程如圖5所示。該流程在報告審核流程之后,由秘書發(fā)起,經(jīng)過分公司評估師、分公司經(jīng)理和總公司經(jīng)理逐級電子簽名,最后由秘書生成包含防偽查詢鏈接信息的二維碼,并插入到報告的適當(dāng)位置,歸檔入庫。
系統(tǒng)采用典型的B/S架構(gòu),基于MVC(model view controller)模式分為表示層、應(yīng)用層和數(shù)據(jù)層,總體架構(gòu)如圖6所示。表示層基于JSP技術(shù)構(gòu)建用戶界面,使用JSP和Struts標(biāo)簽庫方便數(shù)據(jù)的輸入和展示,支持多種客戶端平臺的標(biāo)準(zhǔn)HTTP訪問。應(yīng)用層運(yùn)行在Apache開源Web容器TomCat上,包含Web控制、業(yè)務(wù)處理和數(shù)據(jù)訪問三部分。Web控制部分使用Struts2框架,采用攔截器機(jī)制處理用戶請求,使業(yè)務(wù)邏輯控制器與Servlet API 完全脫離開來。業(yè)務(wù)處理部分采用輕量級Spring框架,使用控制反轉(zhuǎn)(IOC)和依賴注入技術(shù)動態(tài)創(chuàng)建各種bean對象,基于面向切面編程(AOP)技術(shù)很方便地插入功能模塊。其中,Service層用來為action提供業(yè)務(wù)邏輯操作和控制事務(wù)屬性,DAO層用于數(shù)據(jù)庫的各種操作,JBPM用于處理所有與流程相關(guān)的數(shù)據(jù)操作。數(shù)據(jù)訪問部分由Hibernate框架實現(xiàn),完成MySQL關(guān)系型數(shù)據(jù)模型和業(yè)務(wù)層對象模型之間的映射。這種分層、松耦合的軟件架構(gòu)使系統(tǒng)具有極好的可擴(kuò)展性和維護(hù)性。
圖5 報告簽名歸檔工作流
圖6 系統(tǒng)軟件結(jié)構(gòu)圖[9]
工作流技術(shù)能建模組織內(nèi)部各種工作流程,實現(xiàn)自動或半自動的流轉(zhuǎn),記錄任務(wù)操作,提高組織工作效率和質(zhì)量。本文針對有許多分公司的大型評估公司的業(yè)務(wù)需要,定義了實現(xiàn)各種功能的工作流并詳細(xì)描述了其中的報告審核和簽名歸檔工作流,設(shè)計了一種基于主流SSH框架的、層次分明、有良好擴(kuò)展性和維護(hù)性的工作流管理系統(tǒng)。
[1]范玉順,羅海濱. 工作流管理技術(shù)基礎(chǔ). Vol. 4. 2001: 清華大學(xué)出版社.
[2]Hollingsworth, D.. The workf l ow reference model[J]. 1995.
[3]胡奇. JBPM4工作流應(yīng)用開發(fā)指南. 2011: 電子工業(yè)出版社.
[4]段雪麗, 妊妤,曹靜. 基于JBPM的高校辦公自動化系統(tǒng)的設(shè)計與實現(xiàn)[J]. 邢臺職業(yè)技術(shù)學(xué)院學(xué)報, 2012. 29(3): p. 96-100.
[5]魯宛生,劉婷婷,王林生. JBPM工作流在企業(yè)請假流程中的應(yīng)用[J]. 電子商務(wù), 2013(4): p. 70-71.
[6]潘強(qiáng). 基于JBPM的公文審批系統(tǒng)的設(shè)計與開發(fā)[J]. 電腦知識與技術(shù), 2011. 07(32): p. 7913-7914.
[7]汪會財, et al..基于JBPM的電力調(diào)度培訓(xùn)考試可視化流程管理系統(tǒng)[J]. 電力自動化設(shè)備, 2012. 32(6): p. 107-110.
[8]吳蕾. 基于JBPM工作流技術(shù)的醫(yī)院內(nèi)部報銷審批系統(tǒng)[J]. 醫(yī)學(xué)信息學(xué)雜志, 2012. 33(6): p. 28-32.
[9]許愛軍. JBPM工作流管理系統(tǒng)的研究與實現(xiàn)[J]. 計算機(jī)技術(shù)與發(fā)展, 2013(12): p. 100-104,108.