龔劍云 湯建農(nóng) 陳小磊 李福軍
摘 要 本文介紹工作流引擎的設(shè)計(jì)思路和實(shí)現(xiàn)方法。通過(guò)J2EE開發(fā)平臺(tái),提供一套完整的工作流引擎機(jī)制,實(shí)現(xiàn)可視化的流程設(shè)計(jì)器、任務(wù)分發(fā)和簽審、流程自動(dòng)流轉(zhuǎn)、工作流跟蹤監(jiān)控和查詢追溯。
關(guān)鍵詞 工作流引擎;可視化;任務(wù)
中圖分類號(hào) TP3 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 2095-6363(2017)15-0106-02
工作流引擎平臺(tái)是軟件系統(tǒng)協(xié)同辦公平臺(tái)的血脈,是連接并打通其他各個(gè)應(yīng)用模塊之間協(xié)同的關(guān)鍵所在。本系統(tǒng)參照工作流管理聯(lián)盟(WfMC)提出的工作流模型和五大接口標(biāo)準(zhǔn),基于J2EE開發(fā)平臺(tái)自主研發(fā)而成。方便用戶快速構(gòu)建符合自己企業(yè)規(guī)則的各類流程,支撐企業(yè)的規(guī)范化管理。
1 軟件目標(biāo)
1)提供可視化的流程圖設(shè)計(jì)器,方便用戶快速完成結(jié)構(gòu)清晰層級(jí)分明的各類企業(yè)流程設(shè)計(jì),并用直觀的流程圖展示,方便用戶維護(hù)。
2)將業(yè)務(wù)系統(tǒng)的用戶、角色和權(quán)限整合到工作流引擎中,將業(yè)務(wù)流程的流向過(guò)程整合到流程模型中,實(shí)現(xiàn)流程跟蹤、監(jiān)控、管理、調(diào)度、優(yōu)化和查詢統(tǒng)計(jì)等功能。
3)提供一套完整的工作流引擎機(jī)制,實(shí)現(xiàn)平穩(wěn)、快速、準(zhǔn)確無(wú)誤地控制流程流轉(zhuǎn)、任務(wù)自動(dòng)分發(fā)和跟蹤、審批內(nèi)容提交和管控、審批信息表達(dá)和跟蹤、審批過(guò)程中事務(wù)處理、流程發(fā)起/掛起/恢復(fù)/終止。
4)提供一套易用、易維護(hù)、可擴(kuò)展的工作流引擎平臺(tái)。
5)提供一套與其他應(yīng)用程序或軟件系統(tǒng)具備良好交互性能的工作流引擎平臺(tái),支持ORACLE/SQL SERVER等常用數(shù)據(jù)庫(kù),支持JAVA語(yǔ)言開發(fā)的軟件系統(tǒng)。
2 實(shí)現(xiàn)方法
2.1 平臺(tái)架構(gòu)
采用JAVA語(yǔ)言,ORACLE數(shù)據(jù)庫(kù)技術(shù),基于J2EE開發(fā)平臺(tái)開發(fā)的三層架構(gòu)。
存儲(chǔ)端——部署在企業(yè)服務(wù)器。ORACLE數(shù)據(jù)庫(kù)用于存儲(chǔ)工作流引擎平臺(tái)結(jié)構(gòu)化的數(shù)據(jù)。文件存儲(chǔ)器用于存儲(chǔ)圖文檔。
服務(wù)端——部署在企業(yè)服務(wù)器。應(yīng)用服務(wù)處理平臺(tái)業(yè)務(wù)邏輯、相關(guān)數(shù)據(jù)存取結(jié)構(gòu)和存取地址;處理ORACLE數(shù)據(jù)庫(kù)的創(chuàng)建和關(guān)聯(lián),表和記錄的增刪改功能,系統(tǒng)數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,各表和記錄之間的關(guān)聯(lián)關(guān)系。文件服務(wù)處理文件相關(guān)的業(yè)務(wù)邏輯和文件保存、獲取和刪除等功能。
客戶端——部署在用戶的PC機(jī)。通過(guò)工作流引擎,提供工作流程、任務(wù)箱、接口、查詢統(tǒng)計(jì)四大模塊。用戶通過(guò)四大模塊的功能,實(shí)現(xiàn)信息化簽審和管理等。
2.2 軟件模塊
將業(yè)務(wù)流程的工作環(huán)節(jié)、過(guò)程、控制思路等提煉成軟件四大模塊。工作流引擎內(nèi)含流程圖繪制器、工作流解釋器、事件處理器、狀態(tài)管理器、內(nèi)容分級(jí)管理器和接口管理器,通過(guò)這些技術(shù)實(shí)現(xiàn)工作流平穩(wěn)、準(zhǔn)確無(wú)誤地運(yùn)轉(zhuǎn)。
2.2.1 工作流程模塊
通過(guò)可視化的流程圖設(shè)計(jì)器,實(shí)現(xiàn)流程模板圖的快速定制。通過(guò)數(shù)據(jù)庫(kù)和文件管理技術(shù),實(shí)現(xiàn)流程模板圖的增刪改等維護(hù)管理。
1)將企業(yè)業(yè)務(wù)流程的各個(gè)環(huán)節(jié)和過(guò)程提煉為11種軟件元件模型,開始元件、設(shè)計(jì)任務(wù)元件、更改任務(wù)元件、審批任務(wù)元件、會(huì)簽任務(wù)元件、歸檔任務(wù)元件、文件分發(fā)任務(wù)元件、子流程元件、與節(jié)點(diǎn)元件、或節(jié)點(diǎn)元件、連接弧元件和結(jié)束元件。2)根據(jù)業(yè)務(wù)信息,定義每個(gè)元件包含的屬性信息,并將其保存到模型中。同時(shí)系統(tǒng)也會(huì)將這些元件信息提取到數(shù)據(jù)庫(kù)中保存,方便查詢檢索使用。3)將業(yè)務(wù)中的組(部門)、角色、人員融合到元件模型中,可以在模型中預(yù)設(shè)定任務(wù)的執(zhí)行者。4)通過(guò)元件模型和事件處理器,將業(yè)務(wù)流程的流向和控制邏輯融合到流程圖模型中,并應(yīng)用工作流解釋器檢查流向和控制邏輯是否合理,確保流程圖是完整可行的。5)提供可視化的流程圖設(shè)計(jì)器,提供鼠標(biāo)快捷操作,方便快速繪制各類業(yè)務(wù)流程的流程模型圖。6)通過(guò)可視化的流程圖設(shè)計(jì)器,用戶可以快速建立企業(yè)需要的各類工作流程。用戶通過(guò)“與節(jié)點(diǎn)”元件、“或節(jié)點(diǎn)”元件和“連接弧”元件控制流程圖的流向和流轉(zhuǎn)條件,適用各類復(fù)雜流程。7)為了獲得結(jié)構(gòu)清晰層次分明的流程圖,用戶可以使用“子流程”元件,“子流程”元件可以一級(jí)一級(jí)查看流程圖。這樣避免復(fù)雜流程中分支過(guò)多,元件過(guò)多,避免出現(xiàn)“蜘蛛網(wǎng)”的現(xiàn)象。8)用戶設(shè)計(jì)的每個(gè)流程模板圖都可以分類保存到系統(tǒng)中,以供后續(xù)調(diào)用、更改、刪除等維護(hù)管理方面的操作應(yīng)用。
2.2.2 任務(wù)箱模塊
通過(guò)工作流解釋器,實(shí)現(xiàn)任務(wù)審批、任務(wù)自動(dòng)分發(fā)、觸發(fā)任務(wù)事件、任務(wù)狀態(tài)控制和管理、流程自動(dòng)流轉(zhuǎn)、工作流跟蹤和監(jiān)控。
1)任務(wù)箱分為待做任務(wù)和跟蹤任務(wù),方便用戶快速了解需審批的任務(wù)信息和任務(wù)狀態(tài)。對(duì)于每個(gè)任務(wù),可以查看跟蹤任務(wù)各個(gè)層級(jí)的審批內(nèi)容列表、關(guān)聯(lián)的流程圖、任務(wù)所在流程的完成情況記錄、當(dāng)前狀態(tài)和歷史信息,方便用戶了解當(dāng)前任務(wù)的詳細(xì)信息。2)為了應(yīng)對(duì)企業(yè)突發(fā)狀況,下一級(jí)任務(wù)執(zhí)行人員除了可以在流程模板圖中預(yù)設(shè)定,也可以在任務(wù)執(zhí)行過(guò)程中批量設(shè)定。當(dāng)級(jí)任務(wù)可以批量轉(zhuǎn)移或委托給他人。對(duì)于一些無(wú)效或作廢流程,流程發(fā)起人可以掛起、終止、恢復(fù)流程。3)工作流解釋器將任務(wù)執(zhí)行過(guò)程中的設(shè)置,更新到流程圖中,然后根據(jù)流程圖來(lái)實(shí)現(xiàn)自動(dòng)分發(fā)任務(wù)和控制流程流轉(zhuǎn)。4)任務(wù)簽審過(guò)程中,簽審員除了明確表示批準(zhǔn)和拒絕之外,還可以添加帶有建議或意見(jiàn)等描述性語(yǔ)言。5)提供事件處理器,按照流程執(zhí)行階段和任務(wù)狀態(tài),觸發(fā)預(yù)設(shè)定的事件,比如審批內(nèi)容的加鎖解鎖等。這些事件可以在流程模板圖中預(yù)設(shè)定,也可以在流程執(zhí)行過(guò)程中設(shè)定。6)任務(wù)的簽審信息和流程的流轉(zhuǎn)過(guò)程信息,除了體現(xiàn)在流程圖中,系統(tǒng)也會(huì)將其自動(dòng)保存到數(shù)據(jù)庫(kù)中,方便用戶檢索和統(tǒng)計(jì)。7)對(duì)于正在審批的流程,可以通過(guò)待做任務(wù)和跟蹤任務(wù)進(jìn)行跟蹤維護(hù)。對(duì)于已經(jīng)關(guān)閉的流程,用戶可以在任務(wù)箱中查詢歷史流程,獲取流程的所有信息,以供參考。
2.2.3 接口模塊
提供一套基于JAVA語(yǔ)言的接口程序,實(shí)現(xiàn)和其他軟件應(yīng)用程序或軟件系統(tǒng)之間的交互,比如在整車性能設(shè)計(jì)計(jì)算分析平臺(tái)中的流程發(fā)起、流程屬性查看等功能。
為了實(shí)現(xiàn)和其他應(yīng)用程序或軟件系統(tǒng)的交互,提供大量的接口,具體為:獲取流程模板圖接口,流程的發(fā)起、掛起、終止等流程操作接口,流程屬性更改和存取接口,流程狀態(tài)更改和存取接口,流程審批內(nèi)容更改和存取接口,任務(wù)簽審信息查詢接口,流程歷史信息查詢接口等。
2.2.4 查詢統(tǒng)計(jì)模塊
提供基于數(shù)據(jù)庫(kù)技術(shù)的查詢統(tǒng)計(jì)功能。1)提供根據(jù)流程屬性、狀態(tài)、內(nèi)容、時(shí)間等信息快速查詢流程或者任務(wù)的功能。2)根據(jù)查詢的流程或者任務(wù),能夠追溯到它的所有信息,包括歷史信息。3)可以針對(duì)查詢結(jié)果的不同屬性信息或者審批內(nèi)容信息,進(jìn)行分門別類的統(tǒng)計(jì),并且提供統(tǒng)計(jì)報(bào)表。
3 結(jié)論
通過(guò)JAVA語(yǔ)言、數(shù)據(jù)庫(kù)、可視化等技術(shù),實(shí)現(xiàn)一套易用、易維護(hù)、易擴(kuò)展、易集成的工作流引擎平臺(tái),方便用戶制定各類企業(yè)流程,實(shí)現(xiàn)平穩(wěn)快速流轉(zhuǎn),支撐企業(yè)規(guī)范化、信息電子化的流程審批和管理。
參考文獻(xiàn)
[1]Cay S. Horstmann,Gary Cornell.JAVA核心技術(shù)卷2[M].北京:機(jī)械工業(yè)出版社,2014.
[2]BruceEckel.JAVA編程思想[M].北京:機(jī)械工業(yè)出版社,2017.
[3]耿祥義,張躍平.JAVA設(shè)計(jì)模式[M].北京:清華大學(xué)出版社,2009.
[4]工作流管理聯(lián)盟.工作流管理聯(lián)盟工作流標(biāo)準(zhǔn).endprint